< Back to Home

Home Server Documentation

Local network management dashboard running on beckwith-home

Overview

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.

Architecture

File Locations

FileDescription
/home/beckwith/homeserver/app.pyFlask application
/home/beckwith/homeserver/templates/index.htmlDashboard UI
/home/beckwith/homeserver/templates/docs.htmlThis page
/home/beckwith/homeserver/config.jsonDevice config (WoL machines)
/home/beckwith/homeserver/venv/Python virtual environment
/etc/systemd/system/homeserver.serviceSystemd service (auto-starts on boot)

API Endpoints

MethodPathDescription
GET/Dashboard UI
GET/docsThis documentation page
GET/api/systemSystem stats (CPU, memory, disk, temps)
POST/api/wolSend WoL magic packet. Body: {"mac", "interface"}
POST/api/shutdownSSH shutdown a machine. Body: {"ip", "user"}
POST/api/pingCheck if host is up. Body: {"ip"}
POST/api/wol/devicesAdd a device. Body: {"name", "mac", "ip", "interface"}
DELETE/api/wol/devices/<idx>Remove a device by index
GET/api/servicesList running systemd services

Python Dependencies

Install with: venv/bin/pip install flask psutil

Service Management

# 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

WoL Setup Notes

SSH Key Setup

DNS Setup

Future Ideas / TODOs