- outlook-auth.js: one-time device-code flow against Microsoft login;
stores the refresh token in the outlook-tokens compose volume
- update-outlook.js: per-minute cron fetching the unread count and the
latest unread messages via Microsoft Graph; caches access tokens and
persists rotated refresh tokens
- Widget is hidden until the mailbox is actually authorized, so it
stays out of sight while (admin) consent is pending
- New external card for Outlook (Office 365) with the official icon
- compose: pass OUTLOOK_CLIENT_ID/OUTLOOK_TENANT/GITEA_TOKEN from .env
- README: Entra ID app registration steps and the tenant-ID hint for
directories not resolvable via the organizations endpoint
- update-data.js: cron job that aggregates Google Calendar ICS feeds
(today + upcoming, node-ical), Netbird reachability, Gitea/GitLab
commit stats and Open WebUI models into data.json
- server.js: small Node proxy behind nginx exposing /api/chat
(Open WebUI completions), /api/gpu-stats and /api/ollama
- gitlab-relay.js: prepared HTTP relay for GitLab over a Netbird VPN
(not wired up yet; the setup key was rejected by vpn.ixsol.at)
- docker-entrypoint.sh: starts updater in the background, API proxy,
cron (15 min refresh) and nginx without blocking startup
- nginx: proxy locations + no-cache for data.json
- compose: TZ, token env wiring from .env, gpu-stats service
(python + rocm-smi with device passthrough)
- dockerignore: keep .env out of the build context