Zum Inhalt springen

OTOBO Installation CentOS mit Docker Compose

Diese Anleitung beschreibt die vollständige Installation von OTOBO auf CentOS mit Docker und Docker Compose. Der offizielle otobo-docker-Stack bündelt alle benötigten Dienste (Webserver, Datenbank, Elasticsearch, Redis und optional Nginx für HTTPS), sodass Sie OTOBO in wenigen Minuten betriebsbereit haben.

  • CentOS Stream 8
  • CentOS Stream 9

[!NOTE] CentOS Linux 8 hat das End-of-Life erreicht. Für Produktivsysteme empfehlen wir CentOS Stream 9, eine kompatible Distribution wie AlmaLinux/Rocky Linux oder RHEL.

KomponenteMinimumEmpfehlung (Produktion)
CPU2 Kerne4+ Kerne
RAM4 GB8 GB oder mehr
Festplatte20 GB frei40 GB+ (SSD)
Docker19.03.13aktuelle Version
Docker Composev2aktuelle Version
Git2.17aktuelle Version

[!NOTE] Elasticsearch ist Teil des Stacks und benötigt vergleichsweise viel Arbeitsspeicher. Planen Sie für produktive Umgebungen mindestens 8 GB RAM ein.

Schritt 1: Docker, Docker Compose und Git installieren

Abschnitt betitelt „Schritt 1: Docker, Docker Compose und Git installieren“

Unter CentOS wird Docker über das offizielle Docker-CE-Repository installiert. Richten Sie zunächst das Repository ein:

Terminal-Fenster
sudo dnf install -y dnf-plugins-core git
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Installieren Sie anschließend Docker Engine, die CLI und das Compose-Plugin:

Terminal-Fenster
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Aktivieren und starten Sie den Docker-Dienst, damit er automatisch beim Booten startet:

Terminal-Fenster
sudo systemctl enable --now docker

Optional: Fügen Sie Ihren Benutzer der Gruppe docker hinzu, damit Sie Docker-Befehle ohne sudo ausführen können (danach neu anmelden):

Terminal-Fenster
sudo usermod -aG docker $USER

Prüfen Sie die Installation:

Terminal-Fenster
docker --version
docker compose version

Das otobo-docker-Repository enthält die Docker-Compose-Konfiguration und Hilfsskripte. Verwenden Sie das Tag, das zu Ihrer gewünschten OTOBO-Version passt (z. B. rel-11_0 für die aktuelle 11.0-Reihe).

Terminal-Fenster
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 # Kontrolle: u. a. README.md und die .docker_compose_env_*-Dateien sollten vorhanden sein

Die Datei .env ist die zentrale Konfigurationsdatei für Ihre OTOBO-Installation. Sie wird nicht automatisch erzeugt, sondern aus einer der mitgelieferten Beispieldateien kopiert:

  • .docker_compose_env_http – OTOBO über HTTP (einfachste Variante, z. B. hinter einem eigenen Reverse-Proxy)
  • .docker_compose_env_https – OTOBO über HTTPS mit integriertem Nginx-Reverse-Proxy

Für eine einfache HTTP-Installation:

Terminal-Fenster
sudo cp -p .docker_compose_env_http .env

Für HTTPS verwenden Sie stattdessen .docker_compose_env_https und hinterlegen ein Zertifikat (siehe Fortgeschrittene Installation).

Öffnen Sie die .env-Datei und setzen Sie ein sicheres Passwort für den Datenbank-Administrator:

Terminal-Fenster
sudo vi .env

Passen Sie die folgende Zeile an:

Terminal-Fenster
OTOBO_DB_ROOT_PASSWORD=<ihr_sicheres_passwort>

Dieses Passwort benötigen Sie später im Web-Installer, um die Datenbank und das OTOBO-Schema anzulegen.

Starten Sie den gesamten Stack im Hintergrund:

Terminal-Fenster
sudo docker compose up --detach

Beim ersten Start werden die Docker-Images von Docker Hub heruntergeladen – das kann je nach Verbindung einige Minuten dauern.

Überprüfen Sie anschließend, ob alle Dienste laufen (fünf bei HTTP, sechs bei HTTPS):

Terminal-Fenster
sudo docker compose ps

Schritt 6: Installation über den Web-Installer abschließen

Abschnitt betitelt „Schritt 6: Installation über den Web-Installer abschließen“

Rufen Sie den OTOBO-Installer im Browser auf:

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

Folgen Sie den Schritten des Installers und beachten Sie dabei:

  • Wählen Sie als Datenbank eine neue MySQL-/MariaDB-Datenbank.
  • Als Datenbank-Root-Passwort verwenden Sie den Wert aus OTOBO_DB_ROOT_PASSWORD.
  • Lassen Sie den MySQL-Hostnamen auf db stehen – dies ist der interne Servicename des Datenbank-Containers.

Nach Abschluss können Sie sich am Agenten-Interface anmelden (Standardbenutzer root@localhost, das Passwort wird am Ende des Installers angezeigt).

OTOBO Admin-Bereich nach abgeschlossener Installation

OTOBO Docker-Container nach der Installation

  • OTOBO-Daemon prüfen: Der Daemon-Container übernimmt Hintergrundaufgaben (E-Mail-Abruf, Eskalationen, Cronjobs). Er läuft als eigener Container und sollte als „running“ angezeigt werden.
  • Firewall: Geben Sie die benötigten Ports frei. Mit firewalld:
Terminal-Fenster
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
  • In den Container wechseln (für CLI-Aufgaben):
Terminal-Fenster
sudo docker compose exec web bash

Elasticsearch startet nicht / Container beendet sich sofort

Elasticsearch benötigt einen erhöhten Wert für vm.max_map_count. Setzen Sie ihn dauerhaft:

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

SELinux blockiert Container-Zugriffe

CentOS setzt standardmäßig SELinux ein. Falls Container Zugriffsprobleme zeigen, prüfen Sie die Audit-Logs (sudo ausearch -m avc -ts recent). Zur Diagnose kann der Permissive-Modus helfen (sudo setenforce 0).

Port 80 oder 443 bereits belegt

Setzen Sie in der .env-Datei abweichende Ports über OTOBO_WEB_HTTP_PORT bzw. OTOBO_WEB_HTTPS_PORT und starten Sie den Stack neu.

Logs eines Dienstes ansehen

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

Für HTTPS-Konfiguration, Nginx-Anpassungen, Umgebungsvariablen, Updates und Backups lesen Sie die Fortgeschrittene Installation von OTOBO.

Möchten Sie OTOBO mit KI-gestützter Ticket-Klassifizierung kombinieren, finden Sie die Schritte unter OTOBO KI & Open Ticket AI.

OTOBO professionell installieren lassen

Sparen Sie Zeit und Risiken: Softoft übernimmt die schlüsselfertige Installation, Docker-Setup, Härtung und Konfiguration für Ihre Produktivumgebung.

Häufig gestellte Fragen

Welche CentOS-Versionen werden für OTOBO unterstützt und was sollte ich beachten?

OTOBO unterstützt die Installation auf CentOS Stream 8 und 9. Es ist wichtig zu beachten, dass CentOS Linux 8 das End-of-Life erreicht hat. Für Produktivsysteme wird daher CentOS Stream 9 oder eine kompatible Distribution wie AlmaLinux oder Rocky Linux empfohlen. Die Installation erfolgt über Docker und Docker Compose, was die Kompatibilität über verschiedene Linux-Distributionen hinweg vereinfacht und eine robuste Umgebung für OTOBO schafft. Stellen Sie sicher, dass Ihr System die allgemeinen Systemvoraussetzungen für Docker und OTOBO erfüllt.

Quellen:

Wie installiere ich Docker, Docker Compose und Git auf CentOS für OTOBO?

Die Installation von Docker, Docker Compose und Git auf CentOS erfolgt über das offizielle Docker-CE-Repository und den dnf-Paketmanager. Zuerst fügen Sie das Docker-Repository hinzu und installieren dann docker-ce, docker-ce-cli, containerd.io und docker-compose-plugin sowie Git. Nach der Installation müssen Sie den Docker-Dienst aktivieren und starten, damit er automatisch beim Systemstart läuft (sudo systemctl enable --now docker). Optional können Sie Ihren Benutzer zur docker-Gruppe hinzufügen (sudo usermod -aG docker $USER), um Docker-Befehle ohne sudo ausführen zu können; danach ist eine Neuanmeldung erforderlich. Überprüfen Sie die Installation mit docker --version und docker compose version.

Quellen:

Welche Systemvoraussetzungen sind für eine OTOBO-Produktivumgebung auf CentOS wichtig?

Für eine produktive OTOBO-Umgebung auf CentOS wird mindestens eine CPU mit 4+ Kernen und 8 GB RAM oder mehr empfohlen. Besonders hervorzuheben ist, dass Elasticsearch, ein integraler Bestandteil des OTOBO-Stacks, vergleichsweise viel Arbeitsspeicher benötigt. Daher ist die Planung von ausreichend RAM entscheidend für die Performance. Zudem sollten mindestens 40 GB freier Festplattenspeicher (idealerweise SSD) und aktuelle Versionen von Docker (ab 19.03.13), Docker Compose (v2) und Git vorhanden sein. Diese Ressourcen stellen sicher, dass OTOBO reibungslos und performant läuft, insbesondere bei höherer Last und umfangreicher Nutzung von Suchfunktionen.

Quellen:

Wofür dient die `.env`-Datei bei der OTOBO-Installation und wie wird sie erstellt?

Die .env-Datei ist die zentrale Konfigurationsdatei für Ihre OTOBO-Installation mit Docker Compose. Sie enthält wichtige Umgebungsvariablen, die von den Docker-Containern verwendet werden, wie zum Beispiel das Datenbank-Root-Passwort oder die Art der Verbindung (HTTP/HTTPS). Sie wird nicht automatisch generiert, sondern muss aus einer der mitgelieferten Beispieldateien kopiert werden: .docker_compose_env_http für eine einfache HTTP-Installation (z. B. hinter einem eigenen Reverse-Proxy) oder .docker_compose_env_https für eine HTTPS-Installation mit integriertem Nginx-Reverse-Proxy. Nach dem Kopieren passen Sie die Datei an, um beispielsweise das OTOBO_DB_ROOT_PASSWORD festzulegen, welches für die Datenbankkonfiguration im Web-Installer benötigt wird.

Quellen:

Welche Schritte sind im OTOBO Web-Installer auf CentOS zu beachten?

Nachdem die Docker-Container gestartet wurden, rufen Sie den OTOBO-Installer über http://<ihre-server-ip>/otobo/installer.pl in Ihrem Browser auf. Im Installer wählen Sie die Option "eine neue MySQL-/MariaDB-Datenbank" anlegen. Als "Datenbank-Root-Passwort" geben Sie den Wert ein, den Sie zuvor in der .env-Datei unter OTOBO_DB_ROOT_PASSWORD festgelegt haben. Der "MySQL-Hostnamen" sollte auf db stehen bleiben, da dies der interne Servicename des Datenbank-Containers innerhalb des Docker-Netzwerks ist und eine korrekte Kommunikation gewährleistet. Nach Abschluss der Schritte wird Ihnen das Passwort für den Standardbenutzer root@localhost angezeigt, mit dem Sie sich am Agenten-Interface anmelden können.

Quellen:

Was tun, wenn Elasticsearch nach der Installation nicht startet oder sich sofort beendet?

Ein häufiges Problem, das dazu führt, dass Elasticsearch nicht startet oder sich sofort beendet, ist ein zu niedriger Wert für vm.max_map_count. Elasticsearch benötigt einen erhöhten Wert für diese Kernel-Einstellung, um ordnungsgemäß zu funktionieren. Um dies zu beheben, setzen Sie den Wert dauerhaft auf 262144 mit den Befehlen sudo sysctl -w vm.max_map_count=262144 und echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-otobo-elasticsearch.conf. Nach dem Anwenden dieser Änderung sollten Sie den OTOBO-Stack neu starten (sudo docker compose down && sudo docker compose up --detach), damit Elasticsearch korrekt initialisiert werden kann und stabil läuft.

Quellen: