From 230537b994d29710d1c33c2eef35487573dc550e Mon Sep 17 00:00:00 2001 From: yyamashita Date: Sun, 17 May 2026 17:04:49 +0900 Subject: Add server/ dir, CLAUDE.md, and SSH key management via install.sh - server/authorized_keys: root SSH keys managed in repo - server/requirements.md: list of required tools/packages - git/install.sh: now also applies authorized_keys on install - CLAUDE.md: repo overview for Claude Code - Deploy.md: simplified Co-Authored-By: Claude Sonnet 4.6 --- Deploy.md | 93 +++++++++++++-------------------------------------------------- 1 file changed, 19 insertions(+), 74 deletions(-) (limited to 'Deploy.md') diff --git a/Deploy.md b/Deploy.md index 22e96ee..81f60ac 100644 --- a/Deploy.md +++ b/Deploy.md @@ -1,101 +1,46 @@ # Deploy -Hetzner Cloud + Docker + Caddy (HTTPS) の共有インフラ。 +## 初回サーバーセットアップ -## ディレクトリ構成 +```bash +# 1. Docker + hetzner-infra ブートストラップ +scp git/server-setup.sh root@:~/ +ssh root@ 'bash server-setup.sh' -| ディレクトリ | 管理対象 | -|---|---| -| `caddy/` | リバースプロキシ(Caddyfile, docker-compose.yml, deploy.sh) | -| `git/` | ベアリポジトリ・フック(repos.txt, hooks/\*/post-receive, install.sh) | -| `claude/` | Claude Code セッション(sessions.txt, systemd unit, sync.sh) | +# 2. 最初の push(/app/infra に展開される) +git push origin master -## リバースプロキシ(caddy/) +# 3. 残りのリポジトリ作成・全フックインストール・SSH鍵適用 +ssh root@ 'bash /app/infra/git/install.sh' +``` -git push 時に post-receive フックが `caddy/deploy.sh` を実行する。 +## 通常デプロイ ```bash -git push origin master +git push origin master # Caddy 設定・コンテナ更新 ``` -Caddyfile 変更時も同様。 - -## git リポジトリ管理(git/) - -`git/repos.txt` と `git/hooks/` で全リポジトリのベアリポジトリとフックを管理する。 -git push では**自動展開しない**。変更後は手動で実行する。 +## フック / リポジトリ定義を変更した場合 ```bash git push origin master ssh root@localhost 'bash /app/infra/git/install.sh' ``` -| ファイル | 役割 | -|---|---| -| `git/repos.txt` | `name:work-tree` 形式でリポジトリを定義 | -| `git/hooks//post-receive` | 各リポジトリのフック内容 | -| `git/install.sh` | ベアリポジトリ作成 + フック展開 | - -## Claude Code セッション管理(claude/) - -`claude/sessions.txt` で管理し、手動で同期する。 +## Claude Code セッションを変更した場合 ```bash git push origin master ssh root@localhost 'bash /app/infra/claude/sync.sh' ``` -| ファイル | 役割 | -|---|---| -| `claude/sessions.txt` | `user:repo` 形式でセッションを定義 | -| `claude/systemd/claude-code@.service` | サービステンプレート | -| `claude/sync.sh` | user service を同期 | - -### サービス確認 - -```bash -systemctl --user status 'claude-code@*.service' -tmux ls -``` +## SSH 鍵を追加した場合 -## リポジトリとデプロイ先 +`server/authorized_keys` を編集して push 後に `git/install.sh` を実行。 -| リポジトリ | bare repo | work tree | -|---|---|---| -| hetzner-infra | /var/git/hetzner-infra.git | /app/infra | -| tokyo-livehouse-events | /var/git/tokyo-livehouse-events.git | /app/tokyo-livehouse-events | -| whois-band | /var/git/whois-band.git | /app/whois-band | - -## Docker - -``` -web (external network) - ├── caddy-caddy-1 (80/443) - ├── tokyo-app (golive.yyamashita.com → :3000) - └── whois-app (whoisband.yyamashita.com → :3000) -``` - -- **サーバー**: Hetzner CX22 (Helsinki, Ubuntu 24.04) -- **SSH**: `ssh root@localhost` - -## 新アプリ追加手順 - -1. `git/repos.txt` に `:` を追記 -2. `git/hooks//post-receive` を作成 -3. `caddy/Caddyfile` にホスト追加 -4. `git push origin master` → `ssh root@localhost 'bash /app/infra/git/install.sh'` -5. 新アプリ側: `git remote add hetzner root@localhost:/var/git/.git` → `git push hetzner master` - -## 初回サーバーセットアップ(再構築時) +## サーバー確認 ```bash -# 1. hetzner-infra をブートストラップ -scp git/server-setup.sh root@:~/ -ssh root@ 'bash server-setup.sh' - -# 2. 最初の push(bootstrap hook で /app/infra に展開される) -git push origin master - -# 3. 正式フックをインストール + 他リポジトリ作成 -ssh root@ 'bash /app/infra/git/install.sh' +ssh root@localhost 'docker ps' +ssh root@localhost 'docker logs caddy-caddy-1 -f' ``` -- cgit v1.2.3