Navigatie Naar ... met gefilterde lijsten tussen de pagina's, Downloaden en Bekijken bij Documenten. 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>
56 lines
3.4 KiB
YAML
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.19@sha256:7a5ee4cd3f06b1bdbdef0d77d57aa21cf91551bd71acc9e88d8e7560807978bc
|
|
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
|