<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hetzner-infra/git/hooks/microblog/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/microblog/post-receive?h=master</id>
<link rel='self' href='http://git.yyamashita.com/hetzner-infra/atom/git/hooks/microblog/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>Add microblog service</title>
<updated>2026-06-19T06:19:00Z</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-19T06:19:00Z</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=6e41cc1b7a6769608cacb456bae21aa0d7704f59'/>
<id>urn:sha1:6e41cc1b7a6769608cacb456bae21aa0d7704f59</id>
<content type='text'>
- Caddy: route blog.yyamashita.com → microblog-app:3000
- git: add microblog post-receive hook and update work tree path to /app/microblog
- DNS: add blog subdomain to Route 53 WEB_SUBDOMAINS

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