Zum Inhalt springen

OTOBO Installation RHEL mit Docker Compose

Diese Anleitung beschreibt die vollständige Installation von OTOBO auf Red Hat Enterprise Linux (RHEL) 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.

  • RHEL 8
  • RHEL 9
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 RHEL wird Docker über das offizielle Docker-CE-Repository installiert (das Paket docker aus den Standard-Repos ist veraltet bzw. nicht verfügbar). 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/rhel/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

RHEL setzt standardmäßig SELinux ein. Falls Container Zugriffsprobleme zeigen, prüfen Sie die Audit-Logs (sudo ausearch -m avc -ts recent). Im Zweifel hilft ein passendes SELinux-Boolean oder das temporäre Umschalten in den Permissive-Modus zur Diagnose (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 RHEL-Versionen werden für OTOBO mit Docker Compose unterstützt und wie wird Docker installiert?

OTOBO unterstützt offiziell Red Hat Enterprise Linux (RHEL) 8 und RHEL 9 mit Docker und Docker Compose. Die Installation von Docker unter RHEL erfolgt über das offizielle Docker-CE-Repository, da die Standard-RHEL-Pakete für Docker oft veraltet oder nicht verfügbar sind. Zuerst müssen dnf-plugins-core und git installiert werden, gefolgt von der Aktivierung des Docker-CE-Repositories mit sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo. Anschließend werden docker-ce, docker-ce-cli und das docker-compose-plugin mit dnf installiert. Nach der Installation muss der Docker-Dienst aktiviert und gestartet werden, damit er beim Systemstart automatisch läuft (sudo systemctl enable --now docker). Optional kann der Benutzer der docker-Gruppe hinzugefügt werden, um sudo bei Docker-Befehlen zu vermeiden.

Quellen:

Was sind die minimalen Systemvoraussetzungen für OTOBO auf RHEL und welche Rolle spielt Elasticsearch dabei?

Für eine OTOBO-Installation auf RHEL mit Docker Compose werden mindestens 2 CPU-Kerne, 4 GB RAM und 20 GB freier Festplattenspeicher empfohlen. Für produktive Umgebungen sind jedoch 4+ Kerne, 8 GB oder mehr RAM und 40 GB+ SSD-Speicher ratsam, um eine optimale Performance zu gewährleisten. Ein wichtiger Aspekt ist Elasticsearch, das als integraler Bestandteil des OTOBO-Stacks dient und für die Volltextsuche und Indizierung zuständig ist. Elasticsearch ist vergleichsweise ressourcenintensiv, insbesondere in Bezug auf den Arbeitsspeicher. Daher ist es entscheidend, für produktive Setups mindestens 8 GB RAM einzuplanen, um eine stabile und performante Funktion von Elasticsearch und damit von OTOBO zu gewährleisten. Ohne ausreichenden Arbeitsspeicher kann Elasticsearch instabil werden oder gar nicht erst starten.

Quellen:

Wie erstelle und konfiguriere ich die `.env`-Datei für meine OTOBO-Installation?

Die .env-Datei ist die zentrale Konfigurationsdatei für Ihre OTOBO-Installation und wird nicht automatisch erzeugt. Sie müssen sie manuell aus einer der bereitgestellten Beispieldateien kopieren. Für eine einfache HTTP-Installation, beispielsweise wenn OTOBO hinter einem eigenen Reverse-Proxy betrieben wird, kopieren Sie .docker_compose_env_http nach .env mit dem Befehl sudo cp -p .docker_compose_env_http .env. Wenn Sie OTOBO mit HTTPS und dem integrierten Nginx-Reverse-Proxy betreiben möchten, verwenden Sie stattdessen .docker_compose_env_https. Nach dem Kopieren ist es unerlässlich, die .env-Datei zu bearbeiten und ein sicheres Passwort für den Datenbank-Administrator festzulegen, indem Sie die Zeile OTOBO_DB_ROOT_PASSWORD=<ihr_sicheres_passwort> entsprechend anpassen. Dieses Passwort wird später im Web-Installer benötigt, um die Datenbank und das OTOBO-Schema einzurichten.

Quellen:

Welche Schritte sind nach der initialen Installation von OTOBO auf RHEL wichtig?

Nach dem erfolgreichen Durchlauf des OTOBO Web-Installers gibt es einige wichtige Schritte, um die OTOBO-Installation abzusichern und zu überprüfen. Zuerst sollten Sie den OTOBO-Daemon prüfen, der für Hintergrundaufgaben wie E-Mail-Abruf, Eskalationen und Cronjobs zuständig ist; er läuft als eigener Container und sollte als „running“ angezeigt werden. Zweitens ist es essenziell, die Firewall zu konfigurieren, um die benötigten Ports (HTTP 80 und/oder HTTPS 443) freizugeben. Dies kann unter RHEL mit firewall-cmd erfolgen, z.B. sudo firewall-cmd --permanent --add-service=http und sudo firewall-cmd --reload. Drittens, für administrative Aufgaben oder zur Fehlerbehebung, können Sie über sudo docker compose exec web bash direkt in den OTOBO-Web-Container wechseln, um CLI-Befehle auszuführen. Diese Schritte stellen sicher, dass OTOBO korrekt funktioniert und von außen erreichbar ist.

Quellen:

Was sind die häufigsten Probleme bei der OTOBO-Installation auf RHEL und wie behebe ich sie?

Bei der OTOBO-Installation auf RHEL können verschiedene Probleme auftreten, für die es jedoch gängige Lösungen gibt. Ein häufiges Problem ist, dass Elasticsearch nicht startet oder sich sofort beendet, was oft an einem zu niedrigen vm.max_map_count-Wert liegt. Dieser kann dauerhaft mit sudo sysctl -w vm.max_map_count=262144 und einem Eintrag in /etc/sysctl.d/99-otobo-elasticsearch.conf behoben werden. Zweitens kann SELinux Container-Zugriffe blockieren; hier helfen Audit-Logs (sudo ausearch -m avc) oder temporär der Permissive-Modus (sudo setenforce 0) zur Diagnose. Drittens, falls Port 80 oder 443 bereits belegt sind, können Sie in der .env-Datei abweichende Ports über OTOBO_WEB_HTTP_PORT bzw. OTOBO_WEB_HTTPS_PORT festlegen und den Stack neu starten. Für die Fehlersuche sind auch die Docker-Compose-Logs (sudo docker compose logs -f <dienstname>) sehr hilfreich, um spezifische Fehlermeldungen der einzelnen Dienste zu identifizieren.

Quellen: