Glance — Setup
Homelab dashboard with custom widgets, RSS feeds, and infrastructure overview. Runs as a Docker container on LXC 119 (infra-apps), behind oauth2-proxy for PocketID SSO. Config is file-driven (
services/glance/glance.yml) — changes are applied by pushing tomain.
Links
- GitHub: https://github.com/glanceapp/glance
- Docs: https://glanceapp.github.io/glance/
Infrastructure
| Host | Internal | URL |
|---|---|---|
| Docker (LXC 119) | 192.168.1.119:8080 (via oauth2-proxy) | https://glance.eva-00.network |
Observability
Logs
Glance logs are collected via Grafana Alloy Docker discovery and shipped to Loki.
| Query | Purpose |
|---|---|
{container="glance"} |
All container output |
{container="glance"} \|= "error" |
Errors only |
{container="oauth2-proxy-glance"} |
oauth2-proxy logs |
Access: Grafana → Explore → Loki → Enter query
Metrics
Glance does not export Prometheus metrics. Use Loki logs to diagnose issues.
IaC
| Artifact | Path |
|---|---|
| Playbook | ansible/playbooks/infra-apps.yml |
| Workflow | .forgejo/workflows/infra-apps.yml |
| Compose | services/glance/docker-compose.yml |
| Config | services/glance/glance.yml |
| Custom CSS | services/glance/custom.css |
| Assets | services/glance/homelab-diagram.svg, mediamanager-logo.png |
Secrets
secret/glance → pocketid_client_id, pocketid_client_secret, cookie_secret,
proxmox_token, pbs_token, databasement_token
The Gluetun control server password is fetched from secret/gluetun/protonvpn and base64-encoded as GLUETUN_API_AUTH in the .env.
Authentication
Glance runs behind oauth2-proxy with PocketID SSO. No internal auth.
Custom widgets
Glance uses custom-api widgets to pull data from homelab APIs (Proxmox, PBS, Databasement, Gluetun). API tokens are injected via environment variables from Vault. Widget responses are cached per the cache: setting in glance.yml.