Skip to content

Docker container auto-updater · free · open source · one 10 MB binary

Your containers update themselves. Safely.

freshdock pulls new images on your schedule and only keeps them if the healthcheck passes. If not, the old container is back in seconds. A maintained successor to Watchtower.

homelab ~ freshdock checkv1.5.0
$ freshdock check
  • traefiktraefik:v3.1live up to date
  • nextcloudnextcloud:29nightly updated 04:00, healthy
  • jellyfinjellyfin/jellyfin:10.9nightly rolled back, healthcheck failed
  • postgrespostgres:16watch update available (16.4)
  • gluetunqmcgaw/gluetun:v3weekly up to date
  • vaultwardenvaultwarden/server:1.32nightly up to date

Broken updates roll back

A new image only stays if its healthcheck passes. Otherwise the previous container is restored and you get a message.

Opt-in by default

Nothing is touched until you label it. New labels start in watch mode: notify, never restart.

Understands Compose

A project updates as one unit. Migrations run first, services follow in depends_on order.

Drop-in for Watchtower

Reads your existing Watchtower labels. Works on Docker Engine 29, which Watchtower does not.

Set it up in a minute

1

Label a container

docker-compose.yml
labels:
  - "freshdock.enable=true"
  - "freshdock.mode=nightly"
2

Run freshdock next to it

shell
$docker run -d --name freshdock \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/turbootzz/freshdock run
3

Sleep

It checks at 04:00. Good images stay, bad ones are rolled back. Discord, Telegram, webhook or mail tells you what happened.

One mode per container

Your proxy can be live while the database is monthly. Set it with one label. Scheduling docs

live
Update on every new digest.
nightly · weekly · monthly
On a schedule, 04:00 by default. Or any cron.
watch
Notify only. Never restarts. The default.
off
Leave this one alone.

Coming from Watchtower? Keep your labels.

Watchtower was archived in December 2025. Swap the container, everything else stays. Full comparison or the migration guide.

Watchtower compared with freshdock
CapabilityWatchtowerfreshdock
Failed updateContainer stays downRolled back automatically
Docker Engine 29+Not supported (API 1.25)Supported, API negotiated
Default behaviourUpdates everythingOpt-in, notify first
Image size~100 MBUnder 10 MB
MaintainedArchivedYes

Install

Docker
amd64, arm64, armv7
Cargo
From crates.io
Binary
Static builds on every GitHub release, with checksums.
No runtime, no dependencies

Read-only first: freshdock check changes nothing. Full install guide