summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryyamashita <yyamashita@mosquit.one>2026-05-08 23:54:27 +0900
committeryyamashita <yyamashita@mosquit.one>2026-05-08 23:54:27 +0900
commit693feeb48b43e9cc1df343c893f40844228aa881 (patch)
treed38c0d00b1ef9e0e626bfec383bcebe0455d0de1
parent747fb53fcb5e87e7cefd9c0c86fb0cf98e1b872c (diff)
Add Deploy.md: infra overview and operations guide
-rw-r--r--Deploy.md73
1 files changed, 73 insertions, 0 deletions
diff --git a/Deploy.md b/Deploy.md
new file mode 100644
index 0000000..0ba98a2
--- /dev/null
+++ b/Deploy.md
@@ -0,0 +1,73 @@
+# Deploy
+
+Hetzner Cloud + Docker + Caddy (HTTPS) の共有インフラ。
+複数アプリを同一ホストで運用し、Caddy がホスト名でルーティングする。
+
+## 構成
+
+```
+git push hetzner master (各リポジトリ)
+ └→ /var/git/<repo>.git/hooks/post-receive
+ └→ git checkout -f → /app/<name>/
+ └→ docker compose up -d (--build)
+
+Docker network: web (external, 全アプリ共有)
+ ├── infra-caddy-1 (80/443, HTTPS 自動証明書)
+ ├── tokyo-app (golive.yyamashita.com → :3000)
+ └── whois-app (whois.band → :3000)
+```
+
+- **サーバー**: Hetzner CX22 (Helsinki, Ubuntu 24.04)
+- **SSH**: `ssh golive`
+
+## リポジトリとデプロイ先
+
+| リポジトリ | bare repo | work tree |
+|---|---|---|
+| hetzner-infra | /var/git/hetzner-infra.git | /app/infra |
+| tokyo-livehouse-events | /var/git/tokyo-livehouse-events.git | /app |
+| whois-band | /var/git/whois-band.git | /app/whois-band |
+
+## デプロイ
+
+```bash
+git push hetzner master
+```
+
+Caddyfile 変更時も同様(push 後に自動 reload)。
+
+## サーバー操作
+
+```bash
+# 全コンテナ確認
+ssh golive 'docker ps'
+
+# Caddy ログ
+ssh golive 'docker logs infra-caddy-1 -f'
+
+# tokyo ログ
+ssh golive 'docker logs tokyo-app -f'
+
+# whois ログ
+ssh golive 'docker logs whois-app -f'
+```
+
+## 新アプリ追加手順
+
+1. `Caddyfile` にホスト追加 → `git push hetzner master`
+2. 新アプリ側: `docker-compose.yml` で `external: true` の `web` network を使用、`container_name` を設定
+3. 新アプリの bare repo をサーバに作成(`scripts/server-setup.sh` 参照)
+4. `git remote add hetzner golive:/var/git/<name>.git`
+5. `git push hetzner master`
+
+## 初回サーバーセットアップ(再構築時)
+
+```bash
+# 1. hetzner-infra を最初にセットアップ(Docker + web network 作成)
+scp scripts/server-setup.sh golive:~/
+ssh golive 'bash server-setup.sh'
+git push hetzner master
+
+# 2. 各アプリをセットアップ
+# (各リポジトリの scripts/server-setup.sh を参照)
+```