Summary
Add a Dockerfile and docker-compose.yml so users can self-host the authsome daemon with a single command, plus a deployment guide covering common setups.
Motivation
Running authsome locally today requires installing Python, uv, and the package. For teams or servers that want a persistent credential daemon (e.g. backing a CI runner or a shared agent host), a containerised deployment is far easier to manage, upgrade, and monitor.
Proposed Additions
Dockerfile
- Multi-stage build:
uv builder stage → slim runtime image.
- Runs the authsome daemon as a non-root user.
- Exposes port
7998 (daemon HTTP).
- Mounts
~/.authsome (or /data/authsome) as a named volume so credentials survive container restarts.
docker-compose.yml
- Single
authsome service using the above image.
- Named volume for
AUTHSOME_HOME.
restart: unless-stopped.
- Optional
traefik / caddy sidecar snippet for TLS termination (commented out).
Deployment guide (docs/guides/self-hosting.md)
- Quick-start:
docker compose up -d and point AUTHSOME_DAEMON_URL at the container.
- Volume backup and restore instructions.
- Upgrading to a new image version.
- Environment variables reference (
AUTHSOME_HOME, AUTHSOME_LOG_LEVEL, encryption mode, etc.).
Work Items
Summary
Add a
Dockerfileanddocker-compose.ymlso users can self-host the authsome daemon with a single command, plus a deployment guide covering common setups.Motivation
Running authsome locally today requires installing Python, uv, and the package. For teams or servers that want a persistent credential daemon (e.g. backing a CI runner or a shared agent host), a containerised deployment is far easier to manage, upgrade, and monitor.
Proposed Additions
Dockerfileuvbuilder stage → slim runtime image.7998(daemon HTTP).~/.authsome(or/data/authsome) as a named volume so credentials survive container restarts.docker-compose.ymlauthsomeservice using the above image.AUTHSOME_HOME.restart: unless-stopped.traefik/caddysidecar snippet for TLS termination (commented out).Deployment guide (
docs/guides/self-hosting.md)docker compose up -dand pointAUTHSOME_DAEMON_URLat the container.AUTHSOME_HOME,AUTHSOME_LOG_LEVEL, encryption mode, etc.).Work Items
Dockerfile(multi-stage, non-root, uv-based)docker-compose.ymlwith named volume and restart policydocs/guides/self-hosting.mddeployment guide.dockerignoreREADME.mdwith a self-hosting quick-start section