Skip to content

Repository files navigation

OfficeLab

Monitoring hub til Office Cluster-labbet: agents på hver Ubuntu-host pusher metrics til en central hub (Postgres + API + dashboard + Discord).

Stack

ServiceRolle
dbPostgres 16
apiFastAPI ingest, history, checks, alerts
discord-bot/status, /server + alert fan-out
frontendVite/React dashboard (nginx)
agent/Metrics + Docker/temp/GPU agent (pr. host)

Hurtig start (hub)

cp .env.example .env
# ret AGENT_API_KEY, POSTGRES_PASSWORD, evt. Discord + SERVICE_CHECKS
docker compose up -d --build

Agent på hver server

Anbefalet: image + auto-update (ingen SSH ved opdateringer)

CI pusher ghcr.io/mercantech/officelab-agent:latest ved ændringer i agent/main.

Engang-setup pr. host:

# 1) Log ind på GHCR (kun hvis pakken er privat)echo YOUR_GHCR_TOKEN | docker login ghcr.io -u YOUR_GITHUB_USER --password-stdin
# 2) Hent compose (eller kopiér agent/-mappen én gang)cd /opt/officelab-agent # eller hvor compose ligger
cp .env.example .env
# ret HUB_URL, AGENT_API_KEY, SERVER_ID, DISPLAY_NAME# ved privat pakke: GHCR_USER + GHCR_TOKEN i .env# 3) Start agent + Watchtower
docker compose --profile autoupdate up -d

Herefter: merge til main → GitHub Actions bygger image → Watchtower opdaterer agenten automatisk (~5 min).

Gør pakken public under GitHub → Packages → officelab-agent (nemmest), eller brug GHCR_USER/GHCR_TOKEN med read:packages.

Manuel / lokal build

cd agent
cp .env.example .env
docker compose up -d --build

Agenten monterer /proc, /sys, / (ro) og Docker-socket. GPU kræver nvidia-smi på hosten. Valgfri systemd: sudo ./install-systemd.sh.

Features

  • CPU/RAM/disk, hardware-model, uptime
  • Docker-containere, temperaturer, GPU, net pr. interface
  • Service checks via SERVICE_CHECKS env (read-only på sitet)
  • Alert-historik (offline/threshold) + Discord fan-out
  • Historik op til 30 dage + downtime + sammenlign-side
SERVICE_CHECKS=office|https://office.mercantec.tech/health|60,econ|https://econ.mercantec.tech/health|60METRIC_RETENTION_DAYS=30

Discord

DISCORD_ENABLED=trueDISCORD_BOT_TOKEN=...DISCORD_GUILD_ID=...DISCORD_ALERT_CHANNEL_ID=...

Dokploy + Traefik

Brug docker-compose.dokploy.yml.

APP_DOMAIN=office.mercantec.techCORS_ORIGINS=https://office.mercantec.techAGENT_API_KEY=...POSTGRES_PASSWORD=...SERVICE_CHECKS=office|https://office.mercantec.tech/health|60

API

  • POST /api/ingest
  • GET /api/servers · /api/servers/:id · /api/servers/:id/history?range=1h|6h|24h|7d|30d
  • GET /api/compare?ids=a,b&range=24h
  • GET /api/alerts · GET /api/checks · GET /api/health

About

Office Cluster lab!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages