Files
UmbrelApps/whatsnext-schoolbord/docker-compose.yml
T
HarmenandClaude Opus 5.5 e90d29b463 Schoolbord: image 0.0.16 gepind in app-versie 0.0.17
Een notitie en de thermostaat per moment van een afspraak, Herstellen alleen bij iets te herstellen, en kleine bijstellingen (smallere notitiedialoog, thermostaatinstellingen als smalle kaart, groene melding na aanleveren, Nu even anders instellen? dichtgeklapt).

Draagt migratie 24; de release note zegt dat de database in één stap bijgewerkt wordt.

Digest gecontroleerd door release-bump.mjs; store-tests groen (110 en de release-bump-test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:43:47 +01:00

56 lines
3.4 KiB
YAML

# ═══════════════════════════════════════════════════════════════════════════════
# Schoolbord - huurders, afspraken en maandfacturen voor Schooltje Boschoord.
#
# Eén container: de Node-server serveert de app én bezit de database. Het recept
# staat NIET in deze repo maar in `HomeGit/Schoolbord` (de Dockerfile in de root
# daar), net als bij Atreides Assets en Atreides Services.
#
# Een web-UI met een EIGEN login (sinds image 0.0.6): hij hangt achter
# app_proxy, zonder `ports:`, en is publiek bereikbaar via een eigen reverse
# proxy op een subdomein. De inlog van umbrelOS staat er daarom niet meer voor.
# Het beheerderswachtwoord maakt de app zelf, in /data/secrets.json.
# ═══════════════════════════════════════════════════════════════════════════════
services:
# umbrelOS genereert deze service zelf; wij vullen alleen in waar hij heen moet
# wijzen. De hostnaam heeft de vorm <app-id>_<compose-service>_1.
# PROXY_AUTH_ADD "false": de app heeft een eigen login, en een bezoeker via het
# subdomein heeft geen sessie bij umbrelOS.
app_proxy:
environment:
APP_HOST: whatsnext-schoolbord_server_1
APP_PORT: 8095
PROXY_AUTH_ADD: "false"
server:
# De digest hoort erbij en niet alleen de tag: een tag kan opnieuw geduwd
# worden. Eerste release op 03-11-2026. Bij een volgende zet
# `node tools/release-bump.mjs whatsnext-schoolbord <versie> <digest>` de tag
# en de digest hier neer; dat script vervangt de hele regel en controleert
# anoniem bij het register dat de digest onder die tag hangt.
#
# DE TAG IS DE VERSIE VAN DE IMAGE EN NIET DIE VAN DE APP: `version` in
# umbrel-app.yml moet bij élke wijziging omhoog, ook als alleen dit bestand
# verandert.
image: sc.kamenier-hamer.nl/sysop/schoolbord:0.0.16@sha256:6f26540474b8b9d2be292679f16251cb53f919f8b4fd6510f92289e9ad38e11f
restart: on-failure
# Geen `user:` nodig: de image zet zelf `USER node` (uid 1000), en umbrelOS
# maakt de datamap aan als `umbrel`, ook uid 1000 (gemeten bij Atreides
# Services op 09-10-2026). Geen healthcheck hier: die zit in de image.
environment:
# ZONDER DIT IS DE APP ONBEREIKBAAR. De server bindt op 127.0.0.1, en in een
# container is dat de loopback van de container: app_proxy komt er dan niet
# bij. De netwerkgrens is hier de afwezigheid van `ports:` plus de proxy.
SCHOOLBORD_HOST: "0.0.0.0"
# Hoeveel proxy's er voor de app staan: de eigen reverse proxy en app_proxy.
# Alleen dan gelooft de app X-Forwarded-For (de rem op inlogpogingen per
# bezoeker) en X-Forwarded-Proto (Secure op het sessiecookie). Na te gaan
# met een inlog van buitenaf; via het LAN staat er één proxy voor.
SCHOOLBORD_TRUST_PROXY: "2"
volumes:
# De datamap: db.sqlite, de hele administratie. Dit is de map die in de
# back-up van umbrelOS hoort. Met `storage: dataRoot: data` in het manifest
# kan umbrelOS 2.0 hem naar een USB-schijf verplaatsen; daarom staat
# data/app in de repo (.gitkeep) en staat hier geen mount-optie bij.
- ${APP_DATA_DIR}/data/app:/data