<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hetzner-infra/git/hooks/whois-band/post-receive, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>http://git.yyamashita.com/hetzner-infra/atom/git/hooks/whois-band/post-receive?h=master</id>
<link rel='self' href='http://git.yyamashita.com/hetzner-infra/atom/git/hooks/whois-band/post-receive?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/'/>
<updated>2026-10-31T13:45:58Z</updated>
<entry>
<title>hetzner-admin: stop/start individual services, shown as STOPPED on status page</title>
<updated>2026-10-31T13:45:58Z</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-10-31T13:45:58Z</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=05e1418efa56a773c295a2e072796e220d8d8f51'/>
<id>urn:sha1:05e1418efa56a773c295a2e072796e220d8d8f51</id>
<content type='text'>
- run-command.sh: services / stop &lt;name&gt; / start &lt;name&gt; for app and infra
  stacks (not caddy, hetzner-admin, status). Stopped names go to
  status/stopped.txt (gitignored).
- status: a stopped service that does not respond is STOPPED (gray),
  excluded from uptime and DOWN alerts. If it responds it is UP as usual.
- Infra deploy.sh skips stopped stacks; app repo pushes clear the flag.
- claude-code@.service: Restart=on-failure, and restart-sessions.sh restarts
  one unit at a time, to avoid the tmux "server exited unexpectedly" race.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
Claude-Session: https://claude.ai/code/session_01N5eS3U54gzjRXzm65Np1RS
</content>
</entry>
<entry>
<title>Reorganize repo into caddy/, git/, claude/ directories</title>
<updated>2026-05-17T02:29:27Z</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-05-17T02:29:27Z</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=ef6dbdd2ac273dc4a01c70437ee7984cea9f2a3c'/>
<id>urn:sha1:ef6dbdd2ac273dc4a01c70437ee7984cea9f2a3c</id>
<content type='text'>
- caddy/: Caddyfile, docker-compose.yml, deploy.sh (hook runs this only)
- git/: repos.txt, hooks/*/post-receive, install.sh, server-setup.sh
- claude/: sessions.txt, systemd/claude-code@.service, sync.sh

Post-receive hook is now: checkout + bash caddy/deploy.sh

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
