Skip to content

Linux Updates Dashboard

Linux Updates Dashboard is a monitoring tool that displays the update status of Linux systems across your network.

Linux Updates Dashboard

Prepare

Pull the image

podman pull ghcr.io/theduffman85/linux-update-dashboard:latest

Create directories to store variables and persistent container data

mkdir -p $HOME/apps/{variables,container_data}

Create files to store variables and persistent container data

touch $HOME/apps/variables/ludash.env
mkdir -p $HOME/apps/container_data/ludash/data:/data

Edit environment file

Edit the environment file and paste your default values for this service:

nano $HOME/apps/variables/ludash.env

Save the result for LUDASH_ENCRYPTION_KEY

openssl rand -base64 32

Example contents:

LUDASH_DB_PATH=/data/dashboard.db
NODE_ENV=production
LUDASH_BASE_URL=http://ludash.skynet.lan
LUDASH_TRUST_PROXY=true
LUDASH_ENCRYPTION_KEY=change_me_with_random_key

Installation

Create .container in home folder

touch $HOME/.config/containers/systemd/ludash.container

Edit the file and paste this content

# ludash.container
[Unit]
Description=Linux Update Dashboard

[Container]
ContainerName=ludash
HostName=ludash
AutoUpdate=registry
Image=ghcr.io/theduffman85/linux-update-dashboard:latest
Network=skynet.network
EnvironmentFile=%h/apps/variables/ludash.env
Volume=%h/apps/container_data/ludash/data:/data

[Service]
Restart=always
TimeoutStartSec=300

[Install]
WantedBy=default.target
Reload systemd user daemons & start the container.

systemctl --user daemon-reload
systemctl --user start ludash
systemctl --user status ludash

Configuration of Nginx (Reverse Proxy)

Create nginx conf.

touch $HOME/apps/container_data/nginx/ludash.conf

Configuration for nginx conf for port 80.

server {
    listen 80;
    server_name ludash.skynet.lan;

    location / {
        proxy_pass http://ludash:3001/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
        client_max_body_size 50M;
    }
}

Future Enhancement

SSL/HTTPS configuration should be added for production deployments.

Restart Nginx

systemctl --user restart nginx

Usage

Access with url in server_name of nginx configuration file.

e.g http://ludash.skynet.lan

Troubleshooting

Common issues and solutions.

Check Quadlet syntax.

/usr/lib/systemd/system-generators/podman-system-generator

Check service status & logs

systemctl --user status ludash
podman ps
podman logs -f ludash