diff options
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 42 |
1 files changed, 41 insertions, 1 deletions
@@ -11,12 +11,13 @@ git/ ベアリポジトリ・フック管理(repos.txt, hooks/, ins 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) server/ サーバー共通設定(authorized_keys, requirements.md) ``` ## デプロイの仕組み -- `git push origin master` → post-receive フック → `caddy/deploy.sh` / `cgit/deploy.sh` / `mail/deploy.sh` / `hetzner-admin/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` を手動実行 @@ -85,4 +86,43 @@ EOF bash /app/infra/hetzner-admin/install.sh # → SSH鍵生成 + authorized_keys登録(command= 制限付き)+ コンテナ起動 # → hetzner-admin.yyamashita.com でアクセス可能 + +# VPN 初回セットアップ(サーバー上で実行) +# 前提: ファイアウォールで UDP 500, 4500 を開放済み +git push origin master +ssh root@<server> 'bash /app/infra/git/install.sh' # post-receive フック更新 +# → Caddy が vpn.yyamashita.com の証明書を取得するまで数分待つ +ssh root@<server> +cat > /app/infra/vpn/users.conf <<EOF +user1 <strong-password> +EOF +chmod 600 /app/infra/vpn/users.conf +bash /app/infra/vpn/install.sh +# → Caddy の証明書を流用 + コンテナ起動 +# → vpn.yyamashita.com:500/4500 (IKEv2) で接続可能 + +# VPN 証明書更新(Let's Encrypt 更新後 90 日ごと) +ssh root@<server> 'bash /app/infra/vpn/renew-cert.sh' + +# VPN ユーザー追加・変更 +ssh root@<server> +vi /app/infra/vpn/users.conf # 1行1ユーザー: "username password" +docker compose -f /app/infra/vpn/docker-compose.yml restart ``` + +## VPN クライアント設定 + +**iOS / macOS** (ネイティブ IKEv2): +- サーバー: `vpn.yyamashita.com` +- タイプ: IKEv2 +- 認証: ユーザー名 + パスワード (EAP) +- 証明書インストール不要(Let's Encrypt は自動信頼) + +**Meta Quest 3S / FireTV** (Android): +- strongSwan VPN Client アプリをインストール + - Quest: sideload `org.strongswan.android` APK + - FireTV: 同様に APK をサイドロード +- プロファイル設定: + - タイプ: IKEv2 EAP (Username/Password) + - サーバー: `vpn.yyamashita.com` + - ユーザー名・パスワード: `users.conf` の内容 |
