Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Quickstart

Get freshdock watching a container in about a minute. No config file required — freshdock is driven by container labels and environment variables; a freshdock.toml is only needed later if you want notifications.

1. Install

Pick one (full options in the README):

cargo install freshdock                          # from crates.io
# or
docker pull ghcr.io/turbootzz/freshdock:latest   # container image

2. See what freshdock would do (read-only)

Label a container to opt it in, then run check — it never changes anything:

services:
  web:
    image: nginx:1.27
    labels:
      - "freshdock.enable=true"   # opt in; mode defaults to watch
freshdock check

You’ll get a table of opted-in containers and whether each has an update available. (See the CLI reference for what the status cells mean.)

3. Run the daemon

freshdock is opt-in and defaults enabled containers to watch (notice updates, never restart). Start the scheduler:

docker run -d \
  --name freshdock \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  ghcr.io/turbootzz/freshdock:latest run

This is the minimal-watch.yml example. A read-only socket is enough for watch.

4. Let it actually update something

Switch a container to an updating mode and give the daemon a writable socket:

    labels:
      - "freshdock.enable=true"
      - "freshdock.mode=nightly"   # check at 04:00 daily; recreate if newer
      - "freshdock.notify=true"    # if you've configured a notifier

Updates are health-gated with automatic rollback — a broken new image is reverted, not left running.

Next steps