導入
このチュートリアルでは、Hetzner CloudのUbuntuサーバー上で独自のメールサーバーを構築します。Mailcowを使えば、独自のカスタムドメインで独自のメールサーバーをホストできます。Mailcowでは、連絡先やカレンダーを同期することも可能です。.
前提条件
- ドメイン名が必要です。
- Dockerの仕組みについてのちょっとした知識
- Hetzner Cloudサーバーは、スパム対策としてデフォルトでポート25と465をブロックしています。最初の請求書をお支払いいただいた後、ポートのブロック解除をリクエストできます。これは、スパム送信者ではないことの簡単な確認として機能します。.
ステップ1 – 新しいクラウドサーバーを作成する
- Cloud Consoleにログインする
- 新しいプロジェクトを作成し、任意の名前を付けます。
- ニーズに合わせてサーバーの場所とタイプを選択してください。不明な場合は、以下のヒントをご覧ください。.
- 「サーバーを追加」をクリックし、サーバーイメージを選択します。このチュートリアルはUbuntu 22.04に基づいていますが、より安定していて軽量なDebian 11にも簡単に適応できます。.
- タイプから必要なリソースを選択します。
- クラウド設定フィールドをクリックし、これを入力します: #include https://get.docker.com (これにより docker がインストールされます)
- SSHキーを選択してください
- 名前入力欄にサーバーのホスト名を入力します(mail.example.com)
- 「今すぐ作成&購入」をクリック
適切なサーバーの場所と種類を選択する方法
地理的に最も近いサーバーの場所、またはユーザーベースを選択してください。適切なサーバーの種類については、Mailcowが正常に動作するには最低7GBのRAMが必要であることにご注意ください。Mailcowはフル機能のグループウェアソリューションです。そのため、利用可能な最も低いサーバーの種類はCX31*またはCPX31です。.
ステップ2 – DNSの設定
基本的には、mail.example.comという新しいDNSレコードを作成し、IPv4(Aレコード)とIPv6(AAAAレコード)サーバーを追加します。次に、ドメインのMXレコードを、新しく作成したサブドメインmail.example.comを指すように設定してください。また、autodiscover.example.comとautoconfig.example.comというサブドメインも設定する必要があります。どちらもCNAMEで、mail.example.comを指すようにしてください。.
DNS 構成は次のようになります。
# Name Type Value
mail IN A 10.0.0.1
mail IN AAAA 2001:db8:1234::1
autodiscover IN CNAME mail
autoconfig IN CNAME mail
@ IN MX 10 mailより高度な設定については、Mailcow のドキュメントで注意すべき DNS レコードがさらに記載されています。.
ステップ3 – サーバーにアップデートとDocker Composeをインストールする
サーバーが起動するまで数秒待ち、SSHと秘密鍵を使って接続します。以下のコマンドを実行するとログインできるはずです。
apt update && apt upgrade -yすべてのアップグレードが完了したら、特にカーネルの更新があった場合は、サーバーを再起動するのが良いタイミングです。.
ステップ4 – Mailcowリポジトリのクローンを作成する
ここで、Mailcow GitHub リポジトリのクローンを作成したいので、まず次のコマンドで /opt に移動する必要があります。
cd /opt/opt に移動したら、次のコマンドを実行できます。
git クローン https://github.com/mailcow/mailcow-dockerized
ステップ5 – 設定を作成し、DockerコンテナをプルしてMailcowを起動する
設定を作成するには、cd /opt/mailcow-dockerized で作業ディレクトリを /opt/mailcow-dockerized に変更し、./generate_config.sh を実行して設定を生成します。ドメイン名(mail.example.com など)を入力する必要があります。これでほぼ完了です。次に、Docker compose pull を実行して Docker イメージをプルします。Mailcow を起動するには、docker compose up -d を実行します。.
ステップ6 – 逆DNSエントリを設定する
逆 DNS エントリを設定するには、次の手順に従います。
- Hetzner Cloud コンソールに移動し、プロジェクトをクリックします。
- 作成したサーバーを選択し、[ネットワーク] タブに移動します。
- IPv4 アドレスの近くにある 3 つのドットをクリックし、「逆 DNS の編集」を選択して、ドメイン (mail.example.com) を入力し、変更を確認します。.
- IPv6 サブネットの近くにある 3 つのドットをクリックし、[逆 DNS の編集] を選択して、ドメイン名 (mail.example.com) の下の IP があるフィールドに ::1 と入力します。.
ステップ7 – まず、Mailcowインスタンスにログインします
https://mail.example.org にある Mailcow インスタンスにアクセスし、デフォルトの資格情報でログインします。
- ユーザー名: admin
- パスワード: moohoo
重要: パスワードをそのままにしておくとサーバーが侵入される恐れがあるため、できるだけ早くパスワードを変更してください。.
ステップ8 – Mailcowにドメインを追加する
これで、Mailcowにドメインを追加できます。「設定」→「メール設定」に移動し、「ドメイン」タブでドメインを追加してください。.
ステップ9 – DKIMの設定
「設定」→「設定と詳細」に戻り、DKIMの設定を行います。「設定」タブのサイドバーで「DKIM」を選択します。一番上に表示されます。下にスクロールすると、ドメインを入力できるマスクが表示されます。「キーが不足しているドメインを選択」のショートカットをクリックして、ドメイン名を入力します。2048ビットのキーを選択し、「追加」をクリックします。キーが追加されたら、公開鍵をコピーし、コピーした内容を含むdkim._domainkeyというDNS TXTエントリを作成します。.
ステップ10 – メールボックスを作成する
いつ 構成 -> メール設定 戻ったら、メールボックスを作成し、https://mail.example.com/SOGo にアクセスして SOGo にログインできます。.
ステップ11 – バックアップを作成する
バックアップはほとんどのサーバー設定に不可欠です。メールサーバーも例外ではありません。Mailcowは、メールデータのバックアップを非常に簡単に作成できる方法を提供しています。.
手動バックアップを作成する
- SSH キーを使用してサーバーに接続します。.
- ヘルパー スクリプト /opt/mailcow-dockerized/helper-scripts が含まれている Mailcow ディレクトリに移動します。.
- バックアップ スクリプトを実行します。/backup_and_restore.sh すべてをバックアップ --削除日数 7
メールのサイズとサーバーの種類に応じて、このプロセスには数分から数時間かかる場合があります。.
ステップ12 – Mailcowインスタンスを更新する
Mailcowのアップデートは通常、作者によって月に1回リリースされます。セキュリティパッチや緊急のバグが発生した場合は、さらにアップデートがリリースされます。変更点に関する情報については、Mailcowのリリースページを定期的に確認することをお勧めします。.
アップデートを実行する前に、データの最新バックアップがあるかどうかを確認することをお勧めします。Hetznerクラウドコンソールでは、サーバーのスナップショットを作成して、問題が発生した場合に迅速に正常な状態に戻すこともできます。.
Hetzner スナップショットを使用しない場合は、Mailcow には更新をロールバックする方法も組み込まれています。.
- SSH キーを使用してサーバーに接続します。.
- Mailcowフォルダ/opt/mailcow-dockerizedに移動します。
- ./update.sh を実行します。
- 最後に、Mailcowは未使用のコンポーネントを削除するかどうかを尋ねます。「いいえ」を選択し、後で手動で削除して、何か問題が発生した場合に備えてください。.
- アップデートを実行すると、Mailcow はすべてのサービスを起動し、内部アップグレードを実行します。データの破損を防ぐため、サーバーまたは Docker コンテナをシャットダウンしないでください。.









