A self-hosted dashboard for managing and monitoring Linux system updates.
raphaeljaeger/linux-update-dashboard
docker pull raphaeljaeger/linux-update-dashboard:latest
Create a compose.yaml file:
services:
dashboard:
image: raphaeljaeger/linux-update-dashboard:latest
container_name: linux-update-dashboard
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- dashboard_data:/data
environment:
LUDASH_BASE_URL: "http://localhost:8081"
TZ: "Europe/Berlin"
volumes:
dashboard_data:
Start the dashboard:
docker compose up -d
Open the dashboard:
View logs:
docker compose logs -f dashboard
Stop the dashboard:
docker compose down
Check container status:
docker compose ps
| Variable | Description | Example |
|---|---|---|
LUDASH_BASE_URL | Base URL used to access the dashboard | http://localhost:8081 |
TZ | Container timezone | Europe/Berlin |
LUDASH_DEMO_MODE | Enables demo mode with simulated systems | true |
LUDASH_ENCRYPTION_KEY | Optional custom encryption key for stored credentials | ${LUDASH_ENCRYPTION_KEY} |
LUDASH_TRUST_PROXY | Enables trusted reverse-proxy handling | true |
Demo mode is enabled in the example configuration:
LUDASH_DEMO_MODE: "true"
Demo mode provides simulated systems, automatic login, and a demo banner.
For normal operation, disable demo mode:
LUDASH_DEMO_MODE: "false"
Alternatively, remove the environment variable entirely.
The dashboard stores persistent application data in /data.
volumes:
- dashboard_data:/data
The named Docker volume preserves application data when the container is recreated or updated.
If no custom encryption key is configured, the application generates one at:
/data/.encryption_key
Important: Back up the /data volume, including the encryption key. Losing the key may make previously encrypted credentials unrecoverable.
To configure a custom encryption key:
environment:
LUDASH_ENCRYPTION_KEY: "${LUDASH_ENCRYPTION_KEY}"
Set LUDASH_ENCRYPTION_KEY in your environment or .env file. Keep the key secure and consistent across restarts and migrations.
Do not replace an existing encryption key without understanding the consequences for previously encrypted data.
The dashboard can run behind a reverse proxy such as Nginx Proxy Manager, Traefik, or Nginx.
Example configuration:
environment:
LUDASH_BASE_URL: "https://dashboard.example.com"
LUDASH_TRUST_PROXY: "true"
TZ: "Europe/Berlin"
Replace dashboard.example.com with your actual domain and configure HTTPS on your reverse proxy.
Only enable LUDASH_TRUST_PROXY when the application is behind a trusted, correctly configured proxy.
Pull the latest image and recreate the container:
docker compose pull
docker compose up -d
Persistent data remains in the named Docker volume.
docker compose ps
docker compose logs --tail=100 dashboard
docker compose up -d --force-recreate
docker volume ls
Avoid deleting the dashboard_data volume unless you intend to remove the stored application data.
Content type
Image
Digest
sha256:d1da49950…
Size
10.2 MB
Last updated
1 day ago
docker pull raphaeljaeger/linux-update-dashboard