Files
UmbrelApps/whatsnext-schoolbord/docker-compose.yml
T
HarmenandClaude Opus 5 ecbecf8fb0 Schoolbord: image 0.0.8 gepind in app-versie 0.0.9
Notities kunnen als concept naar de mailbox, een persoon draagt zijn voorkeur
voor hoe hij zijn factuur krijgt en de link en prijs van de agenda op de
website, en de schermen zijn op zeven punten bijgewerkt. Release note bijgewerkt
naar wat er in deze image zit.

LET OP: deze image draagt migratie 15, de eerste sinds 0.0.6. De database loopt
bij het starten mee omhoog.

Digest gecontroleerd door release-bump.mjs. Store-tests groen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-11-05 10:04:39 +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.8@sha256:7c4b913165b8207cc856dc55bf808d978e82fd5864002b49a7bb8cebe153d891
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