Files
UmbrelApps/Docs/Plannen/Actief/010-Appstore/OPEN.md
T
HarmenandClaude Opus 5 5cf23bb83d De stunnel-container is weg, en daarmee stap 1 van open punt 2
De handmatige installatie uit de tijd vóór dit plan bond poort 50002 en stond op
restart: unless-stopped, dus hij overleefde een herstart. Dat was de laatste
blokkade voor de Fulcrum-test die op te heffen was; wat er nu nog tussen zit is
de eerste sync van Fulcrum, en dat is wachten en geen werk.

De map ~/umbrel/home/Containers/ElectrumTLS blijft bewust staan tot de
herstart-controle gedaan is; dat is de gedocumenteerde weg terug. De
volgorde-waarschuwing die er bij die taak stond is eruit: de container mountte
zijn entrypoint.sh uit die map, en die container is er nu af.

Nagekeken en niet aangepast: de repo ElectrumTLS staat nog op de Git-server en is
nog steeds anoniem leesbaar op b6afe67. Het domein staat daar dus nog in de
historie, en die taak blijft open.

Tests: niet gedraaid, dit raakt alleen documentatie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-25 16:48:08 +02:00

11 KiB
Raw Blame History

Open punten - Appstore

Beslissingen die nog een eigenaar of een moment nodig hebben. Staat een punt hier zonder allebei, dan is dat de eerste fout om op te lossen. Wordt een punt een taak, dan verhuist het naar TAKEN.md.

Nummers blijven staan, ook als een punt beslist is: er kan elders naar verwezen worden, ook vanuit codecommentaar. Beslissen betekent verplaatsen naar de kop hieronder, niet hernummeren.

Nog te beslissen

  1. Wat gebeurt er met de bestaande handmatige installatie? - In twee stappen; stap 1 is gedaan op 25-08-2026, stap 2 wacht bewust.

    Het ging om een alpine:latest met een apk add stunnel bij elke start, met restart: unless-stopped en een mount op de certificaten van Zoraxy.

    • De container is weg (25-08-2026). Hij bond poort 50002, precies de poort die Fulcrum op de host wil, en restart: unless-stopped betekende dat hij een herstart overleefde. Daarmee is de Fulcrum-test uit fase 6 niet langer geblokkeerd door iets wat je zelf kunt opheffen; wat er nog tussen zit is de eerste sync van Fulcrum, en dat is wachten.
    • De map blijft staan tot de herstart-controle gedaan is. Dat is een compose plus een entrypoint.sh en het kost niets. Het is de gedocumenteerde weg terug, en die vervalt pas als bewezen is dat de app na een herstart vanzelf terugkomt. De volgorde-val die hier stond (de container mountte zijn entrypoint.sh uit die map) speelt niet meer, want de container is er al af.

    Moment: stap 2 na de herstart-controle · Eigenaar: gebruiker

  2. Eigen icoon en gallery. Het manifest wijst nu naar het Electrs-icoon en een screenshot van Electrs in getumbrel/umbrel-apps, dus naar andermans bestanden en naar plaatjes van een andere app. Er moet een eigen SVG komen. De gallery is minder dringend: die is er voor een winkelpagina die hier niemand bezoekt, zie KNOWLEDGE.md. Vraag is wie het icoon maakt en of het in de repo komt of extern gehost wordt. Moment: fase 5 · Eigenaar: gebruiker

  3. Hoe wordt de herstart-controle alsnog gedaan? Dit is de controle waar het hele plan om begon: komt de app na een herstart van de Umbrel vanzelf terug. Hij is op 18-08-2026 uitgesteld omdat de Umbrel een productiemachine is en niet op verzoek herstart wordt. Dat is een geldige reden, maar het betekent wel dat het plan niet afgerond kan worden: alles wat er nu ligt is een sterke aanwijzing en geen bewijs.

    Wat er specifiek niet mee getest is, en waar de enige echte twijfel zit: de volgorde bij het opstarten. Zoraxy kan later klaar zijn dan deze app, en dan bestaat het certificaat nog niet.

    Bijgewerkt op 20-08-2026: hier stond dat de compose daarvoor een wachtlus heeft. Die is er niet meer, want juist die lus was de klem van 0.0.3. De opvolger is de vangnettak in de herlaadlus, die TLS aanzet zodra cert.conf verschijnt zonder dat er een vlag bij hoort. Dat is precies het Zoraxy-is-later-klaar-geval, en het is nog nooit echt voorgekomen; alleen getoetst tegen tijdelijke bestanden.

    Moment: bij de eerstvolgende herstart die er toch komt, bijvoorbeeld een umbrelOS-update of een stroomonderbreking. Noteer de uitkomst dan in PROGRESS.md. · Eigenaar: gebruiker

  4. Volgt de app-map de conventie van andere apps? Gevraagd door de gebruiker op 20-08-2026, die opmerkte dat hij bij andere apps geen app-code in app-data ziet. Uitgezocht en vastgelegd in Umbrel-appstore-spec.md; de korte versie is dat config-in-app-data een bestaand patroon is (electrs mount zijn torrc zo) en dat code-in-app-data het gevolg is van geen eigen image bouwen, wat een besluit is en geen ongeluk.

    Beide vervolgpunten zijn diezelfde dag gedaan in 0.0.9, nadat de gebruiker zei dat hij de app wil publiceren als standaard-app: de data staat onder data/ met een .gitkeep per map, en backupIgnore noemt de sessielog en status.json. Niet data/runtime/config, want daar zit de certificaatkeuze.

    Wat het uitzoeken daarna opleverde is groter dan dit punt en staat daarom in een eigen masterplan Publicatie: de eisen van de officiële store, wat er al aan voldoet, en het risico dat niet in een checklist staat, namelijk de leesmount op de certificaten van Zoraxy. Moment: afgerond · Eigenaar:

Beslist

  1. Wordt de repo hernoemd, en wat wordt dan het store-id? - Store-id whatsnext, app-id whatsnext-electrum-gate, repo-naam nog niet (19-08-2026, gebruiker).

    Het app-id moet met het store-id beginnen en de mapnaam moet gelijk zijn aan het app-id (zie Umbrel-appstore-spec.md). De aanname bij het stellen van deze vraag was dat de repo-naam daar ook in zat, want de store-URL ís de repo-URL. Dat klopte niet: het store-id is gewoon een veld in umbrel-app-store.yml en staat los van de naam van de repo. Daardoor kon het store-id meteen goed gezet worden en kan de repo-naam wachten.

    De store heet nu naar de maker en niet naar deze ene app. Dat is de variant die later een tweede app toelaat zonder opnieuw te hernoemen, en dat weegt hier zwaarder dan de kosten, want die zijn nul: de gebruiker gaf aan de app zonder bezwaar opnieuw te kunnen installeren.

    Afgerond op 25-08-2026, en eerder dan gedacht. Hier stond dat de repo nog ElectrumTLS heette en dat het hernoemen zou meeliften op een publieke versie op GitHub. Wat het versnelde was Evolu Relay: umbrelOS leest per store één repo, dus een tweede app dwong de vraag af. De repo is UmbrelApps geworden, met website, repo, support, submission en icon mee, in 0.0.15.

    Het app-id is niet meegegaan en dat is de reden dat dit goedkoop was: whatsnext-electrum-gate hangt aan het store-id en niet aan de URL. Voor umbrelOS is het dus dezelfde app in een andere store.

    En daarmee beantwoord, diezelfde dag: een geïnstalleerde app overleeft een wisseling van store-URL níet. Dit stond hier als "niet uitgezocht, en niet aannemen dat het meevalt"; dat was terecht.

    Wat er precies gebeurde: na het toevoegen van de nieuwe store zag umbrelOS de update naar 0.0.15 wel, maar het bijwerken gebeurde niet. Geen foutmelding, geen zichtbare reden. Dat is het lastigste soort uitkomst, want "de update wordt gezien" leest als "de koppeling is gelegd" en dat is hij niet: het tonen van een nieuwere versie en het ophálen ervan gaan niet langs dezelfde weg. De herkomst van een geïnstalleerde app blijft de store waaruit hij geïnstalleerd is, en een gelijk app-id in een andere store maakt daar geen dezelfde app van.

    Deïnstalleren plus opnieuw installeren loste het op (25-08-2026); de app draait weer op 0.0.15. De prijs is app-data, dus de certificaatkeuze in data/runtime/config/selected-cert moet daarna opnieuw gemaakt worden. Wie een certificaat had geüpload in plaats van uit Zoraxy te kiezen, raakt dat kwijt en moet data/certs/ vooraf wegkopiëren.

    De regel die hieruit volgt en verder gaat dan deze ene keer: behandel een verhuizing van de store-URL als een herinstallatie van elke app erin, en niet als een update. Dat maakt het ook een afweging bij het masterplan Publicatie-Gate, want daar verandert het app-id nog een keer.

  2. Draait nginx:alpine met de stream- en stream_ssl-module? - Ja (18-08-2026). Op de Umbrel gecontroleerd met docker run --rm nginx:alpine nginx -V. Aanwezig zijn --with-stream, --with-stream_realip_module, --with-stream_ssl_module en --with-stream_ssl_preread_module, alle vier statisch meegebouwd, dus zonder load_module.

    Daarmee gaat het ontwerp uit PLAN.md §4c door in de kleine variant: één container die de web-UI serveert én TLS termineert, geen stunnel-installatie bij het starten, geen losse cert-monitor, en de Docker-socket-mount vervalt.

    Twee dingen die deze uitkomst meebracht en die het opschrijven waard zijn. nginx wil de volledige keten in ssl_certificate, terwijl stunnel het gesplitst wilde; de awk-splitsing uit entrypoint.sh is daarmee overbodig in plaats van overgenomen. En dit antwoord geldt voor de tag nginx:alpine van vandaag: bij het pinnen op een digest wordt dezelfde controle op díe digest herhaald, anders is er iets anders bewezen dan er uitgeleverd wordt.

  3. Hoe komen entrypoint.sh en web/ in ${APP_DATA_DIR}? - Bij installatie automatisch, bij een update niet (18-08-2026). umbreld doet bij installatie rsync --archive van de hele app-map naar ${APP_DATA_DIR}, dus de mounts in de compose kloppen. Bij een update wordt alleen een whitelist ververst: docker-compose.yml, *.template, exports.sh, torrc, hooks en umbrel-app.yml.

    Gevolg dat het ontwerp stuurt: een gewijzigde entrypoint.sh bereikt een bestaande installatie nooit, zonder foutmelding. Logica die later nog moet kunnen wijzigen hoort daarom in de compose, in de image, of in een *.template-bestand; dat laatste staat in de whitelist én wordt bij elke start met de omgevingsvariabelen ingevuld. Zie de naslag Umbrel-appstore-spec.md.

  4. Wanneer wordt er voor het eerst gepusht? - Meteen, vóór de opschoning (18-08-2026). De repo staat sindsdien publiek op https://sc.kamenier-hamer.nl/sysop/ElectrumTLS.git, met het domein en het certificaatpad er nog in. Publiek zijn was geen keuze (umbreld kloont anoniem), alleen de volgorde was dat. Afweging van de gebruiker: de repo is voor eigen gebruik en wordt niet aangekondigd, dus vindbaarheid is laag. Gevolg dat vastligt: die waarden staan nu in de historie. Het plan Configuratie haalt ze uit de bestanden, niet uit de historie; dat laatste zou een herschrijving vragen. Behandel het domein dus als bekend, en laat het geen reden zijn om Configuratie uit te stellen of juist te haasten.

    Bijgewerkt 25-08-2026: die historie is bij de verhuizing achtergebleven. UmbrelApps is als lege repo begonnen met alleen de huidige toestand erin, op verzoek van de gebruiker die de historie niet nodig had. Daarmee vervalt de vaststelling hierboven, maar pas als de oude repo weg is: zolang ElectrumTLS op de Git-server staat, staat het domein daar nog in de historie. Dat weghalen is dus geen opruimwerk maar het laatste stuk van deze beslissing. Eigenaar: gebruiker

  5. Mag de app-id later nog wijzigen? - Ja (18-08-2026). Er zijn geen andere installaties, dus achterwaartse compatibiliteit is geen eis. Een wijziging kost één keer opnieuw installeren. Genoteerd omdat de prefix-regel anders zwaarder lijkt dan hij is: de keuze electrumtls-electrum-tls mag herzien worden zolang dat vóór fase 6 gebeurt.