jhodgkin 294be26500
CI / web (push) Successful in 17s
CI / api (push) Successful in 24s
fix: OIDC callback sent wrong scheme in token exchange redirect_uri
Fastify only sees plain HTTP -- TLS terminates at NPM/Cloudflare
before reaching this process. Building the callback's currentUrl from
req.headers.host with a hardcoded "http://" sent
redirect_uri=http://monitor.jerodrigged.com/... during the token
exchange, which Authentik rejects (logged as generic "invalid_client"
to the client, but its own event log said plainly: "Invalid redirect
URI used by provider"). Fixed by reusing the known-correct
redirectUri's origin and only taking the query string from the actual
request, instead of trying to infer scheme from headers.

Also fixes the Playwright OIDC test's selectors (Authentik's password
field has no <label> association -- placeholder text, not getByLabel).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 22:27:39 -06:00

Homelab Monitor

A single dashboard for the health of everything in the homelab (documented in jhodgkin/homelab): Proxmox host + LXC CPU/mem/disk/pressure, and — as the backlog fills in — SSH-monitored bare-metal boxes, a LAN device inventory, and Zabbix alerts. One login instead of N.

Project status, architecture, and how to resume work: see CLAUDE.md. Roadmap: Gitea issues, milestone v1-dashboard.

Local development

# terminal 1
cd apps/api && npm install && cp ../../.env.example ../../.env  # fill in .env first
npm run dev

# terminal 2
cd apps/web && npm install && npm run dev

Web dev server proxies /api to localhost:3000 (see apps/web/vite.config.ts).

Production deploy

Runs as Docker Compose on CT122 (homelab-monitor, 192.168.1.103):

ssh homelab-monitor
cd /opt/homelab-monitor
git pull
docker compose up -d --build
S
Description
Unified dashboard for monitoring the homelab: server health, resource usage, and LAN device inventory.
Readme 454 KiB
Languages
TypeScript 87.1%
Shell 6.9%
CSS 4.9%
Dockerfile 0.8%
HTML 0.3%