55e871bd4f
- 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
17 lines
614 B
Bash
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;" |