Schoolbord: image 0.0.6 in app-versie 0.0.7, eigen login

PROXY_AUTH_ADD false, want de app heeft een eigen login en gaat publiek op een subdomein; SCHOOLBORD_TRUST_PROXY 2 (eigen reverse proxy plus app_proxy). Beschrijving en release note bijgewerkt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
HarmenandClaude Opus 5.5 committed 2026-11-04 14:52:49 +01:00
1 parent 7130a731d1
commit bb0e28b577
2 files changed
+31 -20

No files matched your search

+14 -5
View File
@@ -5,18 +5,22 @@
# 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 zonder eigen login: hij hangt volledig achter app_proxy, zonder
# `ports:`. De inlog van umbrelOS is het slot.
# 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
# blijft weg, dus de inlog van umbrelOS staat ervoor.
# 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
@@ -28,7 +32,7 @@ services:
# 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.5@sha256:7cc2025c30e2049b55131d5e2b60e69502ca0d949684393ddceb8ab3487bf10e
image: sc.kamenier-hamer.nl/sysop/schoolbord:0.0.6@sha256:b4a7b9ead85e70c557b77197ef4008b157ff01315d03991aa16692397c75ad29
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
@@ -38,6 +42,11 @@ services:
# 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
+17 -15
View File
@@ -13,24 +13,25 @@ storage:
dataRoot: data
category: finance
name: Schoolbord
version: "0.0.6"
version: "0.0.7"
tagline: Tenants, agreements and monthly invoices for a small venue
description: >-
Schoolbord keeps the tenants of a small venue, the agreements made with them, and what follows
from those: every lesson, workshop and booking of a month, with cancellations, moves and extra
bookings. One button invoices a month: a PDF per tenant with a payment QR code (bunq.me, iDEAL),
ready to download, share or send through WhatsApp. The overview shows this month's revenue, the
coming week, revenue per month and what is still to be paid.
Schoolbord keeps the people of a small venue, the agreements made with them, and what follows
from those: an agenda by month, week or day, with cancellations, moves and extra bookings. One
button invoices a month: a PDF per tenant with a payment QR code (bunq.me, iDEAL), ready to share,
send through WhatsApp or put in your mailbox as a draft. Notes with attachments, a report for the
bookkeeping, and the agenda and rates delivered to the website.
It was made for Schooltje Boschoord and speaks Dutch. Everything stays in your app folder on your
Umbrel and goes along with your Umbrel backup.
It has its own login and was made for Schooltje Boschoord; it speaks Dutch. Everything stays in your
app folder on your Umbrel and goes along with your Umbrel backup.
releaseNotes: >-
The energy surcharge is now one price per hour, set with the heating season on a new tab of the rates;
an agreement only says whether it applies, and the invoice shows it as one item (hours times the
price). New: conversation reports with search and sorting, a switch per agreement for the website, a
card per tenant with what is outstanding, an explanation on every page, and Active as a switch on the
tenants. Existing invoices stay as they were.
Schoolbord now has its own login and no longer sits behind the umbrelOS login. The administrator is
sysop; the password is made at the first start and is in secrets.json in the app's data folder (and in
the log). Back up the app's data before updating: the database is migrated. New: People with
Schooldames who can log in, Notes with a rich editor and attachments, drafts in your mailbox through
IMAP, free invoices, an invoice number per tenant, the agenda by month, week or day, a report for the
bookkeeping, and the agenda and rates delivered to the website.
developer: "WhatsNext?"
website: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
dependencies: []
@@ -48,8 +49,9 @@ submission: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
# ── Hieronder staat wat de voorgeschreven volgorde niet noemt ────────────────
#
# GEEN defaultPassword: de app heeft geen eigen login; de inlog van umbrelOS is
# het slot.
# GEEN defaultPassword: de app maakt het beheerderswachtwoord zelf, bij de eerste
# start, in /data/secrets.json. Een wachtwoord uit umbrelOS zou dat scherm
# overrulen (de les van Atreides Assets 0.1.0).
# Het icoon hoort bij een eigen store en moet bij inlevering in de officiele
# store juist weg: die host iconen apart. Daarom staat het als laatste. De boom