セットアップ マニュアル · v1.0.0 Windows .msi · Linux systemd · Docker

新しいホストから本番のメール フローまで 8 ステップで

メール サーバーはハードウェアよりもネットワークに大きく依存します。ポート 25 がブロックされていたり、逆引き DNS (PTR) が設定されていなかったりすると、CPU 性能に関係なくメッセージは配信されません。このガイドでは、事前チェックからセットアップ、デュアル キー DKIM、TLS、モバイル オンボーディングを経て、最初の配信確認まで、厳密な順序で手順を説明します。

第 01 章

nextxch の起動から本番稼働まで

nextxch は ESMTP、IMAP4rev2、POP3、JMAP、Exchange ActiveSync、CalDAV/CardDAV、ManageSieve、SpamGuard、GoBD WORM アーカイブ、管理コックピット (/admin/)、nextxch Webmail PWA (/mail/) を、メモリ安全な単一バイナリ (アイドル時 RAM 約 40~90 MB) にまとめています。初回起動時に GitHub から何かをダウンロードすることはなく、外部の NSSM ラッパー、Redis、Rspamd、個別の Webmail コンテナーも不要です。

順序が重要です: コマンドを 1 つも実行する前に第 02 章 (プロバイダーでのポート 25 と逆引き DNS) を確認し、その後お使いのプラットフォーム向けの第 04 章に従ってください。出力が期待される状態と異なる場合は、その都度第 06 章を参照してください。
ステップ 01-02インストールとサインインSHA-256 で検証されたパッケージをインストールし、ポートを開放して、/admin/ にサインインします。
ステップ 03-05ドメイン、TLS と Dual DKIMACME/PFX 証明書を発行し、RSA-2048 & Ed25519 の両方の DNS レコードを公開します。
ステップ 06-07強化とデバイスの接続SpamGuard、デュアル スタック IPv6、GoBD、ワンクリック QR/WhatsApp プロファイルを有効にします。
ステップ 08メール フローの確認送信 MX/DANE テスターを実行し、メッセージ トレースでラウンドトリップ テストを行います。
第 02 章

システム & ネットワークの前提条件 (事前チェックリスト)

インストール前に、以下の 6 項目すべてをチェックしてください。そのうち 4 つは、サーバーの外部にあるホスティングまたは DNS のコントロール パネルで設定します。

ポート プロトコル / サービス 方向 要件 & ガイダンス
25 / TCPESMTP (MX サーバー間 + STARTTLS/DANE)受信 & 送信必須 - インターネット メールの受信と配信に不可欠です。
443 / TCPHTTPS (/admin/、/mail/、JMAP、ActiveSync、DAV、MTA-STS)受信 (+ 送信)必須 - Webmail、管理画面、モバイル プッシュ、DAV、JMAP & ACME を提供します。
465 / TCPSMTPS Submission (Implicit TLS、RFC 8314)受信必須 - 推奨される暗黙的 TLS 送信ポート (RFC 8314)。
587 / TCPSMTP 送信 (STARTTLS)受信必須 - Outlook、プリンター、ERP 向けの標準 STARTTLS 送信。
993 / TCPIMAPS (IMAP4rev2 Implicit TLS)受信必須 - ポーリング不要の IDLE プッシュを備えた暗号化 IMAP4rev2。
80 / TCPHTTP (ACME HTTP-01 & Autoconfig)受信推奨 (TLS-ALPN-01 またはゲートウェイ PFX を使用する場合は任意)。
4190 / TCPManageSieve (STARTTLS)受信任意 (Webmail のビジュアル Sieve エディターは 443 経由ですでに動作します)。
143 / TCPIMAP (STARTTLS)受信任意 (ポート 993 の暗黙的 TLS を推奨)。
995 / TCPPOP3S (Implicit TLS)受信任意 (管理画面 > ネットワークで POP3 が有効な場合のみ。既定ではオフ)。
110 / TCPPOP3 (STLS)受信任意 (ポート 995 の暗黙的 TLS を推奨)。
展開規模 CPU RAM ディスクと推奨データベース
1 - 250 メールボックス2 vCPU1 - 2 GBNVMe/SSD · 組み込み SQLite WAL + Zstandard (サーバーのフットプリント約 40-90 MB)。
250 - 2,500 メールボックス4 vCPU4 - 8 GBNVMe + オプションのハイブリッド S3 · PostgreSQL 18 または Microsoft SQL Server (2019-2025)。
2,500 以上: HA クラスター8 vCPU 以上16 GB 以上PostgreSQL 18 または SQL Server Always On + S3 Object Lock 上のアクティブ / アクティブ ノード。
第 03 章

プラットフォームとストレージ バックエンドの選択

すべてのプラットフォームでまったく同じ機能セットが動作します。運用チームに合った展開方法と SQL バックエンドを選択してください。

プラットフォーム 方法 最適な用途
Windows Server 2019 - 2025.msi / install.ps1Docker や NSSM を使わないネイティブ Windows SCM サービス。Microsoft SQL Server との併用や hMailServer からの移行に最適です。
Linux (x86_64 & ARM64)install.sh · .deb · systemdDebian、Ubuntu LTS、RHEL/Rocky、ARM64 サーバー上で動作する軽量な非 root の systemd デーモン。
Docker Composenextxch/server:1.0.0Linux ホスト、Proxmox VM、Synology、UGREEN、Unraid にわたる再現可能なコンテナー スタック。
macOS & Kuberneteslaunchd / Helm v3Mac mini のオフィス サーバー (launchd) から、水平スケールのアクティブ/アクティブ Kubernetes クラスターまで。
第 04 章

8 ステップ チュートリアル: インストールから最初の検証済みテスト メールまで

以下で対象プラットフォームを選択してください。8 つの各ステップでは、何を行うか、正確なコマンド、期待される結果を示し、最もよくある落とし穴をその場で強調表示します。

ステップ 01

サービスのインストール & ファイアウォール ポートの開放

リリース パッケージをダウンロードして SHA-256 ダイジェストを検証し、バックグラウンド サービスと永続データ ディレクトリを登録します。

# PowerShell (Admin): Downloads .msi (v1.0.0), verifies SHA-256 & launches setup
irm https://nextxch.com/install.ps1 | iex

# Ensure Windows Defender Firewall permits inbound mail & HTTPS ports
New-NetFirewallRule -DisplayName "nextxch" -Direction Inbound `
  -Protocol TCP -LocalPort 25,80,443,465,587,993,4190 -Action Allow
# Debian / Ubuntu / RHEL / macOS: Verifies SHA-256 & registers systemd unit
curl -fsSL https://nextxch.com/install.sh | sudo bash

# If UFW is enabled, allow required mail & HTTPS ports:
sudo ufw allow 25,80,443,465,587,993,4190/tcp
# Pulls SHA-256-verified nextxch/server:1.0.0 & writes docker-compose.yml
curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- \
  --mode docker --domain firma.de --hostname mail.firma.de --admin admin@firma.de
期待される結果: サービスがアクティブで、起動時に有効化され、HTTPS とメール ポートで待ち受けています。
よくある落とし穴: 起動時に 'Address already in use' と表示される場合、プリインストールされた MTA (Postfix/Exim) または Web サーバーがポート 25/80/443 を使用しています -> 第 06 章 (#sym-port-bind) を参照してください。
ステップ 02

サービスの正常性を確認して /admin/ にサインイン

ログでリスナーが正常に起動したことを確認し、インストール時に設定した管理者の資格情報で管理コックピットにサインインします。

Get-Service nextxch
# Open in browser: https://mail.firma.de/admin/ (or http://localhost/admin/)
sudo systemctl status nextxch
sudo journalctl -u nextxch -n 30 --no-pager
# Open in browser: https://mail.firma.de/admin/
docker compose ps
docker compose logs --tail=30 nextxch
# Open in browser: https://mail.firma.de/admin/
期待される結果: /admin/ のリアルタイム ダッシュボードが開き、SMTP、IMAP、HTTPS のアクティブなリスナーが表示されます。
ステップ 03

メール ドメインと並列デュアルキー DKIM の構成

/admin/ で [ドメイン & ルーティング] -> [ドメインの管理] を開きます。nextxch は 2 つの DKIM キー ペアを並行して自動的にプロビジョニングします: RSA-2048 (セレクター s2026) と Ed25519 (セレクター s2026ed)。

ベスト プラクティス: ステップ 5 で両方の TXT レコードを一度に DNS に公開してください。その後は、DNS の伝播を待たずにサーバー上で署名モード (RSA-2048、Ed25519、デュアル署名) を即座に切り替えられます。
ステップ 04

TLS 証明書を有効化 (ACME Let's Encrypt またはゲートウェイ PFX)

[セキュリティと証明書] -> [TLS & ACME] を開きます。mail.company.com がホストに解決されるようになったら、HTTP-01 または TLS-ALPN-01 (ポート 443) で Let's Encrypt 証明書を要求するか、pfSense/SSL ゲートウェイの .pfx/.pem 証明書をアップロードします。

期待される結果: 0 ms の動的 SNI ホット リロードにより、再起動なしで HTTPS、SMTPS、IMAPS、ManageSieve 全体で証明書が直ちに有効になります。
ステップ 05

DNS レコードの公開とライブ DNS 検証の実行

組み込みの DNS アドバイザーから算出された DNS レコードをコピーします (または BIND ゾーン ファイルをエクスポート): MX、A/AAAA、SPF、両方の DKIM セレクター (s2026 + s2026ed)、DMARC、MTA-STS、TLS-RPT、任意で DANE TLSA (3 1 1) と BIMI。

期待される結果: 'ライブ DNS を検証' をクリックすると、MX、SPF、両方の DKIM セレクター、DMARC、PTR に緑色の合格バッジが表示されます。
よくある落とし穴: 多くの DNS コントロール パネルはドメインを自動的に付加します。ホストには s2026._domainkey.company.com ではなく s2026._domainkey と入力してください -> #sym-dkim-dns を参照。
ステップ 06

本番運用前にサーバーを強化する

管理者アカウントにパスキー (WebAuthn) または TOTP 2FA を登録し、SpamGuard のしきい値は 4.5 / 9.0 のままでスマート グレーリストを有効にし、業務用ドメインでは GoBD WORM アーカイブを有効にしてください。

期待される結果: 自動 BAN 保護、認証前の TLS 必須化、送信レート ガードにより、IP レピュテーションが自動的に保護されます。
ステップ 07

最初のメールボックスを作成し、モバイル デバイスを 30 秒で接続

[アカウントとリスト] で最初のユーザー メールボックスを作成し、https://mail.company.com/mail/ でサインインして [デバイスの設定] をクリックすると、QR コード、またはメッセンジャーでも安全に送れるワンクリック オンボーディング リンクが生成されます。CMS 署名付きの iOS/macOS プロファイルまたは Exchange ActiveSync を利用できます。

期待される結果: iOS のプロファイルに緑色の '検証済み' バッジが表示され、メール、カレンダー、連絡先、メモが直ちに同期されます。
ステップ 08

ライブ MX テスターとメッセージ トレースで受信・送信の配信を確認

[診断 & ログ] -> [送信 MX & DANE テスター] を gmail.com または外部アドレスに対して実行し、次に /mail/ から実際のメールを送信して返信し、双方向のフローを確認します。

期待される結果: メッセージ トレースに双方向とも TLS 1.3 での配信済みと記録され、外部の受信側のヘッダーに spf=pass、dkim=pass、dmarc=pass が表示されます。
第 05 章

pfSense / OPNsense、SSL ゲートウェイとリバース プロキシの背後での運用

pfSense、OPNsense、Sophos、HAProxy の背後に展開する場合は、正確な診断と実際のクライアント IP の保持のために、次の 3 つの設定を構成してください:

シナリオ 推奨構成
スプリット DNS / ヘアピン NATUnbound で mail.company.com を社内 LAN IP に向ける Split-DNS ホスト オーバーライドを構成するか、ゲートウェイで Pure NAT Reflection を有効にしてください。
HAProxy PROXY プロトコル信頼済みプロキシの CIDR に限定して PROXY プロトコル v1/v2 を有効にすると、SPF と自動禁止がゲートウェイの IP ではなく実際のリモート IP を参照します。
ゲートウェイ証明書ゲートウェイで更新された .pfx/.pem 証明書をポート 25/465/587/993 用に nextxch へ同期します。Dynamic SNI により、更新された証明書がダウンタイムなしでホット リロードされます。
第 06 章

症状別トラブルシューティング (エラーから即時の解決まで)

下記から発生している症状をクリックするか、上のクイック フィルター ボックスにエラー メッセージの一部を入力してください:

サービスが実行中なのに、外部ポート チェッカーが 'Blocked / Timeout' と報告する TCP 25 / 465 / 993 Timeout
根本原因: 両方のホストが Hairpin NAT (NAT リフレクション) なしで同じ pfSense/OPNsense ファイアウォールの背後にあるか、クラウド プロバイダーの外側のファイアウォールがまだポート 25 をブロックしています。
対処法: /admin/ のネットワーク診断 (同一ホスト上の Hairpin NAT ゲートウェイを自動検出) を確認し、外側のクラウド ファイアウォールで TCP 25、443、465、587、993 が許可されていることを確認してください。
起動時にサービスがポートをバインドできない Address already in use (:25 / :80 / :443)
根本原因: Linux にプリインストールされた MTA (Postfix、Exim、Sendmail) または IIS/Nginx/Apache が、すでにポート 25、80、443 を使用しています。
解決策: Linux では 'sudo ss -tulpn' (未使用の postfix/exim を無効化)、PowerShell では 'Get-NetTCPConnection -State Listen' でアクティブなリスナーを確認します。
Gmail、Microsoft 365、または大手 ISP への送信メールが拒否される 550-5.7.25 / 550-5.7.1 PTR missing
根本原因: ホストがデュアル スタック インターフェイスで IPv6 経由の送信接続を行っていますが、PTR レコードを IPv4 にしか設定しておらず、IPv6 の PTR レコードを設定し忘れています。
対処法: ホスティング事業者のパネルで、IPv4 と IPv6 の両方のアドレスに Smtp:ServerHostName と一致する PTR レコードを設定してください。
ライブ DNS インスペクターで、公開した DKIM または DMARC の TXT レコードが見つからない NXDOMAIN s2026._domainkey
根本原因: 多くの DNS コントロール パネルはゾーン頂点を自動的に付加するため、's2026._domainkey.company.com' が 's2026._domainkey.company.com.company.com' になったり、長い RSA-2048 文字列が余分なスペースで分割されたりします。
対処法: DNS パネルには相対ホスト ラベル ('s2026._domainkey'、's2026ed._domainkey'、'_dmarc') のみを入力し、'nslookup -type=txt s2026._domainkey.company.com' で確認してください。
Let's Encrypt ACME で証明書が発行されない、またはブラウザーに TLS 警告が表示される ACME challenge failed
根本原因: mail.company.com の A/AAAA DNS レコードがまだ反映されていないか、ポート 80/443 が上流の別のリバース プロキシに横取りされています。
対処法: ポート 443 が nextxch に直接到達する場合は TLS-ALPN-01 を使用するか、HTTP-01 用にポート 80 を開くか、リバース プロキシで更新された証明書を PFX/PEM でインポートしてください。
iPhone で WhatsApp / Teams のオンボーディング リンクを開いても、設定のプロファイル インストールがすぐに起動しない iOS In-App WebView
根本原因: iOS では .mobileconfig システム プロファイルのインストールが Safari からのみに制限されていますが、チャット アプリはリンクをまず埋め込み WebView 内で開きます。
対処法: オンボーディング ページの案内に従って Safari のコンパス アイコン ('Safari で開く') をタップしてください。プレビュー クローラーがワンタイム トークンを消費することはありません。
Docker コンテナーが再起動を繰り返す、またはマウントしたホスト ボリュームに書き込めない Access to path '/var/lib/nextxch' denied
根本原因: RHEL/Rocky/Fedora では、ホスト ディレクトリの厳格な所有権や SELinux ラベルにより、バインド マウントしたフォルダーへのコンテナーの書き込みがブロックされます。
対処法: SELinux が強制モードのホストでは、名前付き Docker ボリュームを使用するか、バインド マウントに ':Z' を付加してください。
メール クライアントが IMAP または SMTP でサインインできない 535 Authentication failed / TLS required
根本原因: クライアントが TLS なしで平文ログインを試みた (RequireTlsForAuth によりブロック) か、アカウントで 2FA が有効になっており、従来の IMAP/SMTP にはアプリ パスワードが必要です。
対処法: ポート 993 (SSL/TLS) とポート 465 (SSL/TLS) または 587 (STARTTLS) を構成し、ユーザー名には完全なメール アドレスを使用してください。2FA が有効な場合は専用のアプリ パスワードを生成してください。
第 07 章

次のステップ: 10 秒でのアップグレード、バックアップ & 移行

双方向のメール フローが確認できれば、サーバーは本番運用の準備完了です。次の 3 つの運用ワークフローを手元に用意しておいてください:

# 1) In-place upgrade (preserves configuration, certificates & mailboxes):
# Linux / macOS:
curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update
# Windows PowerShell (Administrator):
irm https://nextxch.com/install.ps1 | iex

# 2) Backup scope (only 2 paths):
# - Config file: appsettings.Production.json (including license token)
# - Data dir:    Storage:DataDirectory (SQLite WAL / blobs / TLS certs)
#   or pg_dump / SQL Server backup when running an external DB cluster

初回起動前のクイック アンサー

nextxch を Windows Server で使うには NSSM や Docker Desktop が必要ですか?

いいえ。Windows で NSSM サービス ラッパーを必要とするサーバーとは異なり、nextxch は公式の .msi インストーラーにより、Docker Desktop、WSL2、Hyper-V なしで Windows サービス コントロール マネージャー (SCM) にネイティブに登録されます。

nextxch は初回起動時に WebUI やスパム ルールをダウンロードするためにインターネット接続が必要ですか?

いいえ。管理コックピット (/admin/)、nextxch Webmail PWA (/mail/)、SpamGuard エンジン、すべてのプロトコル リスナーは SHA-256 で検証されたパッケージに自己完結しており、100% オフライン / エアギャップ環境でも起動できます。

最初のテスト メールを送信する前に、逆引き DNS (PTR) を一致させる必要があるのはなぜですか?

Gmail、Microsoft 365、ヨーロッパの ISP などの大手受信者は、パブリック IPv4 と IPv6 の両方のアドレスが PTR で正確な SMTP EHLO ホスト名 (例: mail.company.com) に逆引きされることを検証します。デュアル スタック ホストでの IPv6 PTR レコードの欠落は、550-5.7.25 による拒否の最大の原因です。

本番稼働後のインプレース アップグレードはどのように行いますか?

Linux/macOS では curl -fsSL https://nextxch.com/install.sh | sudo bash -s -- --update、Windows では irm https://nextxch.com/install.ps1 | iex を実行します (または /admin/ 内のワンクリック アップデーターを使用)。appsettings.Production.json、TLS 証明書、DKIM キー、メール ストアは自動的に保持されます。