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
This commit is contained in:
Generated
+59
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"name": "dashboard-calendar-updater",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dashboard-calendar-updater",
|
||||
"version": "1.0.0",
|
||||
"dependencies": {
|
||||
"node-ical": "^0.27.1"
|
||||
}
|
||||
},
|
||||
"node_modules/node-ical": {
|
||||
"version": "0.27.1",
|
||||
"resolved": "https://registry.npmjs.org/node-ical/-/node-ical-0.27.1.tgz",
|
||||
"integrity": "sha512-5fiKuh/h2HrWKzFt20LtRQdjtjdGfijGfDnCfdAEc++SFX9gA6sa7xwj7/BJmRfWtW/NJWBenN4tOJhg0vM3pg==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"rrule-temporal": "^2.0.0",
|
||||
"temporal-polyfill": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22"
|
||||
}
|
||||
},
|
||||
"node_modules/rrule-temporal": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/rrule-temporal/-/rrule-temporal-2.2.3.tgz",
|
||||
"integrity": "sha512-FAhonFfd9UUy6VI9kjzlbDPMjp/lgEGLH+dAGKJ9WYi7J4tHNaNb3Qp5jjjEhpOxFQgCwb2xz8HjMHbdFVLJoQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"temporal-spec": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/temporal-polyfill": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/temporal-polyfill/-/temporal-polyfill-1.0.4.tgz",
|
||||
"integrity": "sha512-MLEU0qOD2uXlz24oINNtdLZQl8RgmMxSnRtKEGZGGetTJjlRwQJjk+VsJ4EREaUoiaTb8NJOcUiKtoAiWn9EBg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"temporal-spec": "1.0.1",
|
||||
"temporal-utils": "1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/temporal-spec": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/temporal-spec/-/temporal-spec-1.0.1.tgz",
|
||||
"integrity": "sha512-wxVoanmDeavXie1vu2JaQ3WIc3JZnWAOYFBsJyATaVsXsycKYUflGsyBmrRSnoCpZJpwPyr38VpgSUlQ8CbFxg==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/temporal-utils": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/temporal-utils/-/temporal-utils-1.0.2.tgz",
|
||||
"integrity": "sha512-1B8Dl4KzrOvsNUlpoWGno2VLQlxroLjDgc5NBjVC9ax9ymdo+ezfyvhyjEMx+IVfhINr6CIG2gcnlP95iRrybQ==",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user