Zum Inhalt springen

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

StackGeeignet fürZnuny-VersionenErste Anmeldung
znuny/znuny-docker (offiziell)Getrennt httpd + Daemon + MariaDB7.3.x (Build-Arg ZNUNY_VERSION)Auto-Install; Admin-Passwort aus .env
Erik-Donath/znuny-dockerWeb-Installer-Workflow7.1+http://<host>:8080/znuny/installer.pl
juanluisbaptiste/docker-otrsEingebaute Backups, SMTP-Relay6.x LTSVorkonfiguriert 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.

KomponenteMinimumEmpfohlen (Staging)
CPU2 Kerne4+ Kerne
RAM4 GB8 GB oder mehr (Defaults reservieren ~5 GB über die Services)
Disk20 GB frei40 GB+ (SSD)
Docker20.10aktuell
Docker Composev2aktuell
Git2.17aktuell

Schritt 1: Docker, Docker Compose und Git installieren

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

Unter Windows oder macOS: Docker Desktop.

Terminal-Fenster
docker --version
docker compose version
Terminal-Fenster
sudo git clone https://github.com/znuny/znuny-docker.git /opt/znuny-docker
cd /opt/znuny-docker

docker-compose.yml, dockerfiles/ und .env.example vor dem Start prüfen.

Terminal-Fenster
cp .env.example .env

Alle 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:

VariableDefaultZweck
external_port80HTTP-Port auf dem Host
DB_HOSTznuny-dbDatenbank-Hostname im Stack
ZNUNY_IMAGE_TAGlatestTag beim Pull vorgebauter Images
CONTAINER_REGISTRYznunyghcr.io/znuny/znuny-docker zum Pullen statt Bauen
DEFAULT_INTERFACEagentStandard-UI: agent oder customer

Lokal bauen (lädt den Znuny-Tarball; Default in der Dockerfile ist 7.3.1):

Terminal-Fenster
sudo docker compose up -d --build

Oder offizielle Images ziehen:

CONTAINER_REGISTRY=ghcr.io/znuny/znuny-docker
ZNUNY_IMAGE_TAG=stable
Terminal-Fenster
sudo docker compose up -d

Release beim Build festlegen:

Terminal-Fenster
sudo docker compose build --build-arg ZNUNY_VERSION=7.3.1 znuny-base
sudo docker compose up -d --build

ZNUNY_VERSION akzeptiert auch nightly und lts-nightly.

Gesundheit prüfen:

Terminal-Fenster
sudo docker compose ps
sudo docker compose logs -f znuny-httpd
ServiceContainerRolle
znuny-httpdznuny_httpdApache, Erstinstallation
znuny-daemonznuny_daemonHintergrundjobs
znuny-dbznuny_dbMariaDB

Der erste Start kann mehrere Minuten dauern (start_period von httpd: 300s).

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.

Terminal-Fenster
# TLS mit Let's Encrypt
sudo docker compose -f docker-compose.yml -f docker-compose.traefik.yml up -d --build

ZNUNY_DOMAIN und ACME_EMAIL in .env setzen.

Terminal-Fenster
# Vorhandene MariaDB/MySQL
sudo docker compose -f docker-compose.yml -f docker-compose.external-db.yml up -d --build

DB_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.

Terminal-Fenster
sudo docker exec -u znuny znuny_daemon /opt/znuny/bin/znuny.Console.pl List
sudo docker exec -u znuny znuny_daemon /opt/znuny/bin/znuny.Console.pl Maint::Cache::Delete
VolumeInhalt
ZnunyAppAnwendungsdateien
ZnunyPersistentConfig.pm, Version, Restart-Trigger
MariaDBVolDatenbankdateien

Vor Updates sichern — siehe Znuny Docker im Betrieb.

external_port öffnen (Standard 80) oder TLS mit Traefik / einem anderen Reverse-Proxy beenden.

  1. MariaDBVol, ZnunyApp und ZnunyPersistent sichern.
  2. Offizielles README lesen — der Upgrade-Prozess ist noch unvollständig.
  3. Lokaler Build: docker compose build --build-arg ZNUNY_VERSION=<neu> znuny-base, dann docker compose up -d --build.
  4. Vorbaut: ZNUNY_IMAGE_TAG setzen, dann docker compose pull && docker compose up -d.

Der httpd-Entrypoint vergleicht /persistent/version und startet upgrade.sh bei Versionsunterschied.

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

Terminal-Fenster
sudo docker compose logs -f znuny-httpd
sudo docker compose logs -f znuny-daemon
sudo docker compose logs -f znuny-db
sudo docker compose down # behält Volumes
sudo docker compose down --volumes # löscht Daten

Nutzen Sie diese, wenn der offizielle Stack nicht passt.

Terminal-Fenster
sudo git clone https://github.com/Erik-Donath/znuny-docker.git /opt/znuny-docker-community
cd /opt/znuny-docker-community
# Standardpasswörter in docker-compose.yaml ersetzen
sudo docker compose up --build -d

http://<host>:8080/znuny/installer.pl öffnen. Datenbank-Host ist db, nicht localhost. Typische Services: znuny-app und db.

Siehe juanluisbaptiste/docker-otrs für SMTP-Relay und automatische Backups.

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.