Skip to content

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 to main.

  • 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.