Files & Services
File Inventory on OVH5
| File | Purpose |
|---|---|
/opt/dashboard/server.js |
Node.js HTTP server (127.0.0.1:3580) |
/opt/dashboard/index.html |
Single-page dashboard UI |
/opt/dashboard/.env |
Anthropic Admin API key |
/usr/local/bin/collect-dashboard.sh |
Fast metrics collector (30s) |
/usr/local/bin/collect-dashboard-slow.sh |
Slow metrics collector (5min) |
/etc/systemd/system/dashboard.service |
Node.js server service |
/etc/systemd/system/collect-dashboard.service |
Fast collector oneshot |
/etc/systemd/system/collect-dashboard.timer |
Fast collector timer (30s) |
/etc/systemd/system/collect-dashboard-slow.service |
Slow collector oneshot |
/etc/systemd/system/collect-dashboard-slow.timer |
Slow collector timer (5min) |
/etc/nginx/sites-available/admin-dashboard |
Nginx reverse proxy config |
/etc/ssl/dashboard/cert.pem |
Self-signed SSL cert (10yr) |
/etc/sudoers.d/dashboard |
Sudo rules for ubuntu user |
Systemd Services
Dashboard Server
# dashboard.service
[Service]
User=ubuntu
ExecStart=/usr/bin/node /opt/dashboard/server.js
Restart=always
Fast Collector (30s)
# collect-dashboard.timer
[Timer]
OnBootSec=10
OnUnitActiveSec=30
AccuracySec=1s
Runs collect-dashboard.sh as root. Collects host metrics, per-container state, Claude/tmux status, Docker, SSH sessions. Writes to /tmp/dashboard-status.json.
Slow Collector (5min)
# collect-dashboard-slow.timer
[Timer]
OnBootSec=30
OnUnitActiveSec=300
Runs collect-dashboard-slow.sh as root. Collects disk usage, Claude Code version, token usage from JSONL files, snapshot info. Writes to /tmp/dashboard-status-slow.json.
Nginx Configuration
Reverse proxy on port 443 with self-signed SSL:
server {
listen 443 ssl;
server_name admin.ipnoelp.io;
ssl_certificate /etc/ssl/dashboard/cert.pem;
ssl_certificate_key /etc/ssl/dashboard/key.pem;
location / {
proxy_pass http://127.0.0.1:3580;
}
}
Management Commands
# Check all services
ssh ovh5 "systemctl status dashboard collect-dashboard.timer collect-dashboard-slow.timer"
# Force collector run
ssh ovh5 "sudo /usr/local/bin/collect-dashboard.sh"
ssh ovh5 "sudo /usr/local/bin/collect-dashboard-slow.sh"
# Restart dashboard server
ssh ovh5 "sudo systemctl restart dashboard"
# View logs
ssh ovh5 "journalctl -u dashboard -n 20"
# Deploy updated HTML
scp -i ~/.ssh/ovh5_dev file ubuntu@15.204.90.153:/tmp/file
ssh ovh5 "sudo cp /tmp/file /opt/dashboard/ && sudo chown ubuntu:ubuntu /opt/dashboard/file"