speedtest-monitor ghcr.io/greite/speedtest-monitor:latest https://ghcr.io/greite/speedtest-monitor bridge sh false https://github.com/Greite/speedtest-monitor/issues https://github.com/Greite/speedtest-monitor Self-hosted internet speed monitor. Runs Cloudflare Speed Test on a configurable schedule, stores every measurement in SQLite, and serves a dashboard with live updates over WebSocket. Includes alerts (webhook, ntfy, Discord, Slack, SMTP), authentication (local accounts and OIDC), and role-based access (admin / viewer). On first boot, set AUTH_SECRET (required) and BETTER_AUTH_URL (required when accessed behind a reverse proxy). Either set SPEEDTEST_ADMIN_EMAIL + SPEEDTEST_ADMIN_PASSWORD to seed the first admin, or visit /setup to create it from the UI. All other variables are optional. Data is persisted to /data (mapped to /mnt/user/appdata/speedtest-monitor by default). Network:Other Tools http://[IP]:[PORT:3000]/ https://raw.githubusercontent.com/Greite/unraid-templates/main/speedtest-monitor/speedtest-monitor.xml https://raw.githubusercontent.com/Greite/speedtest-monitor/main/public/brand/icon-256.png https://raw.githubusercontent.com/Greite/speedtest-monitor/main/docs/screenshots/dashboard.png Self-hosted internet speed monitor with a live dashboard, history charts, alerts, and authentication. Features: - Cloudflare Speed Test (HTTP-only, no browser, no Chromium dependency) - Configurable schedule (1-1440 min), live-editable from the UI - SQLite history with download / upload / latency / jitter / packet loss / bufferbloat - Live updates over WebSocket (path: /ws) - Alerts on degradation and recovery via webhook, ntfy, Discord, Slack, SMTP - Local accounts + optional OIDC SSO (Authelia, Authentik, Keycloak, ...) - admin / viewer roles Setup notes: - AUTH_SECRET is REQUIRED. Generate with: openssl rand -base64 32 - BETTER_AUTH_URL must be set to your public origin when running behind a reverse proxy (e.g. https://speedtest.example.com). Sign-in callbacks and OIDC redirects rely on it. Defaults to http://localhost:PORT, which only works for direct local access. - For the first admin, set SPEEDTEST_ADMIN_EMAIL + SPEEDTEST_ADMIN_PASSWORD (idempotent seed) OR visit /setup on first boot. - If you front this container with a reverse proxy (SWAG, NPM, Caddy, ...), forward the Upgrade header on /ws so the live dashboard works. 3000 /mnt/user/appdata/speedtest-monitor 15 10 8 /data/speedtest.db 3000 587 SSO true