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.

Diese Anleitung behandelt die erweiterte Konfiguration des offiziellen otobo-docker-Stacks. Vorausgesetzt wird, dass Sie die grundlegende Docker-Compose-Installation abgeschlossen haben und HTTPS aktivieren, den Stack optimieren oder an Ihre Infrastruktur anpassen möchten.
[!NOTE] Alle Befehle unten verwenden
docker compose(Compose v2). Auf älteren Systemen können Sie stattdessendocker-composeverwenden.
otobo-docker-Repository unter /opt/otobo-dockerDer Compose-Stack startet fünf Dienste bei HTTP, oder sechs bei HTTPS:
| Dienst | Container (OTOBO 11) | Aufgabe |
|---|---|---|
web | otobo-web-1 | OTOBO-Webserver (interner Port 5000) |
daemon | otobo-daemon-1 | Hintergrundaufgaben (Mail-Abruf, Eskalationen, Cron) |
db | otobo-db-1 | MariaDB-Datenbank (interner Port 3306) |
elastic | otobo-elastic-1 | Elasticsearch (Ports 9200/9300) |
redis | otobo-redis-1 | Redis-Cache |
nginx (nur HTTPS) | otobo-nginx-1 | Nginx-Reverse-Proxy mit TLS |
[!NOTE] Bei OTOBO-10.x-Installationen verwenden Containernamen Unterstriche statt Bindestriche (z. B.
otobo_web_1).
Laufende Container prüfen:
cd /opt/otobo-dockersudo docker compose psDocker-Volumes speichern Daten dauerhaft auf dem Host. Container können neu erstellt werden, ohne Anwendungsdaten zu verlieren:
| Volume | Mount-Punkt | Verwendet von |
|---|---|---|
otobo_opt_otobo | /opt/otobo | web, daemon |
otobo_mariadb_data | /var/lib/mysql | db |
otobo_elasticsearch_data | /usr/share/elasticsearch/data | elastic |
otobo_redis_data | Redis-Datenverzeichnis | redis |
otobo_nginx_ssl | TLS-Zertifikat und Schlüssel | nginx (HTTPS) |
[!WARNING] Löschen Sie Volumes niemals ohne verifiziertes Backup. Siehe Backup & Restore.
Für Produktionsumgebungen sollten Sie OTOBO über HTTPS betreiben – mit dem im Stack enthaltenen Nginx-Container.
cd /opt/otobo-dockersudo cp -p .docker_compose_env_https .envFalls bereits eine .env-Datei aus einer HTTP-Installation existiert, sichern Sie diese zuerst oder übernehmen Sie Ihre bestehenden Einstellungen (insbesondere OTOBO_DB_ROOT_PASSWORD) in die neue Datei.
Bearbeiten Sie .env und setzen Sie die Pfade zu Zertifikat und privatem Schlüssel innerhalb des Nginx-Containers:
sudo nano .envOTOBO_NGINX_SSL_CERTIFICATE=/etc/nginx/ssl/acme.crtOTOBO_NGINX_SSL_CERTIFICATE_KEY=/etc/nginx/ssl/acme.keyLegen Sie die Zertifikatsdateien im Volume otobo_nginx_ssl ab oder mounten Sie sie vom Host. Der genaue Mount ist in docker-compose/otobo-override-https.yml definiert.
sudo docker compose up --detachMit aktiviertem HTTPS sollten sechs Container laufen (einschließlich nginx). Rufen Sie Installer oder Agent-Interface auf:
https://<ihr-server-fqdn>/otobo/Bei einer Neuinstallation folgen Sie den Web-Installer-Schritten mit denselben Datenbankeinstellungen wie bei HTTP (db als Hostname, OTOBO_DB_ROOT_PASSWORD als Root-Passwort).
Die .env-Datei steuert den gesamten Stack. Die Beispieldateien .docker_compose_env_http und .docker_compose_env_https sind Ausgangspunkte; passen Sie die Werte nach Bedarf an.
| Variable | Beschreibung |
|---|---|
OTOBO_DB_ROOT_PASSWORD | MariaDB-Root-Passwort. Erforderlich für den db-Dienst und den Web-Installer. |
Elasticsearch benötigt in Produktion ausreichend Arbeitsspeicher. Host-Anforderungen finden Sie in der Elasticsearch-Docker-Produktionsanleitung.
| Variable | Beschreibung |
|---|---|
OTOBO_Elasticsearch_ES_JAVA_OPTS | JVM-Heap-Einstellungen, z. B. -Xms512m -Xmx512m. Für größere Installationen bis 4 GB erhöhen. |
| Variable | Beschreibung |
|---|---|
OTOBO_WEB_HTTP_PORT | Externer HTTP-Port (Standard 80). Leitet bei aktiviertem Nginx auf HTTPS um. |
OTOBO_WEB_HTTPS_PORT | Externer HTTPS-Port (Standard 443). |
OTOBO_NGINX_SSL_CERTIFICATE | Pfad zum TLS-Zertifikat im Nginx-Container. |
OTOBO_NGINX_SSL_CERTIFICATE_KEY | Pfad zum privaten TLS-Schlüssel im Nginx-Container. |
OTOBO_NGINX_WEB_HOST | Interner HTTP-Host, den Nginx für den web-Dienst verwendet. |
OTOBO_NGINX_WEB_PORT | Interner HTTP-Port des web-Dienstes. |
| Variable | Beschreibung |
|---|---|
OTOBO_NGINX_KERBEROS_KEYTAB | Kerberos-Keytab-Datei (Standard /etc/krb5.keytab). Muss vom Host gemountet werden. |
OTOBO_NGINX_KERBEROS_CONFIG | Kerberos-Konfigurationsdatei (Standard /etc/krb5.conf). |
OTOBO_NGINX_KERBEROS_REALM | Kerberos-Realm, verwendet in /etc/krb5.conf. |
OTOBO_NGINX_KERBEROS_KDC | KDC / Active-Directory-Controller. |
OTOBO_NGINX_KERBEROS_ADMIN_SERVER | Kerberos-Admin-Server. |
OTOBO_NGINX_KERBEROS_DEFAULT_DOMAIN | Standard-Domain für Kerberos. |
Verwenden Sie .docker_compose_env_https_kerberos als Basis und folgen Sie der Kerberos-SSO-Anleitung für die Active-Directory-Einrichtung.
| Variable | Beschreibung |
|---|---|
COMPOSE_PROJECT_NAME | Präfix für Container- und Volume-Namen (Standard otobo). Ändern Sie dies, um mehrere OTOBO-Instanzen auf einem Host zu betreiben. |
COMPOSE_FILE | Doppelpunkt-getrennte Liste von Compose-Dateien, z. B. docker-compose/otobo-base.yml:docker-compose/otobo-override-https.yml. |
COMPOSE_PATH_SEPARATOR | Trennzeichen für COMPOSE_FILE (Standard : unter Linux). |
OTOBO_IMAGE_OTOBO | OTOBO-Web-/Daemon-Image-Tag überschreiben. |
OTOBO_IMAGE_OTOBO_ELASTICSEARCH | Elasticsearch-Image überschreiben. |
OTOBO_IMAGE_OTOBO_NGINX | Nginx-Image überschreiben. |
Der nginx-Container verwendet eine OTOBO-spezifische Vorlage unter /etc/nginx/template/otobo_nginx.conf.template. Umgebungsvariablen werden beim Containerstart substituiert.
Für Änderungen, die über die .env-Datei hinausgehen, exportieren Sie die aktive Konfiguration und mounten Ihre eigene Datei:
cd /opt/otobo-dockermkdir -p nginxsudo docker cp otobo-nginx-1:/etc/nginx/conf.d/otobo_nginx.conf nginx/otobo_nginx.confFügen Sie einen Volume-Mount in einer eigenen Override-Datei hinzu (bearbeiten Sie Dateien unter docker-compose/ nicht direkt — siehe unten):
services: nginx: volumes: - /opt/otobo-docker/nginx/otobo_nginx.conf:/etc/nginx/conf.d/otobo_nginx.conf:roBinden Sie die Datei über COMPOSE_FILE in .env ein und starten Sie neu:
sudo docker compose up --detachFür eine vollständig eigene Nginx-Konfiguration starten Sie mit .docker_compose_env_https_custom_nginx.
Sind Port 80 oder 443 bereits belegt, setzen Sie alternative Ports in .env:
OTOBO_WEB_HTTP_PORT=8080OTOBO_WEB_HTTPS_PORT=8443Starten Sie den Stack nach der Portänderung neu.
Standardmäßig starten alle fünf (bzw. sechs) Dienste gemeinsam. Läuft MariaDB außerhalb von Docker, starten Sie nur die benötigten Dienste:
sudo docker compose up --detach web nginx daemon redis elasticAlternativ erstellen Sie ein eigenes Compose-Override, das den db-Dienst entfernt oder deaktiviert, und verweisen OTOBO während der Installation auf Ihre externe Datenbank.
Bearbeiten Sie Dateien in docker-compose/ nicht direkt — sie werden beim Update des otobo-docker-Repositorys überschrieben. Legen Sie stattdessen eine eigene YAML-Datei an und referenzieren Sie sie in COMPOSE_FILE.
Beispiel: Datenbank über Port 3306 für externen Zugriff freigeben.
Erstellen Sie custom_db.yml:
services: db: ports: - "0.0.0.0:3306:3306"Tragen Sie sie in .env ein:
COMPOSE_FILE=docker-compose/otobo-base.yml:docker-compose/otobo-override-http.yml:custom_db.ymlContainer neu erstellen:
sudo docker compose stopsudo docker compose up --detachDieses Muster funktioniert für jede Anpassung an Diensten oder Volumes.
Die meisten Anwendungsänderungen gehören in das Volume otobo_opt_otobo (/opt/otobo im Container), nicht in ein modifiziertes Docker-Image.
Perl-Modul lokal installieren, ohne das Image neu zu bauen:
sudo docker compose exec web bashcd /opt/otobocpanm -l local Some::ModuleexitUnter /opt/otobo/local installierte Module bleiben über Container-Neustarts hinweg erhalten.
Um Systempakete hinzuzufügen (z. B. zusätzliche Debian-Tools), bauen Sie ein eigenes Image aus einem Dockerfile basierend auf rotheross/otobo oder verwenden Sie docker commit in einer temporären Root-Session. Für Produktionsinstallationen ist das selten nötig.
[!NOTE] Das lokale Bauen von Images ist hauptsächlich für die OTOBO-Entwicklung oder bei gepatchten Basis-Images sinnvoll.
Dockerfiles befinden sich im OTOBO-Quellcode-Repository:
cd /optgit clone https://github.com/RotherOSS/otobo.gitcd otobogit checkout rel-11_0bin/docker/build_docker_images.shdocker image lsGebaute Images werden als local-<OTOBO_VERSION> getaggt. Referenzieren Sie sie in .env:
OTOBO_IMAGE_OTOBO=local-11.0.xOTOBO_IMAGE_OTOBO_ELASTICSEARCH=local-11.0.xOTOBO_IMAGE_OTOBO_NGINX=local-11.0.xFür Testumgebungen können Sie den Web-Installer überspringen und das eingebaute Setup-Skript verwenden:
[!WARNING]
docker compose down -vlöscht alle Volumes und Daten. Nur auf Wegwerf-Testsystemen verwenden.
cd /opt/otobo-dockersudo docker compose down -vsudo docker compose up --detachsudo docker compose stop daemonsudo docker compose exec web bash -c \ "rm -f Kernel/Config/Files/ZZZAAuto.pm ; bin/docker/quick_setup.pl --db-password otobo_root"sudo docker compose start daemonsudo docker compose ps # laufende Container anzeigensudo docker compose logs -f web # Webserver-Logs verfolgensudo docker compose logs -f elastic # Elasticsearch-Logs verfolgensudo docker compose restart # alle Dienste neu startensudo docker compose stop # alle Dienste stoppensudo docker compose config # zusammengeführte Konfiguration prüfensudo docker compose exec web bash # Shell im Web-Container öffnendocker system prune -a # ungenutzte Images, Container und Netzwerke entfernen (vorsichtig verwenden)Für professionelle Unterstützung bei der Installation oder Integration wenden Sie sich an Softoft.de.
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.
Die fortgeschrittene Docker-Compose-Anleitung ist notwendig, sobald Sie über die grundlegende Installation von OTOBO hinausgehen und spezifische Anpassungen oder Optimierungen für eine Produktionsumgebung vornehmen möchten. Dies umfasst insbesondere die Aktivierung von HTTPS für eine sichere Kommunikation, die Nutzung des integrierten Nginx-Reverse-Proxys, die Implementierung eigener Overrides oder die Feineinstellung des gesamten Docker-Stacks. Typische Szenarien sind die Konfiguration von TLS-Zertifikaten, die Anpassung von Datenbank- oder Elasticsearch-Einstellungen für höhere Leistung oder die Integration von Authentifizierungsmethoden wie Kerberos-SSO. Die Anleitung hilft Ihnen, den Stack an Ihre spezifischen Infrastrukturanforderungen anzupassen und die Stabilität sowie Sicherheit Ihrer OTOBO-Instanz zu gewährleisten.Quellen:- Fortgeschrittene Installation von OTOBO mit Docker Compose- Grundlegende Docker-Compose-Installation
Ja, der offizielle otobo-docker-Stack enthält einen integrierten Nginx-Reverse-Proxy-Container, der speziell für die sichere Bereitstellung von OTOBO über HTTPS konzipiert ist. Dieser Nginx-Dienst (otobo-nginx-1) ist standardmäßig aktiviert, wenn Sie die HTTPS-Umgebungskonfiguration (.docker_compose_env_https) verwenden. Seine Hauptaufgabe ist es, den Datenverkehr zum OTOBO-Webserver (otobo-web-1) abzufangen, TLS/SSL-Verschlüsselung zu handhaben und Anfragen sicher weiterzuleiten. Um ihn zu nutzen, müssen Sie lediglich die .env-Datei auf die HTTPS-Variante umstellen und die Pfade zu Ihrem TLS-Zertifikat und dem privaten Schlüssel innerhalb des Nginx-Containers konfigurieren. Dies ist ein entscheidender Schritt für jede OTOBO-Produktionsumgebung, um die Vertraulichkeit und Integrität der Daten zu gewährleisten.Quellen:- Fortgeschrittene Installation von OTOBO mit Docker Compose- OTOBO Documentation
Ja, alle kritischen OTOBO-Daten bleiben dauerhaft in benannten Docker-Volumes auf dem Host-System erhalten. Dies ist ein zentrales Konzept von Docker, um die Persistenz von Daten unabhängig von der Lebensdauer der Container zu gewährleisten. Selbst wenn Sie Container neu erstellen, aktualisieren oder löschen, bleiben die in den Volumes gespeicherten Daten unberührt. Der otobo-docker-Stack verwendet mehrere spezifische Volumes für verschiedene Datenarten:- otobo_opt_otobo: Speichert Anwendungsdaten von OTOBO.- otobo_mariadb_data: Enthält die MariaDB-Datenbankdateien.- otobo_elasticsearch_data: Speichert die Daten des Elasticsearch-Indexes.- otobo_redis_data: Beherbergt die Redis-Cache-Daten.- otobo_nginx_ssl: Dient zur Speicherung von TLS-Zertifikaten und -Schlüsseln für Nginx.Es ist jedoch äußerst wichtig, diese Volumes niemals ohne ein verifiziertes Backup zu löschen, da dies zu irreversiblem Datenverlust führen würde. Regelmäßige Backups sind unerlässlich.Quellen:- Fortgeschrittene Installation von OTOBO mit Docker Compose- Backup & Restore
Für die fortgeschrittene Installation und Konfiguration von OTOBO mit Docker Compose sind mehrere Voraussetzungen zu erfüllen, die über die grundlegende Einrichtung hinausgehen. Zunächst benötigen Sie eine funktionierende OTOBO-Installation mit dem offiziellen otobo-docker-Repository, idealerweise unter dem Pfad /opt/otobo-docker, wie in der Basisinstallation beschrieben. Zweitens ist SSH-Zugang zum Host erforderlich, um Befehle auszuführen, Konfigurationsdateien zu bearbeiten und den Docker-Stack zu verwalten. Drittens, und das ist besonders wichtig für Produktionsumgebungen, benötigen Sie für die Aktivierung von HTTPS ein gültiges TLS-Zertifikat und den zugehörigen privaten Schlüssel. Diese Zertifikate können von einer vertrauenswürdigen Zertifizierungsstelle (CA) stammen oder beispielsweise über Let's Encrypt bezogen werden. Diese Dateien müssen dann im otobo_nginx_ssl-Volume oder über Host-Mounts für den Nginx-Container zugänglich gemacht werden.Quellen:- Fortgeschrittene Installation von OTOBO mit Docker Compose- Grundlegende Docker-Compose-Installation
Die .env-Datei ist das zentrale Steuerelement für den gesamten OTOBO-Docker-Stack und enthält alle wichtigen Umgebungsvariablen, die das Verhalten der Dienste definieren. Es ist entscheidend zu verstehen, dass die Beispieldateien wie .docker_compose_env_http und .docker_compose_env_https lediglich Ausgangspunkte sind. Sie sollten eine dieser Dateien als Basis für Ihre eigene .env verwenden und die Werte unbedingt an Ihre spezifischen Anforderungen anpassen. Wichtige Variablen umfassen das MariaDB-Root-Passwort (OTOBO_DB_ROOT_PASSWORD), JVM-Heap-Einstellungen für Elasticsearch (OTOBO_Elasticsearch_ES_JAVA_OPTS), externe Ports für HTTP/HTTPS (OTOBO_WEB_HTTP_PORT, OTOBO_WEB_HTTPS_PORT) sowie Pfade zu TLS-Zertifikaten für Nginx. Auch Kerberos-SSO-Einstellungen und Docker-Compose-spezifische Variablen wie COMPOSE_PROJECT_NAME zur Benennung der Container können hier konfiguriert werden. Eine sorgfältige Anpassung dieser Variablen ist für die Sicherheit, Leistung und korrekte Funktion Ihrer OTOBO-Instanz unerlässlich.Quellen:- Fortgeschrittene Installation von OTOBO mit Docker Compose- RotherOSS/otobo-docker GitHub Repository