Skip to content

Comments

feat: add Docker deployment for third-party infrastructure#150

Open
Rau1CS wants to merge 1 commit intoConway-Research:mainfrom
Rau1CS:feat/docker-deployment
Open

feat: add Docker deployment for third-party infrastructure#150
Rau1CS wants to merge 1 commit intoConway-Research:mainfrom
Rau1CS:feat/docker-deployment

Conversation

@Rau1CS
Copy link

@Rau1CS Rau1CS commented Feb 20, 2026

Summary

  • Add Dockerfile with multi-stage build (pnpm + native deps for better-sqlite3, slim runtime with git)
  • Add docker-compose.yml with persistent named volume for ~/.automaton/, TTY for interactive setup wizard, and restart: unless-stopped
  • Add .dockerignore to exclude build artifacts, secrets, and .git/
  • Add Docker Deployment section to README.md
  • Add .claude/ to .gitignore
  • Container runs as non-root automaton user with pre-created .automaton directory for correct volume permissions
  • Graceful shutdown via SIGTERM mapped to the existing handler in index.ts

Enables running the automaton on any VPS or cloud provider (Hetzner, DigitalOcean, Railway, Fly.io, etc.) with three commands:

git clone https://github.com/Conway-Research/automaton.git
cd automaton
docker compose up -d

Image size: 144MB content / 666MB total.

Test plan

  • Docker image builds cleanly (docker compose build)
  • --version and --help work inside container
  • .automaton directory has correct ownership (automaton:automaton)
  • Container runs as non-root user (uid 1001)
  • Volume mount point pre-created with correct permissions
  • TypeScript compiles cleanly

🤖 Generated with Claude Code

Add Dockerfile, docker-compose.yml, and .dockerignore to enable
running the automaton on any server or cloud provider with Docker.

- Multi-stage build: build with pnpm + native deps, slim runtime
- Non-root user with pre-created .automaton dir for volume permissions
- Persistent named volume for wallet, database, config, and skills
- TTY support for interactive setup wizard on first run
- Graceful shutdown via SIGTERM
- Add .claude/ to .gitignore

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant