summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md21
1 files changed, 20 insertions, 1 deletions
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@<server> 'bash /app/infra/mail/install.sh'
+# → DKIM 鍵生成 + コンテナ起動。公開鍵が表示される。
+
+# Route 53 DNS 設定(サーバー上で実行)
+ssh root@<server>
+export AWS_ACCESS_KEY_ID=...
+export AWS_SECRET_ACCESS_KEY=...
+export HOSTED_ZONE_ID=Z...
+export SERVER_IP=<Hetznerサーバーのパブリック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' # テーブル再生成 + 再起動
```