diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 33 |
1 files changed, 18 insertions, 15 deletions
@@ -5,20 +5,19 @@ Hetzner VPS 上で動くサービス群のインフラ管理リポジトリ。 ## ディレクトリ構成 ``` -caddy/ リバースプロキシ(Caddyfile, docker-compose.yml, deploy.sh) +caddy/ リバースプロキシ + フォワードプロキシ(Caddyfile, Dockerfile, entrypoint.sh, 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) hetzner-admin/ サーバー管理 Web UI(app.py, Dockerfile, docker-compose.yml, deploy.sh) mail/ MTA(Postfix + OpenDKIM, docker-compose.yml, install.sh, dns/setup-route53.py) vpn/ strongSwan IKEv2 VPN(Dockerfile, docker-compose.yml, install.sh, renew-cert.sh) -proxy/ HTTPS フォワードプロキシ(Squid, Dockerfile, docker-compose.yml, install.sh, renew-cert.sh) server/ サーバー共通設定(authorized_keys, requirements.md) ``` ## デプロイの仕組み -- `git push origin master` → post-receive フック → `caddy/deploy.sh` / `cgit/deploy.sh` / `mail/deploy.sh` / `hetzner-admin/deploy.sh` / `vpn/deploy.sh` / `proxy/deploy.sh` を実行 +- `git push origin master` → post-receive フック → `caddy/deploy.sh` / `cgit/deploy.sh` / `mail/deploy.sh` / `hetzner-admin/deploy.sh` / `vpn/deploy.sh` を実行 - cgit の `lighttpd.conf` / `Dockerfile` 変更はイメージ再ビルドが必要(`deploy.sh` で `--build` するため push だけで反映される) - cgit の `cgitrc` はボリュームマウントのため push だけで反映される - フック・リポジトリの変更は push 後に `bash /app/infra/git/install.sh` を手動実行 @@ -110,17 +109,21 @@ ssh root@<server> vi /app/infra/vpn/users.conf # 1行1ユーザー: "username password" docker compose -f /app/infra/vpn/docker-compose.yml restart -# Proxy 初回セットアップ(サーバー上で実行) -# 前提: ファイアウォールで TCP 8443 を開放済み、DNS A レコードで proxy.yyamashita.com を設定済み -git push origin master -ssh root@<server> 'bash /app/infra/git/install.sh' # post-receive フック更新 -# → Caddy が proxy.yyamashita.com の証明書を取得するまで数分待つ -ssh root@<server> 'bash /app/infra/proxy/install.sh' -# → Caddy の証明書を流用 + コンテナ起動 -# → proxy.yyamashita.com:8443 (HTTPS) で接続可能 +# Proxy 初回セットアップ(Caddy に統合済み。追加作業なし) +# → push するだけで Caddy が proxy.yyamashita.com の証明書を自動取得 +# → proxy.yyamashita.com:80 (HTTP) / :443 (HTTPS) でフォワードプロキシとして動作 +# → 認証は VPN と同じ users.conf を共有 + +# Proxy ユーザー追加・変更(VPN と同じ users.conf を編集) +ssh root@<server> +vi /app/infra/vpn/users.conf +docker compose -f /app/infra/caddy/docker-compose.yml restart # Caddy 再起動で反映 -# Proxy 証明書更新(Let's Encrypt 更新後 90 日ごと) -ssh root@<server> 'bash /app/infra/proxy/renew-cert.sh' +# DNS 登録(初回のみ。setup-route53.py に proxy が含まれている) +ssh root@<server> +export AWS_ACCESS_KEY_ID=... +export AWS_SECRET_ACCESS_KEY=... +python3 /app/infra/mail/dns/setup-route53.py ``` ## VPN クライアント設定 @@ -142,6 +145,6 @@ ssh root@<server> 'bash /app/infra/proxy/renew-cert.sh' ## Proxy クライアント設定 -- アドレス: `proxy.yyamashita.com:8443` -- プロトコル: HTTPS (CONNECT トンネリング) +- HTTP プロキシ: `proxy.yyamashita.com:80` +- HTTPS プロキシ: `proxy.yyamashita.com:443` - 認証: Basic 認証(VPN と同じユーザー名/パスワード) |
