Schoolbord: het pakket, nog zonder gepinde image

Compose, manifest (poort 3856), icoon en data/app. Niet pushen voor release-bump: de tag 0.0.1 bestaat pas na de eerste build in Schoolbord. Tests: test_appstore_vorm.py 110 goed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
HarmenandClaude Opus 5.5 committed 2026-11-03 15:22:54 +01:00
1 parent 8c33f5348b
commit 0051587103
5 files changed
+97

No files matched your search

Whitespace-only changes.
+44
View File
@@ -0,0 +1,44 @@
# ═══════════════════════════════════════════════════════════════════════════════
# 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 zonder eigen login: hij hangt volledig achter app_proxy, zonder
# `ports:`. De inlog van umbrelOS is het slot.
# ═══════════════════════════════════════════════════════════════════════════════
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.
app_proxy:
environment:
APP_HOST: whatsnext-schoolbord_server_1
APP_PORT: 8095
server:
# De eerste release zet `node tools/release-bump.mjs whatsnext-schoolbord
# <versie> <digest>` hier neer, met de digest erbij. Push deze repo niet
# vóór die stap: dan staat hier een tag die het register nog niet kent.
#
# 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.1
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"
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
Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+52
View File
@@ -0,0 +1,52 @@
# De veldvolgorde hieronder is niet vrij: de packaging-documentatie van de
# officiele appstore schrijft hem voor. Zie de tabel in
# HomeGit/Docs/Referenties/UmbrelApps/Umbrel-appstore-spec.md, en de toets in
# tests/test_appstore_vorm.py die hem vasthoudt.
#
# Wat de spec niet noemt, staat onderaan dit bestand en niet ertussen.
manifestVersion: 1
id: whatsnext-schoolbord
# umbrelOS 2.0: de gebruiker kan de datamap naar een USB-schijf (ext4) verplaatsen.
# Het veld kan er niet meer uit: een installatie die al verplaatst is, start dan
# niet meer. Zie Umbrel-appstore-spec.md §7.
storage:
dataRoot: data
category: finance
name: Schoolbord
version: "0.0.1"
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. The overview shows this month's revenue, the coming week and revenue per month.
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.
releaseNotes: >-
The first version: tenants, agreements with weekly, fortnightly, monthly and one-off patterns, the
month with cancelling and moving, rates, and the overview. Invoices follow in a next version.
developer: "WhatsNext?"
website: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
dependencies: []
repo: https://sc.kamenier-hamer.nl/sysop/UmbrelApps
support: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/issues
# De poort waarop umbrelOS de app aanbiedt. 3850 tot en met 3855 zijn van de
# andere apps in deze store (3852 en 3855 als eigen poorten van de Relay en van
# de API van Atreides Services).
port: 3856
# Leeg laten bij een nieuw pakket; de plaatjes doet het store-team zelf.
gallery: []
path: ""
submitter: "WhatsNext?"
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.
# 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
# van het Schooltje op beige, van de website.
icon: https://sc.kamenier-hamer.nl/sysop/UmbrelApps/raw/branch/main/whatsnext-schoolbord/icon.png