From c55ae2d5daf229b12556d6283ba4e5e8161a5eb5 Mon Sep 17 00:00:00 2001 From: yyamashita Date: Mon, 1 Jun 2026 21:14:58 +0900 Subject: Add Postfix+OpenDKIM MTA with txt-based domain management MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - mail/ ディレクトリ追加: Postfix + OpenDKIM の Docker コンテナ - mail/domains.txt で送信ドメインを管理(現在: golive.yyamashita.com) - install.sh が domains.txt から KeyTable/SigningTable を動的生成 - setup-route53.py で SPF/DKIM/DMARC を Route 53 に一括設定 - post-receive フックに mail/deploy.sh を追加 Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index 3373a9c..28124bf 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,16 +9,18 @@ caddy/ リバースプロキシ(Caddyfile, docker-compose.yml, deploy.sh) cgit/ cgit Web UI(Dockerfile, lighttpd.conf, cgitrc, deploy.sh) git/ ベアリポジトリ・フック管理(repos.txt, hooks/, install.sh) claude/ Claude Code セッション管理(sessions.txt, systemd unit, sync.sh) +mail/ MTA(Postfix + OpenDKIM, docker-compose.yml, install.sh, dns/setup-route53.py) server/ サーバー共通設定(authorized_keys, requirements.md) ``` ## デプロイの仕組み -- `git push origin master` → post-receive フック → `caddy/deploy.sh` と `cgit/deploy.sh` を実行 +- `git push origin master` → post-receive フック → `caddy/deploy.sh` / `cgit/deploy.sh` / `mail/deploy.sh` を実行 - cgit の `lighttpd.conf` / `Dockerfile` 変更はイメージ再ビルドが必要(`deploy.sh` で `--build` するため push だけで反映される) - cgit の `cgitrc` はボリュームマウントのため push だけで反映される - フック・リポジトリの変更は push 後に `bash /app/infra/git/install.sh` を手動実行 - Claude セッションの変更は push 後に `bash /app/infra/claude/sync.sh` を手動実行 +- mail ドメイン変更(`mail/domains.txt`)は push 後に `bash /app/infra/mail/install.sh` を手動実行 ## 管理対象リポジトリ @@ -54,4 +56,21 @@ ssh root@localhost 'bash /app/infra/claude/sync.sh' vi server/authorized_keys git push origin master ssh root@localhost 'bash /app/infra/git/install.sh' + +# MTA(mail)初回セットアップ(サーバー上で root として実行) +ssh root@ 'bash /app/infra/mail/install.sh' +# → DKIM 鍵生成 + コンテナ起動。公開鍵が表示される。 + +# Route 53 DNS 設定(サーバー上で実行) +ssh root@ +export AWS_ACCESS_KEY_ID=... +export AWS_SECRET_ACCESS_KEY=... +export HOSTED_ZONE_ID=Z... +export SERVER_IP= +python3 /app/infra/mail/dns/setup-route53.py + +# mail ドメイン追加(golive → whoisband も追加する例) +vi mail/domains.txt +git push origin master +ssh root@localhost 'bash /app/infra/mail/install.sh' # テーブル再生成 + 再起動 ``` -- cgit v1.2.3