summaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
authoryyamashita <yyamashita@hetzner.yyamashita.com>2026-07-02 22:58:56 +0900
committeryyamashita <yyamashita@hetzner.yyamashita.com>2026-07-02 22:58:56 +0900
commit88be3b3f503d4674d764a7265edb2d4e380ae738 (patch)
tree0018d96f2a683f7e025327cba51c28249122f53c /CLAUDE.md
parent2854b063b4cea071be2e90eb059fef095c26d9a1 (diff)
Add HTTPS forward proxy service (Squid on port 8443)
- proxy/: Squid container with HTTPS port, Basic auth from vpn/users.conf - caddy/Caddyfile: add proxy.yyamashita.com block (RSA cert for compat) - git/hooks: add proxy/deploy.sh to post-receive hook - CLAUDE.md: document proxy setup and client config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 465d394..9f2890b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -12,12 +12,13 @@ claude/ Claude Code セッション管理(sessions.txt, systemd unit,
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` を実行
+- `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` を実行
- cgit の `lighttpd.conf` / `Dockerfile` 変更はイメージ再ビルドが必要(`deploy.sh` で `--build` するため push だけで反映される)
- cgit の `cgitrc` はボリュームマウントのため push だけで反映される
- フック・リポジトリの変更は push 後に `bash /app/infra/git/install.sh` を手動実行
@@ -108,6 +109,18 @@ ssh root@<server> 'bash /app/infra/vpn/renew-cert.sh'
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 証明書更新(Let's Encrypt 更新後 90 日ごと)
+ssh root@<server> 'bash /app/infra/proxy/renew-cert.sh'
```
## VPN クライアント設定
@@ -126,3 +139,9 @@ docker compose -f /app/infra/vpn/docker-compose.yml restart
- タイプ: IKEv2 EAP (Username/Password)
- サーバー: `vpn.yyamashita.com`
- ユーザー名・パスワード: `users.conf` の内容
+
+## Proxy クライアント設定
+
+- アドレス: `proxy.yyamashita.com:8443`
+- プロトコル: HTTPS (CONNECT トンネリング)
+- 認証: Basic 認証(VPN と同じユーザー名/パスワード)