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>
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.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
|