diff options
| author | yyamashita <yyamashita@mosquit.one> | 2026-05-16 12:26:09 +0900 |
|---|---|---|
| committer | yyamashita <yyamashita@mosquit.one> | 2026-05-16 12:26:09 +0900 |
| commit | 6dfae0c390ca2a0dc3d6dabc1a52263bfec9b6a7 (patch) | |
| tree | a8522d46edbac3cd76508f32d8e05c0a18df647b /scripts/claude-daemon-setup.sh | |
| parent | 3a005f23696ad17d02582ec0e2d972620b999ab1 (diff) | |
Add Claude Code daemon setup for remote sessions per repo
systemd サービス (claude-infra/tokyo/whoisband) を生成・有効化するセットアップスクリプトを追加。
claude remote-control で各リポジトリの常駐セッションを起動し、claude.ai/code から接続できる。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'scripts/claude-daemon-setup.sh')
| -rw-r--r-- | scripts/claude-daemon-setup.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/claude-daemon-setup.sh b/scripts/claude-daemon-setup.sh new file mode 100644 index 0000000..35f5416 --- /dev/null +++ b/scripts/claude-daemon-setup.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# Set up Claude Code remote-control daemons for each app repo (run as root on Hetzner VPS). +set -e + +# Install Claude Code if not present +if ! command -v claude &>/dev/null; then + npm install -g @anthropic-ai/claude-code +fi + +declare -A REPOS=( + ["infra"]="/app/infra" + ["tokyo"]="/app" + ["whoisband"]="/app/whois-band" +) + +for NAME in "${!REPOS[@]}"; do + DIR="${REPOS[$NAME]}" + SERVICE="claude-${NAME}.service" + + cat > "/etc/systemd/system/${SERVICE}" << EOF +[Unit] +Description=Claude Code Remote Session - ${NAME} +After=network.target + +[Service] +Type=simple +User=root +WorkingDirectory=${DIR} +ExecStart=/usr/bin/env claude remote-control --name "${NAME}" --spawn worktree +Restart=always +RestartSec=15 +StandardOutput=journal +StandardError=journal + +[Install] +WantedBy=multi-user.target +EOF + + systemctl daemon-reload + systemctl enable "${SERVICE}" + systemctl restart "${SERVICE}" + echo "Started: ${SERVICE} (WorkingDirectory: ${DIR})" +done + +echo "" +echo "All Claude Code daemons running. Connect via https://claude.ai/code" +echo "" +echo "Useful commands:" +echo " systemctl status claude-infra" +echo " systemctl status claude-tokyo" +echo " systemctl status claude-whoisband" +echo " journalctl -u claude-tokyo -f" |
