WUDup turns image update notices from What's Up Docker (WUD) into a reviewable Docker Compose update workflow. The recommended deployment is the long-running WebUI container, which provides a local browser dashboard, read-only safety defaults, a pending-update review queue, Doctor checks, run history, logs, diagnostics, and optional scheduled automatic updates.
Project status: Public beta. WUDup is maintainer-tested with Docker Compose, and early users are welcome. Start in read-only mode, try the public demo, and use GitHub Discussions for setup help or feedback.
WUD tells you that an image changed; WUDup queues the update for review before your Compose services change. Check readiness and apply updates manually, or configure policies to apply eligible updates automatically on your schedule. WUDup records each run in History and provides diagnostics when something needs attention.
Try the public, fixture-backed demo.
The WebUI reads available updates from WUD's API over a private Compose network
and queues them on the Pending page. The legacy docker-update-from-wud CLI
still reads a todo file you provide.
WUD detects an image update
-> WUDup queues it on the Pending page
-> review and apply it manually, or let an auto-update policy handle it
-> check the result in History
The WebUI deployment starts read-only. Manual and automatic updates stay
disabled unless WUD_WEB_MUTATIONS_ENABLED=true is set intentionally.
If the wudup CLI is available, generate first-run hardened WebUI config
instead of downloading the env template:
wudup init --profile hardened --stack-root /srv/docker --non-interactiveThat writes a hardened env file and Compose override under
$HOME/.config/wudup/. Use them with the hardened Compose example before
starting the service.
To start without the CLI, download the published hardened WebUI Compose example plus an env template in your deployment directory:
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/magrhino/wudup/main/docs/examples/docker-compose.hardened.yml
curl -fsSLo .env \
https://raw.githubusercontent.com/magrhino/wudup/main/docs/examples/webui.env.exampleReview .env before starting: set HOST_DOCKER_BASE to your Compose stack
root, then keep loopback-only browser access or set WUD_WEB_PUBLIC_ORIGIN for
LAN or reverse-proxy exposure. Start the service, then read the one-time setup
link from the logs:
docker compose up -d
docker compose logs wudupOpen the printed /#/setup?claim=... link, create the first admin username and
a password with at least 12 characters, then sign in at
http://127.0.0.1:7417. The example binds browser access to loopback by
default.
See the WebUI container guide for the full Compose walkthrough, login, admin recovery, LAN or reverse-proxy exposure, SQLite persistence, managed preferences, and mutation mode.
The WebUI container is recommended for new deployments. The command-runner path remains supported when you want a smaller workflow:
| Path | Use when | Docs |
|---|---|---|
| Docker script runner | You want short-lived docker compose run commands for doctor, dry runs, and applies without a persistent WebUI. |
Command runner |
The WebUI/API is the primary supported workflow. The docker-update-from-wud
CLI path is retained as a legacy file-mode convenience for helper-container
operators; API mode and CLI/WebUI feature parity
are not project goals. New review and interactive features should go to the
WebUI/API first. WUD shell callbacks, the host install, WUD script sync, and
TrueNAS status checks were removed; see
Removed features.
| Topic | Where |
|---|---|
| Public WebUI demo | magrhino.github.io/wudup and demo notes |
| Deployment start guide | docs/DEPLOYMENT.md |
| WebUI container guide | docs/wiki/webui-container.md |
| Command runner | docs/COMMAND_RUNNER.md |
| Configuration reference | docs/CONFIGURATION.md |
| Digest verification and digest-pin updates | docs/wiki/digest-verification.md |
| Complete documentation index | docs/README.md |
| Security policy and private vulnerability reporting | SECURITY.md |
| Release notes | CHANGELOG.md |
or
BTC: bc1q3r9g3k8fyzxr29njgfjdqs53z9tuezwuaagx0h
ETH: 0x118c1b3b927b870a0cf0bd692e06cd769e5af6d9

