From 33b25f148457588ef99deac701a8f6e98410c8d9 Mon Sep 17 00:00:00 2001 From: yyamashita Date: Thu, 7 May 2026 23:33:24 +0900 Subject: Add Deploy.md --- Deploy.md | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Deploy.md (limited to 'Deploy.md') diff --git a/Deploy.md b/Deploy.md new file mode 100644 index 0000000..4b02e06 --- /dev/null +++ b/Deploy.md @@ -0,0 +1,74 @@ +# Deploy + +Hetzner Cloud + Docker + Caddy (HTTPS) の構成。 + +## 構成 + +``` +git push hetzner master + └→ /var/git/tokyo-livehouse-events.git/hooks/post-receive + └→ git checkout -f → /app + └→ docker compose up -d --build + ├── app (React Router SSR + Playwright, port 3000) + └── caddy (HTTPS 自動証明書, golive.yyamashita.com) +``` + +- **サーバー**: Hetzner CX22 (Helsinki, Ubuntu 24.04) +- **ドメイン**: golive.yyamashita.com +- **DB**: SQLite (`/app/data/events.db`、ボリュームで永続化) + +## デプロイ + +```bash +git push hetzner master +``` + +## SSH 接続 + +```bash +ssh golive # ~/.ssh/config に Host golive 設定済み +``` + +## サーバー操作 + +```bash +# ログ確認 +ssh golive 'docker compose -f /app/docker-compose.yml logs -f' + +# コンテナ状態確認 +ssh golive 'docker compose -f /app/docker-compose.yml ps' + +# 手動再起動 +ssh golive 'cd /app && docker compose restart' + +# スクレイピング手動実行 +ssh golive 'curl -s -X POST http://localhost:3000/api/scrape' +``` + +## スクレイピング定期実行(cron) + +```bash +ssh golive 'crontab -e' +# 以下を追加(毎朝5時): +# 0 5 * * * curl -s -X POST http://localhost:3000/api/scrape +``` + +## 初回サーバーセットアップ手順(再構築時) + +```bash +# 1. SSH 鍵を Hetzner コンソールに登録(~/.ssh/hetzner_golive.pub) +# 2. サーバー作成後、セットアップスクリプトを実行 +scp scripts/server-setup.sh golive:~/ +ssh golive 'bash server-setup.sh' + +# 3. git remote を追加して push +git remote add hetzner golive:/var/git/tokyo-livehouse-events.git +git push hetzner master +``` + +## ローカル開発 + +```bash +npm run dev # http://localhost:5173 +npm run scrape # スクレイピング実行 +``` -- cgit v1.2.3