Znuny mit Docker Compose installieren
Docker Compose ist der schnellste Weg zu einem Znuny-Testsystem, einer Demo oder einer Staging-Umgebung. Nutzen Sie bevorzugt das offizielle Projekt znuny/znuny-docker. Community-Stacks bleiben sinnvoll, wenn Sie einen Web-Installer, Znuny-6.x-LTS-Extras oder PostgreSQL brauchen.
Verwandte Themen: Znuny Docker im Betrieb · Staging-System · Offizielle Installationsdoku
Docker-Stack auswählen
Abschnitt betitelt „Docker-Stack auswählen“| Stack | Geeignet für | Znuny-Versionen | Erste Anmeldung |
|---|---|---|---|
| znuny/znuny-docker (offiziell) | Getrennt httpd + Daemon + MariaDB | 7.3.x (Build-Arg ZNUNY_VERSION) | Auto-Install; Admin-Passwort aus .env |
| Erik-Donath/znuny-docker | Web-Installer-Workflow | 7.1+ | http://<host>:8080/znuny/installer.pl |
| juanluisbaptiste/docker-otrs | Eingebaute Backups, SMTP-Relay | 6.x LTS | Vorkonfiguriert oder /otrs/installer.pl |
Diese Anleitung nutzt znuny/znuny-docker. Compose liest docker-compose.yml oder compose.yml — das offizielle Repo verwendet docker-compose.yml.
Systemvoraussetzungen
Abschnitt betitelt „Systemvoraussetzungen“| Komponente | Minimum | Empfohlen (Staging) |
|---|---|---|
| CPU | 2 Kerne | 4+ Kerne |
| RAM | 4 GB | 8 GB oder mehr (Defaults reservieren ~5 GB über die Services) |
| Disk | 20 GB frei | 40 GB+ (SSD) |
| Docker | 20.10 | aktuell |
| Docker Compose | v2 | aktuell |
| Git | 2.17 | aktuell |
Schritt 1: Docker, Docker Compose und Git installieren
Abschnitt betitelt „Schritt 1: Docker, Docker Compose und Git installieren“Unter Windows oder macOS: Docker Desktop.
docker --versiondocker compose versionSchritt 2: Offizielles Projekt klonen
Abschnitt betitelt „Schritt 2: Offizielles Projekt klonen“sudo git clone https://github.com/znuny/znuny-docker.git /opt/znuny-dockercd /opt/znuny-dockerdocker-compose.yml, dockerfiles/ und .env.example vor dem Start prüfen.
Schritt 3: .env anlegen
Abschnitt betitelt „Schritt 3: .env anlegen“cp .env.example .envAlle drei Pflichtpasswörter setzen (sonst startet Compose nicht):
ROOT_PASS=<sicheres_mariadb_root>DB_USER_PASS=<sicheres_znuny_db>ZNUNY_ADMIN_PASS=<sicheres_admin>Nützliche optionale Variablen:
| Variable | Default | Zweck |
|---|---|---|
external_port | 80 | HTTP-Port auf dem Host |
DB_HOST | znuny-db | Datenbank-Hostname im Stack |
ZNUNY_IMAGE_TAG | latest | Tag beim Pull vorgebauter Images |
CONTAINER_REGISTRY | znuny | ghcr.io/znuny/znuny-docker zum Pullen statt Bauen |
DEFAULT_INTERFACE | agent | Standard-UI: agent oder customer |
Schritt 4: Stack starten
Abschnitt betitelt „Schritt 4: Stack starten“Lokal bauen (lädt den Znuny-Tarball; Default in der Dockerfile ist 7.3.1):
sudo docker compose up -d --buildOder offizielle Images ziehen:
CONTAINER_REGISTRY=ghcr.io/znuny/znuny-dockerZNUNY_IMAGE_TAG=stablesudo docker compose up -dRelease beim Build festlegen:
sudo docker compose build --build-arg ZNUNY_VERSION=7.3.1 znuny-basesudo docker compose up -d --buildZNUNY_VERSION akzeptiert auch nightly und lts-nightly.
Gesundheit prüfen:
sudo docker compose pssudo docker compose logs -f znuny-httpd| Service | Container | Rolle |
|---|---|---|
znuny-httpd | znuny_httpd | Apache, Erstinstallation |
znuny-daemon | znuny_daemon | Hintergrundjobs |
znuny-db | znuny_db | MariaDB |
Der erste Start kann mehrere Minuten dauern (start_period von httpd: 300s).
Schritt 5: Znuny öffnen
Abschnitt betitelt „Schritt 5: Znuny öffnen“http://<server-ip>/znuny/Bei geändertem external_port diesen Port nutzen. Anmeldung mit dem initialen Admin-Konto und ZNUNY_ADMIN_PASS. Kein installer.pl im offiziellen Stack.
HTTPS (Traefik) und externe Datenbank
Abschnitt betitelt „HTTPS (Traefik) und externe Datenbank“# TLS mit Let's Encryptsudo docker compose -f docker-compose.yml -f docker-compose.traefik.yml up -d --buildZNUNY_DOMAIN und ACME_EMAIL in .env setzen.
# Vorhandene MariaDB/MySQLsudo docker compose -f docker-compose.yml -f docker-compose.external-db.yml up -d --buildDB_HOST, DB_NAME, DB_USER und DB_USER_PASS auf den externen Server setzen. ROOT_PASS bleibt in der Basisdatei Pflicht, wird aber nicht genutzt.
Nach der Installation
Abschnitt betitelt „Nach der Installation“Konsolenbefehle
Abschnitt betitelt „Konsolenbefehle“sudo docker exec -u znuny znuny_daemon /opt/znuny/bin/znuny.Console.pl Listsudo docker exec -u znuny znuny_daemon /opt/znuny/bin/znuny.Console.pl Maint::Cache::DeletePersistente Daten
Abschnitt betitelt „Persistente Daten“| Volume | Inhalt |
|---|---|
ZnunyApp | Anwendungsdateien |
ZnunyPersistent | Config.pm, Version, Restart-Trigger |
MariaDBVol | Datenbankdateien |
Vor Updates sichern — siehe Znuny Docker im Betrieb.
Firewall
Abschnitt betitelt „Firewall“external_port öffnen (Standard 80) oder TLS mit Traefik / einem anderen Reverse-Proxy beenden.
Znuny aktualisieren
Abschnitt betitelt „Znuny aktualisieren“MariaDBVol,ZnunyAppundZnunyPersistentsichern.- Offizielles README lesen — der Upgrade-Prozess ist noch unvollständig.
- Lokaler Build:
docker compose build --build-arg ZNUNY_VERSION=<neu> znuny-base, danndocker compose up -d --build. - Vorbaut:
ZNUNY_IMAGE_TAGsetzen, danndocker compose pull && docker compose up -d.
Der httpd-Entrypoint vergleicht /persistent/version und startet upgrade.sh bei Versionsunterschied.
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Container beenden sich wegen unvollständiger .env
Compose verlangt ROOT_PASS, DB_USER_PASS und ZNUNY_ADMIN_PASS.
Port 80 bereits belegt
external_port=8080 (oder anderer freier Port) in .env setzen und Stack neu erzeugen.
Daemon nicht healthy
httpd muss zuerst healthy sein (Install/Upgrade). docker compose logs znuny-httpd prüfen.
Logs / Stoppen
sudo docker compose logs -f znuny-httpdsudo docker compose logs -f znuny-daemonsudo docker compose logs -f znuny-dbsudo docker compose down # behält Volumessudo docker compose down --volumes # löscht DatenCommunity-Stacks (Alternativen)
Abschnitt betitelt „Community-Stacks (Alternativen)“Nutzen Sie diese, wenn der offizielle Stack nicht passt.
Erik-Donath (Web-Installer)
Abschnitt betitelt „Erik-Donath (Web-Installer)“sudo git clone https://github.com/Erik-Donath/znuny-docker.git /opt/znuny-docker-communitycd /opt/znuny-docker-community# Standardpasswörter in docker-compose.yaml ersetzensudo docker compose up --build -dhttp://<host>:8080/znuny/installer.pl öffnen. Datenbank-Host ist db, nicht localhost. Typische Services: znuny-app und db.
juanluisbaptiste (6.x LTS)
Abschnitt betitelt „juanluisbaptiste (6.x LTS)“Siehe juanluisbaptiste/docker-otrs für SMTP-Relay und automatische Backups.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Znuny Docker im Betrieb — Konsole, Pakete, Backups
- Staging-System
- Znuny REST API
- Offizielle Installationsdoku
- znuny-docker README — Architektur, Env-Vars, CI
Häufig gestellte Fragen
Stellt Znuny einen offiziellen Docker-Compose-Stack bereit?
Ja. Seit 2026 veröffentlicht Znuny github.com/znuny/znuny-docker mit docker-compose.yml und Images auf ghcr.io. Der Stack gilt weiterhin als experimentell.
Brauche ich den Web-Installer beim offiziellen Stack?
Nein. install.sh konfiguriert die Datenbank beim ersten Start aus .env. Anmeldung mit ZNUNY_ADMIN_PASS. Community-Stacks wie Erik-Donath nutzen weiter installer.pl und den Datenbank-Host db.