Repository navigation
Installation
DockerUpdates runs as a container that talks to the Docker daemon of the host through its socket.
- A Linux server with Docker (Docker Desktop on Windows / macOS also works, without the LAN network feature)
-
amd64orarm64 - Port
3000free on the server (or any other port you map)
mkdir -p ~/dockerupdates/data && cd ~/dockerupdates
cat > .env <<EOF2
ADMIN_USER=admin
ADMIN_PASSWORD=$(openssl rand -base64 18)
SESSION_SECRET=$(openssl rand -hex 32)
EOF2
chmod 600 .env
cat .env # note your generated passwordOnly ADMIN_USER and ADMIN_PASSWORD are required. Every other variable is optional: see Configuration.
docker run -d --name dockerupdates --restart unless-stopped \
--env-file ~/dockerupdates/.env \
-p 3000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.docker/config.json:/root/.docker/config.json:ro \
-v ~/dockerupdates/data:/app/backend/data \
--security-opt no-new-privileges \
ghcr.io/pixlgalaxy/dockerupdates:latestservices:
dockerupdates:
image: ghcr.io/pixlgalaxy/dockerupdates:latest
container_name: dockerupdates
restart: unless-stopped
env_file: .env
ports:
- "3000:3000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ~/.docker/config.json:/root/.docker/config.json:ro # optional: private registries
- ./data:/app/backend/data # settings, sessions, history, templates, icons
security_opt:
- no-new-privileges:truedocker compose up -dAdd a container from the Docker tab with:
| Field | Value |
|---|---|
| Repository | ghcr.io/pixlgalaxy/dockerupdates:latest |
| Network type | bridge |
| Port | Container 3000 → Host 3000
|
| Path |
/var/run/docker.sock → /var/run/docker.sock
|
| Path |
/mnt/user/appdata/dockerupdates → /app/backend/data
|
| Variables |
ADMIN_USER, ADMIN_PASSWORD, SESSION_SECRET (and any other from Configuration) |
| Extra Parameters | --security-opt no-new-privileges |
| Mount | Required | Purpose |
|---|---|---|
/var/run/docker.sock |
Yes | Lets DockerUpdates control Docker. This is root-level access to the host: see Security |
/app/backend/data |
Strongly recommended | Settings, notification channels, update history, templates, icons, login sessions, the login changed in the UI. Without it, all of that is lost every time the container is recreated |
~/.docker/config.json (read-only) |
Optional | Reuses your docker login for private registries. Remove the line if the file does not exist |
Open http://<server-ip>:3000 and sign in with ADMIN_USER / ADMIN_PASSWORD.
Recommended first steps:
- Settings > Account: change the password if you used a simple one.
- Settings > Server & access: check that the Host IP is right, and set a session secret if you did not.
- Settings > Notifications: connect Discord, Telegram, ntfy or a webhook.
- Auto-Update: choose when containers are updated.
To publish it outside your LAN, read Reverse proxy first.
-
From the app: click Update on the DockerUpdates row (or Update all). A short-lived helper container recreates it with the new image and the page reloads by itself.
-
Manually:
docker compose pull && docker compose up -d # or docker pull ghcr.io/pixlgalaxy/dockerupdates:latest docker rm -f dockerupdates # then run the same `docker run` command again
Your data volume keeps everything across updates.
docker rm -f dockerupdates
rm -rf ~/dockerupdates # only if you also want to delete settings and historyContainers created or edited with DockerUpdates are normal Docker containers and keep running.
DockerUpdates · MIT License · Found a problem in these docs? Open an issue
Getting started
Features
Operations