A Docker container update manager for self-hosters.
Monitor your compose stacks, check for newer versions, and manage updates through a web UI.
services:
docksmith:
image: ghcr.io/chrisae9/docksmith:latest
container_name: docksmith
restart: unless-stopped
ports:
- "8080:8080"
volumes:
# Required: Docker socket for container management
- /var/run/docker.sock:/var/run/docker.sock
# Required: Persistent storage for update history
- ./data:/data
# Optional: Docker config for registry authentication (GHCR, private registries)
- ~/.docker/config.json:/root/.docker/config.json:ro
# Your compose directories (add as many as needed)
# Use same path inside/outside so env_file references work
- /home/user/stacks:/home/user/stacks:rwI was using What's Up Docker with most of my containers running on latest tags and felt like I didn't have much control over updates. I wanted something focused on semantic version detection and management for docker compose stacks.
A few specific problems I kept running into:
-
No container dependencies - Updating certain containers (like a VPN) would break others that depended on them. I'd have to SSH into my server and manually restart things. Docksmith handles this with the
restart-afterlabel. -
No way to block risky updates - I could never tell if someone was watching Plex before an update kicked off. Now I use pre-update checks to block updates when there are active streams.
-
Wanted VS Code Docker on mobile - I love the VS Code Docker extension for managing containers, but wanted that same control from my phone. The Explorer tab is basically that.
Updates - Checks Docker Hub, GHCR, and private registries for newer image versions. Update containers individually or in batches. Rollback if something breaks.
Version Control - Pin to major/minor versions, filter tags with regex, or set version bounds. Useful for databases and other apps where you don't want surprise major upgrades.
Pre-Update Checks - Run scripts before updates. Block an update if Plex has active streams, backup a database first, or check disk space.
Explorer - Browse and manage containers, images, networks, and volumes. Stop, start, restart, remove containers. Prune unused resources.
Dependency Handling - Automatically restart containers that depend on updated services (like apps using a VPN container). See restart-after label.
History - Track all updates, rollbacks, and operations. See what changed and when.
| Variable | Default | Description |
|---|---|---|
CHECK_INTERVAL |
5m |
How often to check for updates |
CACHE_TTL |
1h |
Registry response cache duration |
DB_PATH |
/data/docksmith.db |
Database location |
LOG_LEVEL |
info |
Log level (debug, info, warn, error) |
GITHUB_TOKEN |
- | For private GHCR images |
Mount your Docker config to authenticate with registries:
volumes:
- ~/.docker/config.json:/root/.docker/config.json:roThis enables access to private images and avoids Docker Hub rate limits. See registry setup for details.
Docksmith requires access to the Docker socket, which grants full control over your containers. There is no built-in authentication - do not expose it to the internet.
Run it on a trusted network or behind Tailscale.
- Labels - Version constraints, pre-update checks, auto-rollback
- Scripts - Pre-update script examples
- Registries - Docker Hub, GHCR, private registries
- Integrations - Homepage widget, Tailscale, Traefik
- API - REST API reference
