19 Praxis-Anleitungen für Docker® Compose, Betriebssysteme, NAS & Hoster
Installation per Docker® Compose, Windows®-Dienst (ohne Docker®), Linux®, NAS, Proxmox® & allen Hostern
Wähle deine Zielumgebung: Vom kopierfertigen Docker® Compose-Stack und dem klassischen Windows Server®-Dienst ohne Docker® über Proxmox® VE, Raspberry Pi®, Synology®, ASUSTOR, UGREEN, TerraMaster und Unraid bis zu den exakten Firewall- und Reverse-DNS-Einstellungen bei netcup, Hetzner, IONOS, ALL-INKL.COM, Hostinger, Strato und OVHcloud.
Prüft SHA-256-Prüfsummen automatisch, fragt bei Neuinstallation Domain, Hostname, Admin & Datenbank ab oder führt ein unterbrechungsfreies Update durch
v1.3.1 · SHA-256 geprüft
# === Linux (Debian / Ubuntu / RHEL) & macOS - Interaktiver Installer & Updater (v1.3.1) ===
curl -fsSL https://nextxch.com/install.sh | sudo bash
# Späteres Update auf neue Release-Version mit einem Befehl:
curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update
# === Windows Server (2019 / 2022 / 2025) - Lädt .msi, prüft SHA-256 & startet den Assistenten ===
irm https://nextxch.com/install.ps1 | iex
Docker® & Docker® Compose (Gepinnte Version v1.3.1 für Linux®, Windows®, macOS® & NAS)
Reproduzierbares Multi-Arch OCI-Image (nextxch/server:1.3.1 · linux/amd64 & linux/arm64) mit SQLite WAL oder PostgreSQL® 18, CalDAV/CardDAV, S3 Object Lock & OpenTelemetry
OCI v1.3.1
Hinweis zur Container-Bereitstellung:
Wir verwenden in Produktionsbeispielen grundsätzlich feste Versions-Tags (1.3.1 statt :latest). Solange die öffentliche Docker® Hub-Spiegelung gestuft freigeschaltet wird, lädt unser Installer (curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --mode docker) automatisch das SHA-256-geprüfte Release-Archiv direkt von nextxch.com und baut das lokale Image nextxch/server:1.3.1 in wenigen Sekunden auf deiner Maschine.
Variante A: Kompakter Einzelcontainer-Stack (SQLite WAL + Zstandard): Ideal bis mehrere tausend Postfächer auf einem VPS, Root-Server oder NAS. Benötigt keinen externen Datenbank-Container und nur ~40 MB RAM im Leerlauf.
Windows Server® (2019 / 2022 / 2025) nativ ohne Docker® als Windows®-Dienst
Echter Betrieb im Windows® Service Control Manager (SCM) ohne Docker® Desktop, Hyper-V oder WSL2
Nativ ohne Docker®
Empfohlen: Offizieller Windows®-.msi-Assistent (v1.3.1): Fragt bei der Erstinstallation interaktiv Domain, MX-Hostname, Admin-Zugang, SQLite WAL vs. Microsoft® SQL Server® (2019–2025 / Express / Azure® SQL) vs. PostgreSQL® 18, Let's Encrypt ACME, Windows®-Firewall und optionalen Lizenzschlüssel ab. Beim erneuten Ausführen einer neueren .msi-Version aktualisiert der Assistent den laufenden Windows®-Dienst vollautomatisch unter Erhalt deiner appsettings.Production.json und Postfachdaten.
Unbeaufsichtigte Installation für Ansible, GPO & Microsoft® Intune: Alle Parameter lassen sich auch ohne Benutzeroberfläche per msiexec.exe /qn übergeben.
100 % PostgreSQL® 18 Koordinationsschicht (ohne Redis/Kafka): Alle Knoten koordinieren IMAP-IDLE- und JMAP-SSE-Echtzeit-Benachrichtigungen in unter 2 ms über PostgreSQL® LISTEN/NOTIFY, kurzlebige WebAuthn/Rate-Limit-Zustände über UNLOGGED-Tabellen und ACME-TLS-Erneuerungen per pg_try_advisory_lock.
Cluster-fähige Ed25519-Lizenzierung: Ein Lizenzschlüssel gilt für unbegrenzt viele Pods und synchronisiert sich bei Aktivierung in /admin/ automatisch über den gesamten Cluster.
LXC-Container erstellen: Debian®-12-Vorlage wählen, 2 vCPU, 1024 MB RAM (nextxch benötigt im Leerlauf nur ~40 MB) und ZFS/NVMe-Dataset als Mountpoint /var/lib/nextxch einbinden.
Direkt per .deb / systemd: Im LXC-Container empfiehlt sich die direkte Paketinstallation ohne verschachtelten Docker®-Daemon für minimale Latenz und saubere Proxmox®-Backups (PBS).
64-Bit-System & NVMe statt SD-Karte: Raspberry Pi® OS Lite (64-Bit) verwenden und Datenverzeichnis auf eine USB-3-SSD oder ein M.2-NVMe-Modul legen (schützt vor SD-Verschleiß).
Heimanschluss-Tipp (Smarthost): Bei dynamischer Privatkunden-IP ein authentifiziertes Versand-Relay (z. B. ALL-INKL, Strato, Hetzner oder Amazon® SES) unter Smtp__OutboundSmartHost eintragen.
# Nativ per ARM64-.deb-Paket oder Container (v1.3.1) auf Raspberry Pi 4 / 5:
curl -fLO https://nextxch.com/downloads/nextxch_1.3.1_arm64.deb
sudo dpkg -i nextxch_1.3.1_arm64.deb
Synology® NAS (DSM 7.2+)
Container Manager · Btrfs
Ordner in File Station erstellen: Lege den freigegebenen Ordner /volume1/docker/nextxch an (Tipp: Daten-Prüfsumme in Btrfs aktivieren).
Portkonflikt vermeiden: Darauf achten, dass Synology® MailPlus gestoppt ist, damit Ports 25, 465, 587 und 993 frei sind.
Container Manager öffnen: Unter Projekt -> Erstellen den Pfad /volume1/docker/nextxch wählen und folgende Konfiguration (Version 1.3.1) verwenden:
NVMe-Speicherpool nutzen: Auf UGREEN-DXP-Modellen empfiehlt sich ein Ordner auf dem M.2-NVMe-Volume (z. B. /volume1/docker/nextxch) für schnelle OCR- und Volltextsuche.
UGOS Pro Docker®-App: Docker® öffnen -> Projekt -> Erstellen -> Compose-Konfiguration einfügen. Webmail, CalDAV/CardDAV & Admin sind direkt unter https://NAS-IP:8443 erreichbar.
Docker® Manager installieren: Im TOS App Center den offiziellen Docker® Manager aktivieren und das Verzeichnis /Volume1/docker/nextxch anlegen.
Projekt bereitstellen: Im Docker® Manager unter Projekte -> Hinzufügen die YAML-Konfiguration (nextxch/server:1.3.1) einfügen. TOS 6 unterstützt x86_64 und ARM64.
volumes:
- /Volume1/docker/nextxch:/data
# Admin-Cockpit nach Start: https://TERRAMASTER-IP:8443/admin/
Unraid Server (6.12+ / 7.x)
Unraid · Cache NVMe · Custom br0
Appdata auf Cache-NVMe legen: Verwende /mnt/cache/appdata/nextxch, damit die Array-Festplatten im Ruhezustand bleiben können und SQLite/Indizes mit voller NVMe-Geschwindigkeit laufen.
Eigene LAN-IP über Netzwerktyp Custom: br0 (Empfohlen): Weise dem Container unter Network Type -> Custom: br0 eine feste LAN-IP (z. B. 192.168.178.25) zu. So stehen die Standardports 25, 80, 443, 465, 587 und 993 ohne Portkonflikt mit der Unraid-Oberfläche bereit.
Einrichtung bei netcup, Hetzner, IONOS, ALL-INKL.COM, Hostinger, Strato & OVHcloud
Für zuverlässige Zustellbarkeit bei Gmail™, Microsoft® Outlook® und T-Online sind neben einer unbelasteten Server-IP drei Einstellungen beim Hoster entscheidend: ein freigeschalteter Port 25, ein exakt passender Reverse-DNS-Eintrag (PTR) für IPv4 und IPv6 sowie saubere SPF/DKIM/DMARC-Einträge.
netcup.de (Root-Server & VPS)
SCP · CCP DNS · Port 25 offen
Reverse-DNS (PTR) im SCP setzen: Im netcup Server Control Panel (SCP) den Server wählen -> Netzwerk -> sowohl für die IPv4-Adresse als auch für die genutzte IPv6-Adresse (z. B. ::1 aus dem /64-Netz) als rDNS exakt mail.deinedomain.de eintragen.
DNS im CCP pflegen: Im Customer Control Panel (CCP) -> Domains -> DNS-Einstellungen A, AAAA, MX (Priorität 10 auf mail), SPF und den im nextxch-Cockpit erzeugten DKIM-Schlüssel hinterlegen.
Installation: Debian® 12 oder Windows Server® im SCP installieren und per Einzeiler-Skript oder Windows®-.msi-Assistenten starten.
hetzner.de (Cloud CX/CAX & Dedicated)
Cloud Console · x64 & Ampere ARM64
Port-25-Freischaltung bei Neukunden: Bei neuen Hetzner-Cloud-Konten sind ausgehende Verbindungen auf Port 25/465 zunächst gesperrt. Nach der ersten beglichenen Rechnung im Cloud-Panel unter Limits -> Request change mit kurzer Begründung (Eigener Unternehmens-Mailserver) freischalten lassen.
IPv4- & IPv6-PTR setzen: In der Hetzner Cloud Console -> Server -> Networking -> Menü neben Primary IPv4 & IPv6 -> Edit Reverse DNS -> mail.deinedomain.de eintragen.
Preis-Leistungs-Tipp: Läuft besonders ressourcenschonend auf Hetzner CAX (ARM64) und CX-Instanzen inklusive Hetzner Object Storage für S3-Backups.
ionos.de (VPS & Cloud Server)
IONOS Cloud Panel · S3 Object Lock
Externe IONOS-Firewall öffnen: Wichtig: IONOS blockiert Ports standardmäßig in der vorgeschalteten Cloud-Panel-Firewall. Unter Netzwerk -> Firewall-Richtlinien eingehend TCP 25, 80, 443, 465, 587, 993 und 4190 freigeben.
Reverse-DNS konfigurieren: Unter Netzwerk -> Öffentliche IP -> Reverse-DNS den Hostnamen mail.deinedomain.de hinterlegen (sobald der A-Eintrag auflöst).
GoBD-Archiv mit IONOS S3: IONOS S3 Object Storage in deutschen Rechenzentren (Frankfurt/Berlin) unterstützt nativ S3 Object Lock (COMPLIANCE) für nextxch.
ALL-INKL.COM (KAS DNS & Smarthost)
KAS DNS-Werkzeuge · Smarthost
Variante A (Domain bei ALL-INKL, nextxch auf eigenem VPS): Im KAS anmelden -> Tools -> DNS-Werkzeuge -> Domain bearbeiten: A/AAAA für mail anlegen, MX-Eintrag auf mail.deinedomain.de ändern und TXT-Einträge aus unserem DNS-Generator einfügen.
Variante B (nextxch im Büro / NAS mit ALL-INKL als Versand-Relay): Betreibst du nextxch lokal auf Windows Server®, Proxmox® oder Synology® ohne feste IP, trage deinen ALL-INKL-Server (z. B. w01abc.kasserver.com, Port 587, STARTTLS) als Smtp__OutboundSmartHost ein und ergänze include:_spf.kasserver.com im SPF.
Hostinger (KVM VPS & hPanel)
hPanel · KVM 2 / KVM 4
PTR-Eintrag im VPS-Bereich: Im Hostinger hPanel -> VPS -> Einstellungen -> IP-Adressen -> PTR-Record exakt auf mail.deinedomain.de setzen.
Port 25 / Relay beachten: Prüfe im VPS-Panel, ob ausgehender Port 25 freigeschaltet ist; falls gedrosselt, entweder im hPanel entsperren oder ein authentifiziertes Relay auf Port 587 als OutboundSmartHost eintragen.
hPanel DNS-Verwaltung: Bestehende Standard-MX-Einträge entfernen und durch mail.deinedomain.de sowie die generierten SPF/DKIM/DMARC-Einträge ersetzen.
Strato (V-Server Linux®/Windows® & Dedicated)
STRATO Server-Login · Windows® & Linux®
Ideal für Windows Server® ohne Docker®: Auf STRATO Windows®-V-Servern und Dedicated Servern installierst du nextxch in 60 Sekunden direkt mit unserem PowerShell®-Befehl als nativen Windows®-Dienst.
Reverse-DNS im STRATO Server-Login: Unter Mein Server -> Netzwerk / IP-Adressen für IPv4 und IPv6 den Reverse-DNS-Namen mail.deinedomain.de hinterlegen.
STRATO Domainverwaltung: Unter Domains -> Verwalten -> DNS-Einstellungen den MX-Eintrag auf Eigenen Mailserver (mail.deinedomain.de) umstellen sowie TXT-Einträge für SPF, DKIM und _dmarc pflegen.
OVHcloud (VPS, Dedicated & Public Cloud)
OVHcloud Control Panel · EU S3 WORM
Wichtige Reihenfolge für OVHcloud PTR: OVHcloud prüft beim Speichern des Reverse-DNS sofort, ob der Forward-Eintrag bereits existiert. Lege daher zuerst A und AAAA für mail.deinedomain.de an, warte 5 Minuten und setze dann im OVHcloud-Kundencenter unter Netzwerk -> Öffentliche IP-Adressen -> Reverse-DNS ändern den Wert mail.deinedomain.de.
Netzwerk-Firewall & S3 Object Lock: Falls die OVHcloud-Edge-Firewall aktiv ist, TCP 25, 465, 587, 993, 4190 und 443 erlauben. OVHcloud Object Storage (Limburg/Straßburg/Gravelines) eignet sich hervorragend als S3-WORM-Ziel für das GoBD-Archiv.