feat: initial SleepGuard implementation

Wake-on-demand proxy + agent system with SvelteKit dashboard.
Monorepo: shared types, proxy (Hono + http-proxy), agent (monitors + locks), web (SvelteKit SPA).

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Vadim Sobinin
2026-02-10 13:46:51 +03:00
commit 852e01df39
64 changed files with 4864 additions and 0 deletions

36
.env.example Normal file
View File

@@ -0,0 +1,36 @@
# === Proxy (n150) ===
# Agent connection
AGENT_URL=http://192.168.1.50:48527
AGENT_SECRET=change-me-to-a-strong-secret
# UpSnap
UPSNAP_URL=http://localhost:8090
UPSNAP_USERNAME=admin
UPSNAP_PASSWORD=admin
UPSNAP_DEVICE_ID=your-device-id
# Proxy settings
PROXY_PORT=47391
IDLE_TIMEOUT_MINUTES=15
HEALTH_CHECK_INTERVAL_SECONDS=10
WAKING_TIMEOUT_SECONDS=120
# Services to proxy (JSON array)
# Each: { "name": "Scriberr", "host": "scriberr.local", "target": "http://192.168.1.50:23636" }
SERVICES='[{"name":"Scriberr","host":"scriberr.local","target":"http://192.168.1.50:23636"}]'
# === Agent (PC) ===
AGENT_PORT=48527
AGENT_SECRET=change-me-to-a-strong-secret
# Thresholds
CPU_THRESHOLD_PERCENT=15
GPU_THRESHOLD_PERCENT=10
RAM_THRESHOLD_PERCENT=50
DISK_IO_ACTIVE_THRESHOLD=true
# Process watchlist (comma-separated)
WATCHED_PROCESSES=hashcat,ffmpeg,whisper,python3,ollama
# Shutdown command
SHUTDOWN_COMMAND=systemctl poweroff