19 Step-by-Step Docker Compose, OS, NAS & Hoster Guides
Deploy via Docker Compose, Windows Service (No Docker), Linux, NAS, Proxmox & Major Hosters
Pick your exact platform: from ready-to-run Docker Compose examples and a native Windows Server Service without Docker to Proxmox VE, Raspberry Pi, Synology, ASUSTOR, UGREEN, TerraMaster, and Unraid, plus exact PTR & firewall setup on netcup, Hetzner, IONOS, ALL-INKL.COM, Hostinger, Strato, and OVHcloud.
Official multi-arch OCI image (linux/amd64 & linux/arm64) · Live in 60 seconds with SQLite WAL or full Enterprise stack with PostgreSQL, S3 Object Lock & OpenTelemetry
Docker Compose
Option A: Zero-Config Single-Container Compose (SQLite WAL + Zstandard): Ideal for up to thousands of mailboxes on a single VPS, dedicated server, or NAS with zero external database dependencies and ~58 MB idle RAM.
Windows Server (2019 / 2022 / 2025) Native Windows Service Without Docker
True Windows Service Control Manager (SCM) daemon with zero Docker, Hyper-V, or WSL2 overhead
Native Windows Service
Create program & data directories: Extract the win-x64 release archive into C:\SharpMailserver\bin and create C:\SharpMailserver\data on local NVMe storage.
Grant least-privilege NTFS permissions: Run under NT AUTHORITY\NetworkService rather than LocalSystem, granting write access strictly to the data folder.
Create appsettings.Production.json: Use zero-dependency SQLite WAL out of the box, or point to your PostgreSQL cluster and S3 bucket.
Open Windows Firewall ports & register the Windows Service with auto-recovery: Run the following Administrator PowerShell script:
Cloud-Native HA Architecture: Backed by PostgreSQL and S3 Object Lock, multiple replicas scale behind an L4 LoadBalancer with PROXY protocol v2 preserving client IPs for SPF/CIDR checks.
Native Probes & OpenMetrics: Built-in GET /health probes and GET /metrics for Prometheus Operator.
64-Bit OS & NVMe statt SD-Karte: Use 64-bit Raspberry Pi OS Lite and place /var/lib/sharpmail on an M.2 NVMe HAT or USB 3 SSD rather than a microSD card.
Heimanschluss-Tipp (Smarthost): On residential dynamic IPs, set Smtp__OutboundSmartHost to your ISP/hoster relay for 100% inbox delivery.
Docker Manager installieren: Install Docker Manager from TOS App Center and create /Volume1/docker/sharpmail.
Projekt bereitstellen: In Docker Manager -> Projects -> Add, paste the YAML stack and start.
volumes:
- /Volume1/docker/sharpmail:/var/lib/sharpmail
# Admin-Cockpit nach Start: https://TERRAMASTER-IP:8443/admin/
Unraid Server (6.12+ / 7.x)
Unraid · Cache NVMe · Custom br0
Appdata auf Cache-NVMe pinnen: Map /mnt/cache/appdata/sharpmail so parity array disks can spin down while indexes run at NVMe speed.
Eigene LAN-IP über Netzwerktyp Custom: br0 (Empfohlen): Assign Network Type: Custom br0 with a dedicated LAN IP so ports 80/443/25 never collide with the Unraid WebGUI.
Achieving 100% inbox placement with Gmail, Outlook, and corporate gateways requires three hoster settings: outbound port 25 access, matching IPv4/IPv6 PTR reverse DNS, and clean SPF/DKIM/DMARC records.
netcup.de (Root-Server & VPS)
SCP · CCP DNS · Port 25 offen
Reverse-DNS (PTR) im SCP setzen: In netcup SCP -> Network, set Reverse DNS (PTR) for both your IPv4 and primary IPv6 address to mail.yourdomain.de.
DNS im CCP pflegen: In netcup CCP -> Domains -> DNS, add A, AAAA, MX (prio 10), SPF, and DKIM TXT records.
Installation: Deploy Debian 12 or Windows Server ISO in SCP and install natively or via Docker.
hetzner.de (Cloud CX/CAX & Dedicated)
Cloud Console · x64 & Ampere ARM64
Port 25 & 465 Hinweis bei Neukunden: New Hetzner Cloud accounts block outbound 25/465 initially; request the port unblock via Cloud Console -> Limits after your first invoice.
IPv4 & IPv6 PTR setzen: In Hetzner Cloud Console -> Networking -> Edit Reverse DNS on both Primary IPv4 and IPv6::1 to mail.yourdomain.de.
Preis-Leistungs-Tipp: Runs natively on ultra-efficient Hetzner CAX ARM64 instances and pairs directly with Hetzner S3 Object Storage.
ionos.de (VPS & Cloud Server)
IONOS Cloud Panel · S3 Object Lock
Externe IONOS-Firewall öffnen: Open IONOS Cloud Panel -> Network -> Firewall Policies and allow inbound TCP 25, 80, 443, 465, 587, 993, and 4190.
Reverse-DNS konfigurieren: Set Reverse DNS under Network -> Public IPs to mail.yourdomain.de once the A record resolves.
GoBD-Archiv mit IONOS S3: Pair with IONOS S3 Object Storage in Frankfurt/Berlin with native S3 Object Lock (COMPLIANCE).
ALL-INKL.COM (KAS DNS & Smarthost)
KAS DNS-Werkzeuge · Smarthost
Variante A (Domain bei ALL-INKL, SharpMailserver auf VPS/Firmen-IP): In ALL-INKL KAS -> Tools -> DNS Tools, point A/AAAA for mail and MX to your SharpMailserver IP, and add SPF/DKIM/DMARC TXT records.
Variante B (SharpMailserver im Büro / NAS mit ALL-INKL als Versand-Relay): Running SharpMailserver on an office NAS/Proxmox behind dynamic IP? Configure w01abc.kasserver.com:587 as Smtp__OutboundSmartHost and add include:_spf.kasserver.com to SPF.
Hostinger (KVM VPS & hPanel)
hPanel · KVM 2 / KVM 4
PTR Record im VPS-Dashboard: In Hostinger hPanel -> VPS -> IP Addresses, set the PTR record to mail.yourdomain.de.
Port 25 / Relay beachten: Verify outbound port 25 is unlocked on your KVM plan, or configure an authenticated port 587 Smarthost in SharpMailserver.
hPanel DNS Zone Editor: Replace default MX entries in hPanel DNS Zone Editor with mail.yourdomain.de and your SPF/DKIM/DMARC TXT records.
Strato (V-Server Linux/Windows & Dedicated)
STRATO Server-Login · Windows & Linux
Beliebt für Windows Server ohne Docker: On STRATO Windows V-Servers, install directly as a native Windows Service using the PowerShell script above.
Reverse-DNS im STRATO Server-Login: In STRATO Server Login -> IP Addresses, set Reverse DNS for IPv4 and IPv6 to mail.yourdomain.de.
STRATO Domainverwaltung: In STRATO Domain Management -> DNS Settings, switch MX to custom mail server (mail.yourdomain.de) and add TXT records.
OVHcloud (VPS, Dedicated & Public Cloud)
OVHcloud Control Panel · EU S3 WORM
Wichtige Reihenfolge für OVHcloud PTR: OVHcloud validates forward DNS before accepting a PTR change: create A and AAAA records for mail.yourdomain.de first, then set Reverse DNS under Network -> Public IPs.
Edge Network Firewall & S3 Object Lock: Allow mail ports in OVHcloud Edge Network Firewall and optionally connect OVHcloud S3 Object Storage (Limburg/Strasbourg) for immutable GoBD WORM archiving.