Added
/selfupdate <version> — pin to a specific release or roll back
Closes #12. Three forms:
/selfupdate # current behaviour — pull whatever tag the container is on (usually :latest)
/selfupdate 1.17.4 # pin to a specific semver tag
/selfupdate previous # auto-detects the version older than the running one by reading the upstream CHANGELOGUseful when a release broke something and you want to stay on a known-good version, or when you want to roll back without remembering which version came before. previous was @famewolf's suggestion.
Input validation refuses non-semver targets (v1.17.4, latest, 1.2, etc.) with a clear example before triggering the helper container — saves you from a mid-restart docker pull failure on a malformed tag.
Docker registry authentication
Closes #18. Bypasses Docker Hub's anonymous 100-pull-per-6h-per-IP rate limit. Three input modes:
# Option 1: existing config.json (best when you already manage credentials)
environment:
- DOCKER_AUTH_CONFIG=/.docker/config.json
volumes:
- /root/.docker/config.json:/.docker/config.json:ro
# Option 2: username + password (simpler if you don't already have a config.json)
environment:
- DOCKER_USERNAME=yourhubuser
- DOCKER_PASSWORD=yourhubpassword
- DOCKER_REGISTRY=ghcr.io # optional, defaults to docker.ioLogin failures are non-blocking: a clear warning is printed and the bot continues with anonymous pulls. Credentials are env-only — never persisted to settings.json so they don't end up on the data volume.
Useful for:
- Single-host setups with 20+ containers + daily update checks
- Multiple Docker hosts behind the same NATted WAN IP
- Pulling private images from Docker Hub, ghcr.io, or quay.io
Polish
- README "What's different" section positions Docksentry vs. Watchtower / Diun and lists the six things that actually distinguish it.
- Docker Hub short-description now mentions Telegram + Web UI + lifecycle commands — auto-syncs on every README push.
docker pull amayer1983/docksentry:latest
docker compose up -d