Install
Install freshdock
Pick the route that fits your setup. All three give you the same single binary. There’s no agent, no database, no runtime to install alongside it.
From crates.io
If you have a Rust toolchain, this builds and installs the latest release straight from crates.io ↗.
$cargo install freshdockContainer image (Recommended)
The recommended route for a homelab. Multi-arch (amd64, arm64, armv7) on GHCR ↗. A read-only socket is enough for watch; give it a writable socket once you switch a container to an updating mode.
$docker run -d --name freshdock --restart unless-stopped \
$ -v /var/run/docker.sock:/var/run/docker.sock \
$ ghcr.io/turbootzz/freshdock:latest run# minimal-watch.yml: opt in, notify only
services:
freshdock:
image: ghcr.io/turbootzz/freshdock:latest
command: ["run"]
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stoppedPrebuilt binary or from source
Static-musl binaries for amd64 / arm64 / armv7 are attached to every GitHub release ↗. Download, chmod +x, drop it on your PATH. Or build it yourself:
$git clone https://github.com/Turbootzz/freshdock
$cd freshdock
$just build # binary at target/release/freshdockFirst run
Look before you leap.
freshdock is opt-in and starts every enabled container in watch. Label a container with freshdock.enable=true, then run the read-only status check. It never pulls, stops, or recreates anything:
$freshdock check Happy with what it shows? Switch a container to freshdock.mode=nightly and start the daemon. The full walkthrough is in the quickstart ↗; socket permissions, systemd, and compatibility live in the deployment guide ↗.