Skip to content

Installing OTOBO on SUSE

This guide describes the full installation of OTOBO on openSUSE and SUSE Linux Enterprise Server (SLES) using Docker and Docker Compose. The official otobo-docker stack bundles every required service (web server, database, Elasticsearch, Redis and optionally Nginx for HTTPS), so you can have OTOBO up and running within minutes.

  • openSUSE Leap 15.x
  • SUSE Linux Enterprise Server (SLES) 15 (including service packs)
ComponentMinimumRecommended (production)
CPU2 cores4+ cores
RAM4 GB8 GB or more
Disk20 GB free40 GB+ (SSD)
Docker19.03.13latest version
Docker Composev2latest version
Git2.17latest version

[!NOTE] Elasticsearch is part of the stack and requires a fair amount of memory. For production environments, plan for at least 8 GB of RAM.

Step 1: Install Docker, Docker Compose and Git

Section titled “Step 1: Install Docker, Docker Compose and Git”

On SUSE, Docker and Docker Compose are available directly in the repositories. Install the packages with zypper:

Terminal window
sudo zypper refresh
sudo zypper install -y docker docker-compose git

[!NOTE] On SLES you may first need to enable the “Containers” module (SUSEConnect --product sle-module-containers/15.5/x86_64, adjust the version) before the Docker packages become available.

Enable and start the Docker service so it launches automatically on boot:

Terminal window
sudo systemctl enable --now docker

Optional: add your user to the docker group so you can run Docker commands without sudo (log out and back in afterwards):

Terminal window
sudo usermod -aG docker $USER

Verify the installation:

Terminal window
docker --version
docker compose version

[!NOTE] If docker compose (with a space) is not available, use the classic docker-compose command (with a hyphen) in the following steps instead.

The otobo-docker repository contains the Docker Compose configuration and helper scripts. Use the tag that matches the OTOBO version you want (e.g. rel-11_0 for the current 11.0 series).

Terminal window
cd /opt
sudo git clone https://github.com/RotherOSS/otobo-docker.git --branch rel-11_0 /opt/otobo-docker
cd /opt/otobo-docker
ls -a # sanity check: README.md and the .docker_compose_env_* files should be present

The .env file is the central configuration file for your OTOBO installation. It is not created automatically; instead you copy it from one of the provided sample files:

  • .docker_compose_env_http – OTOBO over HTTP (simplest option, e.g. behind your own reverse proxy)
  • .docker_compose_env_https – OTOBO over HTTPS with the built-in Nginx reverse proxy

For a simple HTTP installation:

Terminal window
sudo cp -p .docker_compose_env_http .env

For HTTPS, use .docker_compose_env_https instead and provide a certificate (see Advanced installation).

Open the .env file and set a secure password for the database administrator:

Terminal window
sudo vi .env

Adjust the following line:

Terminal window
OTOBO_DB_ROOT_PASSWORD=<your_secure_password>

You will need this password later in the web installer to create the database and the OTOBO schema.

Start the whole stack in the background:

Terminal window
sudo docker compose up --detach

On first start the Docker images are downloaded from Docker Hub – depending on your connection this can take a few minutes.

Then verify that all services are running (five for HTTP, six for HTTPS):

Terminal window
sudo docker compose ps

Step 6: Complete the installation via the web installer

Section titled “Step 6: Complete the installation via the web installer”

Open the OTOBO installer in your browser:

http://<your-server-ip>/otobo/installer.pl

Follow the installer steps and note the following:

  • Choose a new MySQL/MariaDB database.
  • As the database root password, use the value from OTOBO_DB_ROOT_PASSWORD.
  • Leave the MySQL hostname set to db – this is the internal service name of the database container.

When finished you can log in to the agent interface (default user root@localhost; the password is shown at the end of the installer).

OTOBO admin area after completing the installation

OTOBO Docker containers after installation

  • Check the OTOBO daemon: the daemon container handles background tasks (email fetching, escalations, cron jobs). It runs as its own container and should be shown as “running”.
  • Firewall: open the required ports. With firewalld:
Terminal window
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
  • Enter the container (for CLI tasks):
Terminal window
sudo docker compose exec web bash

Elasticsearch does not start / the container exits immediately

Elasticsearch requires an increased vm.max_map_count value. Set it permanently:

Terminal window
sudo sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-otobo-elasticsearch.conf

Port 80 or 443 already in use

Set different ports in the .env file via OTOBO_WEB_HTTP_PORT or OTOBO_WEB_HTTPS_PORT and restart the stack.

View the logs of a service

Terminal window
sudo docker compose logs -f web
sudo docker compose logs -f elastic

For HTTPS configuration, Nginx customization, environment variables, updates and backups, read the Advanced installation of OTOBO.

If you want to combine OTOBO with AI-powered ticket classification, see OTOBO AI & Open Ticket AI.