Sign inSign up

andreas404/insightd-hub

By andreas404

•Updated 4 months ago

Self-hosted server monitoring hub — dashboard, alerts, insights, digests

Image
0

4.5K

andreas404/insightd-hub repository overview

⁠Insightd Hub

Server awareness without the overhead. Central hub for insightd⁠ — a self-hosted monitoring tool for homelabbers.

Monitors Docker containers, hosts, and HTTP endpoints across multiple servers. Includes a modern React dashboard, smart alerts, weekly digest emails, and webhook notifications.

⁠Quick Start

⁠Standalone (single host, no MQTT needed)
docker run -d \
  --name insightd \
  --restart unless-stopped \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /:/host:ro \
  -v insightd-data:/data \
  -e TZ=UTC \
  andreas404/insightd-hub:latest

Open http://localhost:3000 and follow the setup wizard.

⁠Multi-host (with MQTT + agents)
# docker-compose.yml
services:
  mosquitto:
    image: eclipse-mosquitto:2
    restart: unless-stopped
    ports:
      - "1883:1883"

  hub:
    image: andreas404/insightd-hub:latest
    restart: unless-stopped
    depends_on:
      - mosquitto
    ports:
      - "3000:3000"
    volumes:
      - hub-data:/data
    environment:
      INSIGHTD_MQTT_URL: mqtt://mosquitto:1883
      INSIGHTD_ADMIN_PASSWORD: changeme
      TZ: UTC

volumes:
  hub-data:

Then deploy andreas404/insightd-agent⁠ on each remote host.

⁠Features

  • Dashboard — health scores, availability, unified "Needs Attention" feed
  • Multi-runtime — Docker and Kubernetes/k3s (via the agent's DaemonSet mode)
  • Host grouping — collapsible Hosts page sections by cluster, environment, or location
  • Container monitoring — status, CPU, RAM, restarts, network/block I/O, health checks
  • Host metrics — CPU, memory, load, disk, GPU, temperature (Docker mode); CPU, memory, uptime from kubelet (k8s mode)
  • HTTP endpoint monitoring — uptime tracking, response times
  • Insights engine — time-of-day baselines, anomaly detection, predictive alerts, correlations
  • Real-time alerts — 10 alert types with cooldowns and auto-resolution
  • Webhooks — Slack, Discord, Telegram, ntfy, or generic
  • Weekly digest emails — HTML + plaintext summaries
  • Container actions — start/stop/restart from the UI (opt-in, Docker mode)
  • Stacks — container groups across hosts (auto-detected from Docker Compose, or create your own)
  • Public status page — shareable uptime page at /status (opt-in)
  • API keys — programmatic access with hashed storage

⁠Configuration

All via environment variables. Key ones:

VariableDefaultDescription
INSIGHTD_MQTT_URL—MQTT broker (enables hub mode)
INSIGHTD_ADMIN_PASSWORD—Admin password for web UI
INSIGHTD_ALERTS_ENABLEDfalseEnable real-time alerts
INSIGHTD_STATUS_PAGEfalseEnable public status page
INSIGHTD_SMTP_HOST—SMTP server for emails
INSIGHTD_DIGEST_CRON0 8 * * 1Digest schedule
INSIGHTD_COLLECT_INTERVAL5Collection interval (minutes)
TZUTCTimezone

See .env.example⁠ for the full list (40+ variables).

⁠Volumes

PathPurpose
/dataSQLite database and persistent state
/var/run/docker.sockDocker socket (standalone mode only)
/hostHost filesystem mount (standalone mode only)

⁠Architecture

[Agents] --> MQTT (Mosquitto) --> [Hub] --> SQLite --> React UI + Alerts + Digests
  • Hub mode: connects to MQTT, receives metrics from agents
  • Standalone mode: no MQTT, collects locally (single host)

⁠Resources

  • ~28MB RAM typical usage
  • SQLite storage, no external database
  • Multi-arch: linux/amd64, linux/arm64

Tag summary

Content type

Image

Digest

sha256:f0e3708d8…

Size

73.6 MB

Last updated

4 months ago

docker pull andreas404/insightd-hub