Get OTOBO professionally installed
Save time and reduce risks: Softoft handles turnkey installation, Docker deployment, hardening, and configuration for your production environment.
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.
| Component | Minimum | Recommended (production) |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8 GB or more |
| Disk | 20 GB free | 40 GB+ (SSD) |
| Docker | 19.03.13 | latest version |
| Docker Compose | v2 | latest version |
| Git | 2.17 | latest 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.
On SUSE, Docker and Docker Compose are available directly in the repositories. Install the packages with zypper:
sudo zypper refreshsudo 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:
sudo systemctl enable --now dockerOptional: add your user to the docker group so you can run Docker commands without sudo (log out and back in afterwards):
sudo usermod -aG docker $USERVerify the installation:
docker --versiondocker compose version[!NOTE] If
docker compose(with a space) is not available, use the classicdocker-composecommand (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).
cd /optsudo git clone https://github.com/RotherOSS/otobo-docker.git --branch rel-11_0 /opt/otobo-dockercd /opt/otobo-dockerls -a # sanity check: README.md and the .docker_compose_env_* files should be present.env fileThe .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 proxyFor a simple HTTP installation:
sudo cp -p .docker_compose_env_http .envFor 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:
sudo vi .envAdjust the following line:
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:
sudo docker compose up --detachOn 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):
sudo docker compose psOpen the OTOBO installer in your browser:
http://<your-server-ip>/otobo/installer.plFollow the installer steps and note the following:
OTOBO_DB_ROOT_PASSWORD.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).

firewalld:sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reloadsudo docker compose exec web bashElasticsearch does not start / the container exits immediately
Elasticsearch requires an increased vm.max_map_count value. Set it permanently:
sudo sysctl -w vm.max_map_count=262144echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-otobo-elasticsearch.confPort 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
sudo docker compose logs -f websudo docker compose logs -f elasticFor 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.
Get OTOBO professionally installed
Save time and reduce risks: Softoft handles turnkey installation, Docker deployment, hardening, and configuration for your production environment.
OTOBO supports installation on both openSUSE Leap 15.x and SUSE Linux Enterprise Server (SLES) 15 and newer, including all service packs. The use of Docker Compose is highly recommended because it significantly simplifies the installation process. Instead of manually configuring individual services, the otobo-docker stack bundles all necessary components like the web server, database (MySQL/MariaDB), Elasticsearch for search indexing, Redis for caching, and optionally Nginx for HTTPS. This integrated approach allows you to get OTOBO up and running within minutes, providing a consistent and isolated environment for the application.
Quellen / Sources:
For running OTOBO on SUSE with Docker, the system requirements vary between minimum and recommended for production environments. A minimum setup requires 2 CPU cores, 4 GB of RAM, and 20 GB of free disk space. For production, it is strongly recommended to have at least 4+ CPU cores, 8 GB or more of RAM (especially due to Elasticsearch's memory demands), and 40 GB+ of SSD disk space for better performance. Additionally, Docker version 19.03.13 or newer, Docker Compose v2 or newer, and Git 2.17 or newer are required. It's crucial to note that Elasticsearch, being a core part of the OTOBO stack, is memory-intensive, so planning for at least 8 GB of RAM is essential for stable production operations.
Quellen / Sources:
To install Docker, Docker Compose, and Git on SUSE, you can leverage the zypper package manager. First, refresh your repositories with sudo zypper refresh, then install the packages using sudo zypper install -y docker docker-compose git. For SLES users, it might be necessary to enable the "Containers" module first, for example, with SUSEConnect --product sle-module-containers/15.5/x86_64, adjusting the version as needed. After installation, ensure Docker starts automatically on boot by enabling and starting its service: sudo systemctl enable --now docker. Optionally, add your user to the docker group (sudo usermod -aG docker $USER) to run Docker commands without sudo, remembering to log out and back in. Finally, verify the installation with docker --version and docker compose version, noting that if docker compose (with a space) isn't available, docker-compose (with a hyphen) should be used in subsequent steps.
Quellen / Sources:
The .env file is the central configuration file for your OTOBO Docker Compose installation. It's not automatically generated but copied from provided samples, typically .docker_compose_env_http for HTTP setups or .docker_compose_env_https for HTTPS with the built-in Nginx proxy. This file contains crucial environment variables that dictate how OTOBO and its services operate. One of the most critical settings within this file is OTOBO_DB_ROOT_PASSWORD. You must set a strong, secure password for the database administrator here. This password is vital because you will need it during the OTOBO web installer process to create the necessary database and its schema. Failing to set a secure password or forgetting it will prevent the successful completion of the installation and compromise your system's security.
Quellen / Sources:
After starting your OTOBO containers, the final step involves completing the installation through the web installer, accessible via http://<your-server-ip>/otobo/installer.pl in your browser. During this guided process, several key decisions need to be made. When prompted, you should choose to create a new MySQL/MariaDB database. Crucially, for the database root password, you must enter the exact secure password you previously defined in your .env file for the OTOBO_DB_ROOT_PASSWORD variable. It's also important to leave the MySQL hostname set to its default value of db, as this is the internal service name used by the Docker Compose setup for the database container. Once these steps are completed, the installer will set up your OTOBO instance, and you'll be able to log into the agent interface using the default root@localhost user and the password provided at the end of the installer.
Quellen / Sources:
Troubleshooting common issues during OTOBO Docker Compose installation often involves addressing specific service requirements or port conflicts. If Elasticsearch does not start or its container exits immediately, it's typically due to insufficient vm.max_map_count. You can resolve this by setting it permanently: sudo sysctl -w vm.max_map_count=262144 and then echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-otobo-elasticsearch.conf. This ensures Elasticsearch has enough memory map areas. For port 80 or 443 already in use issues, you can modify the .env file to set different ports using OTOBO_WEB_HTTP_PORT or OTOBO_WEB_HTTPS_PORT, then restart the stack with sudo docker compose up --detach. To diagnose problems, viewing the logs of a specific service is invaluable; use sudo docker compose logs -f <service_name>, for example, sudo docker compose logs -f web or sudo docker compose logs -f elastic, to see real-time output and identify errors.
Quellen / Sources: