Files
UmbrelApps/Docs/Plannen/Actief/006-Eigenimage/TAKEN.md
T
HarmenandClaude Opus 5 a1c17ceff6 Het register beslist, en de aandacht gaat naar Evolu Relay
Open punt 1 van Eigenimage: voor nu Gitea, bij inlevering opnieuw kijken. De twee
bezwaren die dat punt opriep, het domein van de gebruiker in een publiek pakket
en andermans installaties die aan zijn thuisserver komen te hangen, gelden
allebei pas bij inlevering. Daar is hij uitdrukkelijk nog niet aan toe: dit is
voorlopig zijn eigen app voor eigen gebruik.

Twee dingen zijn bij dat besluit vastgelegd zodat ze niet met het antwoord
verdwijnen: bij inlevering moet het register opnieuw beoordeeld worden, samen met
het pinnen en het kaal maken van het app-id, en de opmerking dat umbrelOS een
eigen register zou toestaan is niet nagetrokken. Dat hoort bij Publicatie-Gate.

Daarmee kan fase 1 zo beginnen, maar het plan ligt stil op verzoek van de
gebruiker: hij gaat eerst verder met Evolu Relay. Umbrelapp staat nu bovenaan
tier A, met twee feiten erbij om mee te starten: die app staat op dit moment uit,
en hij is nog nooit met Trezor Suite verbonden geweest.

Eigenimage houdt tier A en zijn nummer; er is niets aan gebouwd, dus er ligt ook
niets half af.

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

5.2 KiB
Raw Blame History

Taken - Eigenimage

Prioriteit: A | Wacht op:

Gepromoveerd van masterplan naar Actief/ op 27-08-2026, direct na het afronden van Webinterface. Dat was de volgorde die de gebruiker die dag afsprak, en de reden staat in PLAN.md §9: een eigen image maakt van elke paginawijziging een bouwronde, en dat had het werk aan de webinterface geremd. Dat werk is nu klaar.

Het register is beslist (27-08-2026): Gitea, net als bij Evolu Relay. Bij inlevering wordt het opnieuw bekeken, en dat is dan een taak van Publicatie-Gate. De gebruiker is uitdrukkelijk nog niet toe aan publiceren: dit is voorlopig zijn eigen app voor eigen gebruik. Zie OPEN.md punt 1, inclusief het ene ding dat daar nog uitgezocht moet worden.

En lees §1 van het plan. Het argument dat voor de hand ligt, "dan komen wijzigingen eindelijk aan bij een bestaande installatie", geldt hier níet: alle code staat in een *.template en die staan in de update-whitelist. Wat dit plan wél oplevert, staat in §3.

Volgende stap

Dit plan ligt stil op verzoek van de gebruiker (27-08-2026): hij gaat eerst verder met Evolu Relay, zie het plan Umbrelapp. Dat is een volgordekeuze en geen blokkade; er is aan dit plan nog niets gebouwd, dus er ligt ook niets half af. Beginnen kan met fase 1, en het antwoord dat daarvoor nodig was staat er.

  • Open punt 1 beantwoord (27-08-2026): voor nu Gitea, bij inlevering opnieuw kijken. Daarmee is de enige vraag weg die vóór het bouwen beantwoord moest zijn. Zie OPEN.md

  • Fase 1 beginnen: het bouwrecept in tools/electrum-gate/. Open punt 2 en 3 horen bij die start en niet ervoor: één image of twee, en op welke machine er gebouwd wordt. Dat laatste is de enige die de gebruiker moet beantwoorden, en pas op het moment dat het recept er is en gedraaid moet worden

Fase 1 - Het bouwrecept

  • Beslissen: één image of twee (open punt 2). PLAN.md §6 stelt één voor
  • Beslissen: waar wordt gebouwd (open punt 3). De Umbrel is amd64 en een productiemachine
  • tools/electrum-gate/Dockerfile schrijven: basisimage, agent.py, de nginx-configuratie, de pagina, en een entrypoint.sh. Niet in de app-map: een Dockerfile staat niet in de update-whitelist, dus bouwen-in-de-app kost bij elke versie een deïnstallatie
  • tools/electrum-gate/build.sh naar het voorbeeld van tools/evolu-relay/build.sh: pin op de basisimage, bouwen, naar het register duwen, en de digest afdrukken die in de compose moet
  • Multi-arch bouwen, en dat is nieuw werk. linux/amd64 én linux/arm64 in de manifest-lijst. Vraagt buildx met QEMU en is hier nog nooit geprobeerd; zie PLAN.md §4
  • Controleren dat de image anoniem te halen is. umbreld krijgt geen inloggegevens mee. Uitloggen in dezelfde context waarin je inlogde, anders meet je je eigen sessie. Het commando staat onderaan tools/evolu-relay/build.sh

Fase 2 - Het command-blok wordt een script

  • Het inline command-blok uit docker-compose.yml omzetten naar entrypoint.sh in de image. Dat is ruim honderd regels shell in een YAML-string met een eigen ontsnappingsregel voor het dollarteken; zie PLAN.md §2. Dit is de grootste inhoudelijke winst van het hele plan
  • Let op wat daarbij niet mag sneuvelen: het log_format met $$, de sessieteller uit /proc/net/tcp, de herlaadlus met zijn vangnettak, en het feit dat nginx met exec het hoofdproces wordt. Die laatste is geen detail: andersom blijft de shell PID 1, geeft signalen niet door, en ziet Docker een geslaagde afsluiting als nginx omvalt

Fase 3 - De app-map opschonen

  • agent.py.template, nginx.conf.template, stream.conf.template en index.html.template uit de app-map halen zodra ze in de image zitten
  • index.html heeft dan geen template-invulling meer. Vandaag staat er ${APP_ELECTRS_NODE_IP}:${APP_ELECTRS_NODE_PORT} in, ingevuld door umbreld bij het starten. Zit de pagina in de image, dan moet dat adres langs de omgeving naar binnen, bijvoorbeeld doordat de agent het in status.json zet en de pagina het daaruit leest. Dat is werk dat nu nog gratis is
  • De compose houdt zijn environment-blok; dat is hoe ${APP_ELECTRS_NODE_IP} binnenkomt, en die weg is op 27-08-2026 bewezen bij de omschakeling naar Fulcrum
  • Wat er in de app-map overblijft: docker-compose.yml, umbrel-app.yml, icon.png en data/ met zijn twee .gitkeep-bestanden

Fase 4 - Uitrollen en verifiëren

  • Image gepind als repo:tag@sha256:<digest> in de compose, en version verhoogd in het manifest. Zonder die verhoging rolt umbrelOS niets uit
  • Op de Umbrel installeren en controleren dat alles het nog doet: de pagina, de certificaatkeuze, de TLS-poort, de zelfcontrole en het activiteitenlog
  • icon.png wordt hiermee updatebaar, want die zit dan in de image. Dat was de enige echte uitzondering op "alles komt al aan bij een update"; zie PLAN.md §1

Geblokkeerd / wacht op

Niets, behalve open punt 1 hierboven, en dat is een vraag van één regel aan de gebruiker.