An init system for your container. One binary, one YAML file.
Docker restarts a crashed container, but nothing standard watches the processes inside one. section3 is a service supervisor small enough to be a container's entrypoint: it starts your processes, restarts what crashes with exponential backoff, and rotates the logs without needing the services to cooperate. One static Go binary, zero runtime dependencies, MIT-licensed.
curl -fsSL https://signalshell.com/install-section3 | sh
Source
Go, YAML, MITUnder a thousand lines of Go at github.com/tachikoma-ghost/section3. Releases are minisign-signed, and section3 self update verifies the signature before replacing itself.
The write-up
Design NotesWhy not supervisord, s6, or pm2; how log rotation works when the service never holds the log file; and the crash-backoff bug where the documentation turned out to be the spec. In section3: An init system for an agent's container.
In production
Docker, Dev ContainerBuilt as the init system for Tachikoma's container. The agent's terminal, memory indexer, Telegram bot, and voice pipeline all run as section3 services — and the agent operates the supervisor itself.
Built by Martin Sigloch with Tachikoma.