# hetzner-infra Hetzner VPS 上で動くサービス群のインフラ管理リポジトリ。 ## ディレクトリ構成 ``` caddy/ リバースプロキシ(Caddyfile, docker-compose.yml, deploy.sh) git/ ベアリポジトリ・フック管理(repos.txt, hooks/, install.sh) claude/ Claude Code セッション管理(sessions.txt, systemd unit, sync.sh) server/ サーバー共通設定(authorized_keys, requirements.md) ``` ## デプロイの仕組み - `git push origin master` → post-receive フック → `caddy/deploy.sh` だけ実行 - フック・リポジトリの変更は push 後に `bash /app/infra/git/install.sh` を手動実行 - Claude セッションの変更は push 後に `bash /app/infra/claude/sync.sh` を手動実行 ## 管理対象リポジトリ `git/repos.txt` に定義。`git/hooks//post-receive` がデプロイ内容。 | リポジトリ | work tree | |---|---| | hetzner-infra | /app/infra | | tokyo-livehouse-events | /app/tokyo-livehouse-events | | whois-band | /app/whois-band | ## よく使うコマンド ```bash # Caddy 設定変更 vi caddy/Caddyfile && git push origin master # フック・リポジトリ定義変更 vi git/hooks/.../post-receive # または git/repos.txt git push origin master ssh root@localhost 'bash /app/infra/git/install.sh' # Claude セッション変更 vi claude/sessions.txt git push origin master ssh root@localhost 'bash /app/infra/claude/sync.sh' # SSH 鍵追加 vi server/authorized_keys git push origin master ssh root@localhost 'bash /app/infra/git/install.sh' ```