On Debian 13:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
On RHEL 10:
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo -E bash -
sudo dnf install -y nodejs
cd /opt
sudo git clone https://github.com/afaqurk/linux-dash.git
sudo chown -R $USER:$USER /opt/linux-dash
cd /opt/linux-dash
npm install
Copy configuration:
cp config.default.json config.json
nano config.json
Key settings to configure:
{
"port": 8080,
"host": "0.0.0.0",
"useAuth": false,
"username": "admin",
"password": "secure-password",
"delay": 3000,
"plugins": {
"enabled": ["all"]
}
}
sudo tee /etc/systemd/system/linux-dash.service >/dev/null <<'EOF'
[Unit]
Description=Linux-Dash Server Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/linux-dash
ExecStart=/usr/bin/node server.js
Restart=on-failure
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
EOF
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable --now linux-dash
Create Nginx configuration:
sudo tee /etc/nginx/sites-available/linux-dash >/dev/null <<'EOF'
server {
listen 80;
server_name linux-dash.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
EOF
On Debian 13:
sudo ln -s /etc/nginx/sites-available/linux-dash /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
On RHEL 10:
sudo ln -s /etc/nginx/sites-available/linux-dash /etc/nginx/conf.d/linux-dash.conf
sudo nginx -t
sudo systemctl restart nginx
On UFW:
sudo ufw allow 8080/tcp
sudo ufw allow 80/tcp
On firewalld:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Open http://SERVER_IP:8080 or http://linux-dash.example.com to access the dashboard.
Edit config.json:
{
"useAuth": true,
"username": "admin",
"password": "your-secure-password"
}
Restart the service:
sudo systemctl restart linux-dash
Linux-Dash includes modules for:
Enable/disable plugins in config.json:
{
"plugins": {
"enabled": [
"system-info",
"cpu-ram",
"disk",
"network",
"processes"
]
}
}
Edit the frontend files in the app/ directory to customize the layout and appearance.
docker run -d \
--name linux-dash \
--restart unless-stopped \
-p 8080:8080 \
-v /:/host:ro \
afaqurk/linux-dash:latest
sudo journalctl -u linux-dash -f
node --version
npm --version
cd /opt/linux-dash
node server.js
See Linux-Dash Hardening.
Setting up monitoring systems can be complex. We offer consulting services for:
Contact us at office@linux-server-admin.com or visit our contact page.
Prefer automation? See Linux-Dash Ansible Setup for an example playbook.
Prefer containers? See Linux-Dash Docker Setup.
See Linux-Dash Configuration for configuration guidance.
See Linux-Dash Security for hardening guidance.