Files
dashboard/docker-entrypoint.sh
T
fegger 55e871bd4f Add backend data aggregator and API proxy services
- 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
2026-09-04 14:07:01 +02:00

17 lines
614 B
Bash

#!/bin/sh
# Dashboard container entrypoint.
# Starts everything in the background and nginx in the foreground, so a slow
# or unreachable upstream (git hosts, netbird, calendar) never blocks the
# web server from coming up.
# Start the small API proxy (for Open WebUI chat) in the background.
node /opt/dashboard/server.js &
# Start cron daemon in the background to refresh data every 15 minutes.
/usr/sbin/crond -f -l 8 &
# Run the initial data fetch in the background; cron keeps it fresh after that.
( cd /opt/dashboard && node update-data.js ) &
# Start nginx in the foreground.
exec nginx -g "daemon off;"