Files
HarmenandClaude Opus 5.5 0997c03455 Schoolbord: image 0.0.26 gepind in app-versie 0.0.26
De knoppen van een rij breken af op de telefoon, Wijzigen staat vooraan en
twee of meer knoppen Naar staan achter een menu. Geen migratie. Digest
gecontroleerd bij het register; store-tests groen (110 en de
release-bump-test).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 10:53:28 +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.26@sha256:632b94ecf4fc9462b84e25879ed68e1257d429739f3c3ccd7c21cba06441a0f7
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