Local network management dashboard running on beckwith-home
A Flask web app running on beckwith-home (192.168.5.58) that provides system monitoring and machine management for the local network. Accessible at http://home:8080.
home to 192.168.5.58| File | Description |
|---|---|
/home/beckwith/homeserver/app.py | Flask application |
/home/beckwith/homeserver/templates/index.html | Dashboard UI |
/home/beckwith/homeserver/templates/docs.html | This page |
/home/beckwith/homeserver/config.json | Device config (WoL machines) |
/home/beckwith/homeserver/venv/ | Python virtual environment |
/etc/systemd/system/homeserver.service | Systemd service (auto-starts on boot) |
| Method | Path | Description |
|---|---|---|
| GET | / | Dashboard UI |
| GET | /docs | This documentation page |
| GET | /api/system | System stats (CPU, memory, disk, temps) |
| POST | /api/wol | Send WoL magic packet. Body: {"mac", "interface"} |
| POST | /api/shutdown | SSH shutdown a machine. Body: {"ip", "user"} |
| POST | /api/ping | Check if host is up. Body: {"ip"} |
| POST | /api/wol/devices | Add a device. Body: {"name", "mac", "ip", "interface"} |
| DELETE | /api/wol/devices/<idx> | Remove a device by index |
| GET | /api/services | List running systemd services |
flask — web frameworkpsutil — system monitoringwakeonlan — installed but not used (custom raw socket WoL instead)Install with: venv/bin/pip install flask psutil
# Check status
sudo systemctl status homeserver
# Restart after code changes
sudo systemctl restart homeserver
# View logs
journalctl -u homeserver -f
# Stop
sudo systemctl stop homeserver
SO_BINDTODEVICE on the specified interface30:9c:23:85:48:da (enp25s0)wol-enable.service) that runs ethtool -s enp25s0 wol g on boot/etc/sudoers.d/shutdown-nopasswd on beckwith-ubuntu~/.ssh/id_ed25519home → 192.168.5.58/api/services endpoint exists but has no UI yet/api/system to update CPU/memory without page reload