Skip to content

AlexBraguta/dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dashboard

A single-page, zero-dependency server dashboard for a Linux host.

Monitors CPU / memory / disk / network, Docker containers, systemd services, and journal logs — with an RSS news panel and a Binance Futures bot tracker. Ships with mock data so it runs out of the box; plug in your own Binance API key to see live positions.

Dashboard screenshot 1 Dashboard screenshot 2
Dashboard screenshot 3 Dashboard screenshot 4

Features

  • Server stats — CPU, memory, disk, network rate, uptime, load, process count
  • Docker — live container list with CPU / memory stats (auto-discovered via docker ps)
  • Systemd services — auto-discovered running services with start/stop/restart controls
  • Crypto bots — mock by default, live Binance Futures positions with .env
  • Social feed — aggregated RSS from configurable sources
  • Server logs — parsed journalctl with level detection
  • 7 themes — Catppuccin, Dracula, Tokyo Night, Nord, Ristretto, and more

Stack

  • Node.js HTTP server (api.js) — uses only the standard library, no npm install
  • Single-file frontend (index.html) — no framework, no build step
  • Runs on port 3333

Quick start

git clone https://github.com/AlexBraguta/dashboard.git
cd dashboard
node api.js

Open http://localhost:3333.

That's it. No dependencies, no build.

Live Binance data (optional)

The Crypto Bots panel shows mock data by default. To connect it to your own Binance Futures account:

cp .env.example .env
# edit .env and paste your BINANCE_API_KEY + BINANCE_API_SECRET

Use a read-only API key (enable Reading only — never enable trading or withdrawals). Restart the server; the startup log will report crypto mode: LIVE.

Running as a service

Example systemd unit (/etc/systemd/system/dashboard.service):

[Unit]
Description=Dashboard
After=network.target

[Service]
ExecStart=/usr/bin/node /opt/dashboard/api.js
WorkingDirectory=/opt/dashboard
Restart=always
User=root

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now dashboard

Expose it on your own subdomain

To reach the dashboard at dash.yourdomain.com instead of server-ip:3333:

1. DNS — Add an A record at your domain registrar pointing your chosen subdomain to your server's public IP:

Type   Name   Value
A      dash   YOUR.SERVER.IP.HERE

2. Nginx reverse proxy — Create /etc/nginx/sites-available/dashboard:

server {
    listen 80;
    server_name dash.yourdomain.com;

    # Basic auth — the app itself has no login
    auth_basic "Dashboard";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:3333;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Enable it and create a password:

sudo ln -s /etc/nginx/sites-available/dashboard /etc/nginx/sites-enabled/
sudo apt install apache2-utils            # for htpasswd
sudo htpasswd -c /etc/nginx/.htpasswd youruser
sudo nginx -t && sudo systemctl reload nginx

3. HTTPS (recommended) — Use Certbot to issue a free Let's Encrypt certificate:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d dash.yourdomain.com

Certbot will edit the Nginx config in place to add TLS and auto-renew.

The app has no built-in authentication. Always put it behind basic auth, an SSO proxy, or restrict it to localhost / a VPN before exposing it to the public internet.

Configuration

  • RSS feeds — edit the RSS_FEEDS array in api.js
  • Quick-action links — edit the links block near the bottom of index.html
  • Themes — swap via the palette icon in the sidebar (persisted in localStorage)
  • Port — change the PORT constant at the top of api.js

Requirements

  • Node.js 18+
  • Linux (reads /proc/* for stats; Docker / journalctl are optional — panels degrade gracefully if absent)

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors