Docker® Compose、OS、NAS、ホスティング事業者向けの 19 のステップ バイ ステップ ガイド

Docker® Compose、Windows® サービス (Docker® 不要)、Linux®、NAS、Proxmox® & 主要ホスティング事業者でデプロイ

お使いのプラットフォームを正確に選択してください。すぐに使える Docker® Compose の例や Docker® を使わないネイティブの Windows Server® サービスから、Proxmox® VE、Raspberry Pi®、Synology®、ASUSTOR、UGREEN、TerraMaster、Unraid まで対応し、netcup、Hetzner、IONOS、ALL-INKL.COM、Hostinger、Strato、OVHcloud での正確な PTR とファイアウォールの設定も掲載しています。

# Linux & macOS: SHA-256-geprüfter Installer & Updater v1.0.0 (Docker Compose, .deb oder systemd)
curl -fsSL https://nextxch.com/install.sh | sudo bash

# Windows Server (2019 / 2022 / 2025): Lädt das .msi, prüft SHA-256 & startet den Assistenten
irm https://nextxch.com/install.ps1 | iex

# Gepinnter Container-Start (Version 1.0.0 für linux/amd64 & linux/arm64)
docker run -d --name nextxch -p 25:25 -p 465:465 -p 587:587 -p 993:993 -p 80:80 -p 443:443 \
  -v nextxch-data:/app/data nextxch/server:1.0.0
60 秒で稼働

壊れやすい 7 つのデーモンの代わりに、統合された 1 つのバイナリ。

Postfix、Dovecot、Rspamd、OpenDKIM、Certbot、Redis、旧式の PHP Webmail を寄せ集める必要はもうありません。nextxch は、メール転送、グループウェア、Webmail PWA、管理コックピット、CLI/API、0 ms の SNI Let's Encrypt を 1 つの自己完結型パッケージで提供します。

1 行のターミナル インストーラーと検証済みネイティブ パッケージ v1.0.0 (.msi、.deb、.tar.gz)

SHA-256 ダイジェストを自動で検証し、ドメイン、ホスト名、管理者、ストレージを対話形式で入力するか、インプレースでサービスを更新します

v1.0.0 · SHA-256 検証済み
# === Linux (Debian / Ubuntu / RHEL) & macOS - Interaktiver Installer & Updater (v1.0.0) ===
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 (Linux®、Windows®、macOS® & NAS 向けに v1.0.0 リリースを固定)

再現可能なマルチアーキテクチャ OCI イメージ (nextxch/server:1.0.0 · linux/amd64 & linux/arm64)。SQLite WAL または PostgreSQL® 18、CalDAV/CardDAV、S3 Object Lock & OpenTelemetry に対応

OCI v1.0.0
コンテナー レジストリに関する注意: 本番環境では、バージョン固定のリリース タグ (:latest ではなく 1.0.0) の使用を強く推奨します。パブリックな Docker® Hub へのミラーリングが段階的に展開されている間は、install.sh --mode docker を実行すると、nextxch.com の SHA256SUMS.txt を自動的に検証し、ホスト上でローカルに nextxch/server:1.0.0 をビルドします。
  1. オプション A: コンパクトな単一コンテナー Compose (SQLite WAL + Zstandard): 単一の VPS、専用サーバー、NAS で数千メールボックスまで運用するのに最適です。外部データベースへの依存がなく、アイドル時の RAM は約 40 MB です。
  2. オプション B: Enterprise 本番用 Compose (PostgreSQL® 18 + S3 WORM + OpenTelemetry): 水平スケーリング、GoBD 準拠の S3 Object Lock、OpenTelemetry OTLP のトレース、メトリック、ログ。
# === VARIANTE A: Kompakter Einzelcontainer-Stack (docker-compose.yml) ===
services:
  nextxch:
    image: nextxch/server:1.0.0
    container_name: nextxch
    hostname: mail.firma.de
    restart: unless-stopped
    ports:
      - "25:25"       # ESMTP-Eingang (MX)
      - "465:465"     # SMTPS-Einlieferung (Implicit TLS)
      - "587:587"     # SMTP-Einlieferung (STARTTLS)
      - "143:143"     # IMAP4rev2 (STARTTLS)
      - "993:993"     # IMAPS (Implicit TLS)
      - "4190:4190"   # ManageSieve (Filter & Abwesenheit)
      - "80:80"       # Let's Encrypt HTTP-01 & Autoconfig
      - "443:443"     # Admin-Cockpit, Webmail PWA, JMAP, CalDAV/CardDAV, Mobile Push (WBXML) & REST API
    environment:
      Urls: "http://*:80;https://*:443"
      Bootstrap__DefaultDomain: "firma.de"
      Bootstrap__AdminEmail: "admin@firma.de"
      Bootstrap__AdminPassword: "BitteSofortAendern!2026"
      Storage__Provider: "Sqlite"
      Storage__DataDirectory: "/var/lib/nextxch"
      Storage__BlobBackend: "FileSystem"
      Storage__Compression: "Zstd"
      Smtp__ServerHostName: "mail.firma.de"
      Imap__ServerHostName: "mail.firma.de"
      OpenTelemetry__Enabled: "true"
      OpenTelemetry__ServiceName: "nextxch"
    volumes:
      - ./nextxch-data:/var/lib/nextxch

# Starten (oder automatischer lokaler Image-Build via install.sh --mode docker):
# docker compose up -d && docker compose logs -f nextxch
# === VARIANTE B: Enterprise-Stack mit PostgreSQL 18, S3 Object Lock & OpenTelemetry ===
services:
  nextxch:
    image: nextxch/server:1.0.0
    restart: unless-stopped
    depends_on: [postgres, otel-collector]
    ports: ["25:25", "465:465", "587:587", "993:993", "4190:4190", "80:80", "443:443"]
    environment:
      Urls: "http://*:80;https://*:443"
      Storage__Provider: "Postgres"
      Storage__PostgresConnectionString: "Host=postgres;Database=nextxch;Username=nextxch;Password=${PG_PASSWORD}"
      Storage__BlobBackend: "Hybrid"
      Storage__Compression: "Zstd"
      Storage__S3Endpoint: "https://s3.eu-central-1.ionoscloud.com"
      Storage__S3Bucket: "firma-gobd-mail-archive"
      OpenTelemetry__Enabled: "true"
      OpenTelemetry__ServiceName: "nextxch-Prod"
      OpenTelemetry__OtlpEndpoint: "http://otel-collector:4317"
    volumes:
      - nextxch-nvme-cache:/var/lib/nextxch

  postgres:
    image: postgres:18-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: nextxch
      POSTGRES_USER: nextxch
      POSTGRES_PASSWORD: "${PG_PASSWORD}"
    volumes:
      - pg-data:/var/lib/postgresql

  otel-collector:
    image: otel/opentelemetry-collector-contrib:0.112.0
    restart: unless-stopped
    ports: ["127.0.0.1:4317:4317"]

volumes:
  nextxch-nvme-cache:
  pg-data:

Windows Server® (2019 / 2022 / 2025) Docker® を使わないネイティブ Windows® サービス

Docker®、Hyper-V、WSL2 のオーバーヘッドがない、本物の Windows® サービス コントロール マネージャー (SCM) デーモン

ネイティブ Windows® サービス
  1. 推奨: 公式 Windows® .msi ウィザード (v1.0.0): 新規インストール時に、ドメイン、MX ホスト名、管理者ログイン、SQLite WAL / Microsoft® SQL Server® (2019–2025 / Express / Azure® SQL) / PostgreSQL® 18 の選択、Let's Encrypt ACME、Windows® ファイアウォール、オプションのライセンス トークンを対話形式で設定します。新しい .msi を実行すると、appsettings.Production.json とメール データを保持したまま、Windows® サービスをワンクリックでインプレース アップグレードします。
  2. Ansible、GPO & Microsoft® Intune 向けの無人サイレント CLI: msiexec.exe /qn により、任意の構成プロパティをヘッドレスで渡せます。
# Variante A: Einzeiler in PowerShell (prüft SHA-256, lädt .msi & startet den Assistenten)
irm https://nextxch.com/install.ps1 | iex

# Variante B: Unbeaufsichtigte Installation / Dienst-Aktualisierung per msiexec.exe
curl.exe -fLO https://nextxch.com/downloads/Nextxch-Setup-win-x64.msi
msiexec.exe /i Nextxch-Setup-win-x64.msi /qn `
  DEFAULT_DOMAIN="firma.de" `
  MAIL_HOSTNAME="mail.firma.de" `
  ADMIN_EMAIL="admin@firma.de" `
  ADMIN_PASSWORD="BitteSofortAendern!2026" `
  STORAGE_PROVIDER="Sqlite" `
  DATA_DIR="C:\ProgramData\nextxch"

Docker® を使わない Linux® ネイティブ デーモン (systemd & .deb)

Debian® · Ubuntu® · Red Hat® · Rocky
  1. 専用の非 root ユーザー: ポート 25/443 用に CAP_NET_BIND_SERVICE を付与し、非 root で実行します。
  2. ネイティブの Type=notify systemd ユニットを有効化: journald および systemd の準備完了通知とネイティブに統合されます。
# Schnellweg für Debian 12 / Ubuntu 24.04 LTS:
curl -fLO https://nextxch.com/downloads/nextxch_1.0.0_amd64.deb
sudo dpkg -i nextxch_1.0.0_amd64.deb

# Alternativ für RHEL / Rocky / AlmaLinux via .tar.gz + systemd:
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/nextxch nextxch
sudo mkdir -p /opt/nextxch /var/lib/nextxch
curl -fsSL https://nextxch.com/downloads/nextxch-linux-x64.tar.gz | sudo tar -xz -C /opt/nextxch
sudo chown -R nextxch:nextxch /var/lib/nextxch
sudo cp /opt/nextxch/nextxch.service /etc/systemd/system/
sudo systemctl enable --now nextxch

macOS® (Apple® Silicon M1-M4 & Intel)

macOS® · ARM64 · launchd
  1. ネイティブ Apple® Silicon ARM64: オフィスの Mac mini® / Mac Studio® サーバーや、MacBook Pro® でのローカル ステージングに最適です。
  2. launchd で常駐実行: 起動時に自動的に開始し、RAM 使用量は約 40 MB です。
sudo mkdir -p /usr/local/nextxch /usr/local/var/nextxch/logs
curl -fsSL https://nextxch.com/downloads/nextxch-osx-arm64.tar.gz | sudo tar -xz -C /usr/local/nextxch
sudo xattr -dr com.apple.quarantine /usr/local/nextxch
sudo bash /usr/local/nextxch/install-macos.sh

# Alternativ per OrbStack / Docker Desktop auf macOS:
docker run -d --name nextxch -p 2525:25 -p 2993:993 -p 8080:80 \
  -v ~/nextxch-data:/app/data \
  nextxch/server:1.0.0

Active-Active Kubernetes® クラスター (EKS、AKS、GKE、K3s、OpenShift®) & Rootless Podman

100% PostgreSQL® 18 · Redis 不要 · Helm v3
  1. 100% PostgreSQL® 18 クラスター エンジン (Redis/Kafka 不要): レプリカは IMAP IDLE と JMAP SSE のリアルタイム プッシュを PostgreSQL® LISTEN/NOTIFY 経由で < 2 ms で配信し、一時的なチャレンジとレート制限を UNLOGGED テーブルで共有し、ACME/保持のリーダーを pg_try_advisory_lock で選出します。
  2. HAProxy PROXY プロトコル v1/v2 とステートレス セッション: L4 ロード バランサーの背後でも実際のクライアント IP を保持し、正確な SPF/DMARC/CIDR チェックを実現します。署名付きトークンにより、スティッキー セッションなしで HPA によるスケーリングが可能です。
  3. クラスター対応の Ed25519 ライセンス: 1 つのライセンス トークンで Pod 数無制限に対応し、/admin/ でアクティブ化するとすべてのノード間で自動的に同期されます。
# Offizielles Helm v3 Chart installieren (gepinnter Release-Tag 1.0.0, skaliert per HPA auf 3 bis 12 Pods)
helm upgrade --install nextxch ./deploy/helm/nextxch -n nextxch --create-namespace \
  --set image.repository=nextxch/server \
  --set image.tag=1.0.0 \
  --set replicaCount=3 \
  --set cluster.enabled=true \
  --set cluster.enableProxyProtocol=true \
  --set storage.provider=Postgres \
  --set storage.blobBackend=S3 \
  --set service.externalTrafficPolicy=Local

# Oder direkt per Kustomize-Manifesten (/health/live & /health/ready + PDB + Anti-Affinity):
kubectl apply -k ./deploy/kubernetes/

# Alternativ: Rootless Podman (RHEL 9 / Fedora / AlmaLinux ohne Docker-Daemon)
podman run -d --name nextxch --restart=always \
  -p 25:25 -p 465:465 -p 587:587 -p 993:993 -p 4190:4190 -p 8443:443 \
  -v /var/lib/nextxch:/app/data:Z \
  nextxch/server:1.0.0
仮想化、ARM64 と NAS アプライアンス

Proxmox®、Raspberry Pi®、Synology®、ASUSTOR、UGREEN、TerraMaster、Unraid へのインストール

Proxmox® VE (LXC & KVM)

Proxmox® VE 8+ · ZFS / NVMe
  1. LXC コンテナーの作成: /var/lib/nextxch に ZFS/NVMe マウント ポイントを持つ非特権の Debian® 12 LXC コンテナー (2 vCPU、RAM 1024 MB) を作成します。
  2. .deb / systemd で直接: LXC 内でネイティブの .deb/systemd サービスを実行すると、コンテナーの入れ子によるオーバーヘッドがなく、Proxmox® Backup Server のスナップショットを即座に取得できます。
  3. Proxmox® ファイアウォール: Datacenter/CT ファイアウォールで、TCP 25、465、587、993、4190、80、443 の受信を許可します。
# Auf dem Proxmox-Host (erstellt schlanken Debian-LXC CT 210 & installiert nativ):
pct create 210 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
  --hostname mail --cores 2 --memory 1024 --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --storage local-zfs --rootfs local-zfs:32 --unprivileged 1 --start 1
pct exec 210 -- bash -c "curl -fsSL https://nextxch.com/install.sh | bash -s -- --mode native -y"

Raspberry Pi® 4 & Raspberry Pi® 5

linux/arm64 · RAM 約 40 MB
  1. 64 ビット システムと SD カードではなく NVMe: 64 ビットの Raspberry Pi® OS Lite を使用し、/var/lib/nextxch は microSD ではなく M.2 NVMe HAT または USB 3 SSD に配置してください。
  2. 家庭用回線のヒント (スマートホスト): 家庭用の動的 IP では、確実な送信配信のために Smtp__OutboundSmartHost を ISP またはホスティング事業者のリレーに設定してください。
# Nativ per ARM64-.deb-Paket oder Container (v1.0.0) auf Raspberry Pi 4 / 5:
curl -fLO https://nextxch.com/downloads/nextxch_1.0.0_arm64.deb
sudo dpkg -i nextxch_1.0.0_arm64.deb

Synology® NAS (DSM 7.2+)

Container Manager · Btrfs
  1. File Station でフォルダーを作成: Btrfs/SSD ボリューム上に File Station で /volume1/docker/nextxch を作成します。
  2. ポートの競合を回避: ポート 25、465、587、993 が空くように、Synology® MailPlus が停止していることを確認してください。
  3. Container Manager を開く: Container Manager -> Project -> Create を開き、/volume1/docker/nextxch を選択して次を貼り付けます:
services:
  nextxch:
    image: nextxch/server:1.0.0
    container_name: nextxch
    restart: unless-stopped
    ports:
      - "25:25"
      - "465:465"
      - "587:587"
      - "993:993"
      - "4190:4190"
      - "8443:443"
    volumes:
      - /volume1/docker/nextxch:/app/data
    environment:
      Storage__Provider: "Sqlite"
      Storage__Compression: "Zstd"

ASUSTOR NAS (ADM 4.x)

App Central · Docker® CE · Portainer
  1. Docker®-CE & Portainer CE のインストール: ADM App Central から Docker®-CE と Portainer CE をインストールします。
  2. 永続フォルダー: ADM File Explorer で /volume1/Docker/nextxch を作成します。
  3. スタックのデプロイ: /volume1/Docker/nextxch:/app/data をマッピングしたスタックを Portainer でデプロイし、ADM Defender でメール ポートを許可します。
mkdir -p /volume1/Docker/nextxch
docker run -d --name nextxch --restart unless-stopped \
  -p 25:25 -p 465:465 -p 587:587 -p 993:993 -p 8443:443 \
  -v /volume1/Docker/nextxch:/app/data \
  nextxch/server:1.0.0

UGREEN NASync (UGOS Pro)

UGOS Pro · Docker® プロジェクト
  1. NVMe ストレージ プールを活用: UGREEN NASync DXP モデルでは、/volume1/docker/nextxch を M.2 NVMe プールに配置すると検索が瞬時に行えます。
  2. UGOS Pro Docker® アプリ: UGOS Pro の Docker® -> [Project] -> [Create] を開き、Compose ファイルを貼り付けて [Deploy] をクリックします。
# UGOS Pro -> Docker -> Projekt -> Compose-Konfiguration:
services:
  nextxch:
    image: nextxch/server:1.0.0
    restart: always
    ports: ["25:25", "465:465", "587:587", "993:993", "4190:4190", "8443:443"]
    volumes:
      - ./data:/app/data

TerraMaster NAS (TOS 5 / TOS 6)

TOS Docker® Manager
  1. Docker® Manager のインストール: TOS App Center から Docker® Manager をインストールし、/Volume1/docker/nextxch を作成します。
  2. プロジェクトをデプロイ: Docker® Manager -> Projects -> Add で YAML スタックを貼り付けて起動します。
volumes:
  - /Volume1/docker/nextxch:/app/data
# Admin-Cockpit nach Start: https://TERRAMASTER-IP:8443/admin/

Unraid Server (6.12+ / 7.x)

Unraid · キャッシュ NVMe · カスタム br0
  1. Appdata をキャッシュ NVMe に配置: /mnt/cache/appdata/nextxch をマッピングすると、インデックスは NVMe の速度で動作し、パリティ アレイのディスクはスピンダウンできます。
  2. ネットワーク タイプ Custom: br0 による専用 LAN IP (推奨): ネットワーク タイプ Custom br0 と専用の LAN IP を割り当て、ポート 80/443/25 が Unraid WebGUI と競合しないようにします。
# Unraid Terminal oder Docker Compose Manager Plugin:
docker run -d --name nextxch --net=br0 --ip=192.168.178.25 --restart=unless-stopped \
  -v /mnt/cache/appdata/nextxch:/app/data \
  -e ASPNETCORE_URLS="http://*:80;https://*:443" \
  -e Bootstrap__DefaultDomain="firma.de" \
  nextxch/server:1.0.0
ホスティング事業者と DNS のガイド

netcup、Hetzner、IONOS、ALL-INKL.COM、Hostinger、Strato、OVHcloud 向けのセットアップ ガイド

Gmail™、Outlook®、企業ゲートウェイで確実に受信トレイに配信するには、クリーンな送信元 IP レピュテーションに加え、ホスティング事業者側の 3 つの設定が必要です: 送信ポート 25 へのアクセス、一致する IPv4/IPv6 PTR 逆引き DNS、整合した SPF/DKIM/DMARC レコード。

netcup.de (ルート サーバーと VPS)

SCP · CCP DNS · ポート 25 開放
  1. SCP で逆引き DNS (PTR) を設定: netcup SCP -> Network で、IPv4 とプライマリ IPv6 アドレスの両方の逆引き DNS (PTR) を mail.yourdomain.de に設定します。
  2. CCP で DNS を管理: netcup CCP -> Domains -> DNS で、A、AAAA、MX (優先度 10)、SPF、DKIM の TXT レコードを追加します。
  3. インストール: SCP で Debian® 12 または Windows Server® の ISO を展開し、ネイティブまたは Docker® でインストールします。

hetzner.de (Cloud CX/CAX & Dedicated)

Cloud Console · x64 & Ampere ARM64
  1. 新規顧客のポート 25 開放: 新しい Hetzner Cloud アカウントでは、当初は送信 25/465 がブロックされています。最初の請求書が発行された後、Cloud Console -> Limits からポートのブロック解除を申請してください。
  2. IPv4 & IPv6 の PTR を設定: Hetzner Cloud Console -> Networking -> Edit Reverse DNS で、プライマリ IPv4 と IPv6::1 の両方を mail.yourdomain.de に設定します。
  3. コスト パフォーマンスのヒント: 非常に効率的な Hetzner CAX ARM64 インスタンス上でネイティブに動作し、Hetzner S3 Object Storage と直接組み合わせられます。

ionos.de (VPS & クラウド サーバー)

IONOS Cloud Panel · S3 Object Lock
  1. IONOS の外部ファイアウォールを開放: IONOS Cloud Panel -> ネットワーク -> ファイアウォール ポリシー を開き、TCP 25、80、443、465、587、993、4190 の受信を許可します。
  2. 逆引き DNS の構成: A レコードが解決できるようになったら、ネットワーク -> パブリック IP で逆引き DNS を mail.yourdomain.de に設定します。
  3. IONOS S3 による GoBD アーカイブ: ネイティブの S3 Object Lock (COMPLIANCE) を備えたフランクフルト/ベルリンの IONOS S3 Object Storage と組み合わせます。

ALL-INKL.COM (KAS DNS & スマートホスト)

KAS DNS ツール · スマートホスト
  1. バリエーション A (ドメインは ALL-INKL、nextxch は自社 VPS): ALL-INKL KAS -> Tools -> DNS Tools で、mail の A/AAAA と MX を nextxch の IP に向け、SPF/DKIM/DMARC の TXT レコードを追加します。
  2. バリアント B (nextxch をオフィス / NAS で運用し、ALL-INKL を送信リレーとして使用): 動的 IP のオフィス NAS/Proxmox® で nextxch を運用していますか? w01abc.kasserver.com:587 を Smtp__OutboundSmartHost に設定し、SPF に include:_spf.kasserver.com を追加してください。

Hostinger (KVM VPS & hPanel)

hPanel · KVM 2 / KVM 4
  1. VPS エリアでの PTR エントリ: Hostinger hPanel -> VPS -> IP アドレス で、PTR レコードを mail.yourdomain.de に設定します。
  2. ポート 25 / リレーに注意: KVM プランで送信ポート 25 がブロック解除されていることを確認するか、nextxch で認証付きのポート 587 スマートホストを設定してください。
  3. hPanel の DNS 管理: hPanel の DNS ゾーン エディターで既定の MX エントリを mail.yourdomain.de に置き換え、SPF/DKIM/DMARC の TXT レコードを追加します。

Strato (V-Server Linux®/Windows® & 専用サーバー)

STRATO サーバー ログイン · Windows® & Linux®
  1. Docker® 不要の Windows Server® に最適: STRATO Windows® V-Server では、上記の PowerShell® コマンドを使ってネイティブ Windows® サービスとして直接インストールします。
  2. STRATO サーバー ログインでの逆引き DNS: STRATO サーバー ログイン -> IP アドレス で、IPv4 と IPv6 の逆引き DNS を mail.yourdomain.de に設定します。
  3. STRATO ドメイン管理: STRATO のドメイン管理 -> DNS 設定で、MX を独自のメール サーバー (mail.yourdomain.de) に切り替え、TXT レコードを追加します。

OVHcloud (VPS、Dedicated & Public Cloud)

OVHcloud コントロール パネル · EU S3 WORM
  1. OVHcloud PTR の重要な手順: OVHcloud は PTR の変更を受け付ける前に正引き DNS を検証します。まず mail.yourdomain.de の A レコードと AAAA レコードを作成し、その後 [Network] -> [Public IPs] で逆引き DNS を設定してください。
  2. ネットワーク ファイアウォール & S3 Object Lock: OVHcloud Edge Network Firewall でメール ポートを許可し、必要に応じて OVHcloud S3 Object Storage (Limburg/Strasbourg) を接続して、変更不可の GoBD WORM アーカイブを構成します。