Die folgende Anleitung führt sie Schritt für Schritt durch eine Neu-Installation beziehungsweise ein Update von IceWarp EPOS in einer Docker-Umgebung.
~/icewarp-docker/
├─ docker-compose.yml
├─ .env ← alle Variablen hier hinein
└─ (weitere Dateien, z. B. Backups)
Laden sie zunächst das aktuellste IceWarp-Image herunter:
docker pull icewarptechnology/icewarp-server:latest
Erstellen sie das Arbeitsverzeichnis:
mkdir ~/icewarp-docker && cd ~/icewarp-dockerLegen sie im Arbeitsverzeichnis (z. B. ~/icewarp-docker/) die unten stehende docker-compose.yml an:
nano docker-compose.ymlHinweis: Das gezeigte YAML ist ein Beispiel – passen sie Ports, Pfade und Image-Versionen bei Bedarf an.
services:
icewarp:
image: ${ICW_IMAGE_VERSION:-icewarptechnology/icewarp-server:latest}
platform: ${ICW_IMAGE_PLATFORM:-linux/amd64}
command:
- "/usr/bin/supervisord"
- "--nodaemon"
- "-c"
- "/data/supervisord/supervisord.conf"
volumes:
- iwserver-data:/data
- iwserver-cache-bash-history:/commandhistory
environment:
LICENSE_ORDERID: "${LICENSE_ORDERID}"
ICW_DOMAIN: "${ICW_DOMAIN}"
ADMIN_ACCOUNT_PASS: "${ADMIN_ACCOUNT_PASS}"
ADMIN_ACCOUNT_USER: "${ADMIN_ACCOUNT_USER:-admin}"
PUBLICHOSTNAME: "${PUBLICHOSTNAME}"
PUBLICIP: "${PUBLICIP:-}"
LOCALIP: "${LOCALIP:-}"
DNSSERVER: "${DNSSERVER:-}"
PREVIEWURL: "${PREVIEWURL:-http://laforge:25791}"
MARIADB_HOST: mariadb
MARIADB_ROOT_USER: "${MARIADB_ROOT_USER:-root}"
MARIADB_ROOT_PASSWORD: "${MARIADB_ROOT_PASSWORD}"
REDIS_HOST: "tcp://redis:6379"
ports:
- "25:25" # SMTP
- "80:80" # HTTP
- "110:110" # POP3
- "143:143" # IMAP
- "443:443" # HTTPS
- "465:465" # SMTPS
- "587:587" # SMTP Submission
- "993:993" # IMAPS
- "995:995" # POP3S
- "1080:1080" # SOCKS
- "5060:5060/udp" # SIP
- "5060:5060" # SIP
- "5061:5061/udp" # SIP TLS
- "5222:5222" # XMPP
- "5223:5223" # XMPP TLS
- "5269:5269" # Groupware
depends_on:
- mariadb
- redis
laforge:
image: ${LAFORGE_IMAGE_VERSION:-icewarptechnology/laforge:2.0.3}
environment:
LAFORGE_SERVER_HTTP_LISTEN: "${LAFORGE_SERVER_HTTP_LISTEN:-:25791}"
ports:
- "25791:25791"
mariadb:
image: ${MARIADB_IMAGE_VERSION:-mariadb:10.6}
environment:
MARIADB_ROOT_PASSWORD: "${MARIADB_ROOT_PASSWORD}"
volumes:
- iwserver-mariadb:/var/lib/mysql
redis:
image: ${REDIS_IMAGE_VERSION:-redis:6}
command: "--appendonly yes"
volumes:
- iwserver-redis:/data
volumes:
iwserver-cache-bash-history:
iwserver-data:
iwserver-mariadb:
iwserver-redis:
Erstellen Sie im selben Verzeichnis eine Datei namens .env.
nano .envDiese enthält sensible Werte im Format SCHLÜSSEL=WERT und gehört nicht in ein öffentliches Repository.
Wichtig:
• Verwenden sie im MariaDB-Root-Passwort keine Sonderzeichen wie #, $, oder " (sie müssten sonst ggf. escaped werden und führen häufig zu Syntaxfehlern).
Minimale und empfohlene Einträge:
# Pflichtfelder --------------------------------------------------
LICENSE_ORDERID=IHRE_LIZENZNUMMER
# Keine Sonderzeichen verwenden!
MARIADB_ROOT_PASSWORD=Test1234
# Dieser Wert entscheidet was hinter dem "@" bei Nutzern steht.
ICW_DOMAIN=meine-domain.tld
# Sehr empfohlen ------------------------------------------------
ADMIN_ACCOUNT_PASS=SicheresPasswort1
# Der Eintrag der aus dem MX Eintrag hervor geht!
PUBLICHOSTNAME=mail.meine-domain.tld
# Let's Encrypt automatisch anfordern
CREATE_CERT=1
# Optional (Beispiele) ------------------------------------------
# ICW_IMAGE_VERSION=icewarptechnology/icewarp-server:14.0.1
# MARIADB_IMAGE_VERSION=mariadb:10.6
# LAFORGE_IMAGE_VERSION=icewarptechnology/laforge:2.0.3
# REDIS_IMAGE_VERSION=redis:6
Wechseln sie in das Verzeichnis mit der docker-compose.yml und der .env und führen diese aus:
docker compose --env-file .env -f docker-compose.yml up• Beim ersten Durchlauf lädt Docker die Images (IceWarp, MariaDB, Redis, LaForge) herunter.
• Anschließend beginnt das Setup im icewarp-Container. Verfolgen sie den Fortschritt in der Konsole.
• Tauchen mehrfach Zeilen vom Typ INFO success: auf, läuft IceWarp ordnungsgemäß.
• Lokale Installation: Browser öffnen → http://127.0.0.1 → Anmeldedaten eingeben (Standard-User admin).
• Remote-Server: Öffnen sie https://<deine-öffentliche-IP> oder den FQDN aus PUBLICHOSTNAME.
Die Erstinstallation ist damit abgeschlossen.
2.1 Laden Sie das neueste Image herunter:
docker pull icewarptechnology/icewarp-server:latest
2.2 Stoppen sie die Dienste:
docker compose down
2.3 Starten sie die Dienste wieder:
docker compose --env-file .env -f docker-compose.yml up
2.4 Fertig – IceWarp wurde aktualisiert.
(Benutzer- und Mail-Daten bleiben erhalten, da sie in benannten Volumes liegen.)
Pflicht:
• LICENSE_ORDERID – Lizenzschlüssel / Order-ID
• MARIADB_ROOT_PASSWORD – Root-Passwort der Datenbank (keine Sonderzeichen!)
• ICW_DOMAIN – Vorab anzulegende Domain
Dringend empfohlen:
• ADMIN_ACCOUNT_PASS – Passwort des Admin-Accounts (User s. u.)
• PUBLICHOSTNAME – MX-/Mail-Hostname (FQDN)
• CREATE_CERT – 1 = Let’s Encrypt für PUBLICHOSTNAME anfordern
Versionierung:
• ICW_IMAGE_VERSION – IceWarp-Image
• MARIADB_IMAGE_VERSION – MariaDB-Image
• LAFORGE_IMAGE_VERSION – LaForge-Image
• REDIS_IMAGE_VERSION – Redis-Image
Weitere Optionen:
• MARIADB_ROOT_USER – Standard „root“
• ADMIN_ACCOUNT_USER – Admin-Username (Default „admin“)
• PUBLICIP – Öffentliche IP (wird sonst automatisch ermittelt)
• LOCALIP – Lokale Host-IP (wird sonst automatisch ermittelt)
• DNSSERVER – DNS-Server, den IceWarp verwenden soll
• PREVIEWURL – URL des Thumbnail-Dienstes (Leere Zeichenkette = deaktiviert)• sichere Passwörter wählen (aber in MariaDB ohne Sonderzeichen oder korrekt escapen)
• Volumes regelmäßig sichern (iwserver-data, iwserver-mariadb, iwserver-redis)
• docker-compose mit -d im Hintergrund laufen lassen:docker-compose --env-file ./.env up -d
• Logs später einsehen: docker-compose logs -f icewarp
Viel Erfolg mit ihrer IceWarp-Instanz!