Files
UmbrelApps/Docs/Plannen/Archief/Eigenimage/TAKEN.md
T
HarmenandClaude Fable 5.1 fa0aa6c8d8 Eigenimage afgerond en gearchiveerd: beide apps op een eigen image
Relay 0.6.0 draait en synct; de gebruiker haalde de achtergebleven
programmabestanden met de hand uit de app-datamap. Het plan verhuist naar
Docs/Plannen/Archief/Eigenimage/, de eerste in die map. CONTINUE_HERE krijgt
een archiefsectie; Publicatie-Relay wacht niet meer op een te pinnen image,
en in Publicatie-Gate en Images-pinnen.md is het pinnen van vreemde images
geschiedenis. Wat er voor publicatie nog ontbreekt is linux/arm64.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 17:08:47 +02:00

8.5 KiB
Raw Blame History

Taken - Eigenimage

Afgerond op 08-09-2026. Beide apps draaien op een eigen image, gepind, met een lege app-datamap. Dit plan staat in Archief/ en wordt niet meer bewerkt.

Prioriteit: (was 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

Opgepakt op 07-09-2026 op verzoek van de gebruiker. Fase 1 tot en met 3 zijn in één sessie gedaan en gecommit als Electrum Gate 0.1.0. Op 08-09-2026 is de image op de Umbrel gebouwd, geduwd, gepind en geïnstalleerd; de bouw slaagde in één keer en de app draait. Voor Electrum Gate is dit plan af. Wat overblijft is Evolu Relay (§8 van het plan) en, voor Publicatie-Gate, multi-arch.

  • Fase 1 tot en met 3 gedaan (07-09-2026), als 0.1.0. De vier *.template-bestanden staan nu in tools/electrum-gate/ zonder de extensie, plus Dockerfile, build.sh en entrypoint.sh. De compose gebruikt één image voor beide containers, ongepind tot de eerste push. Tests aangepast en mutatie-getest; details in PROGRESS.md

  • Fase 4 gedaan (08-09-2026): gebouwd, geduwd, gepind, geüpdatet, herinstalleerd. Electrum Gate draait op zijn eigen image en de app-datamap is schoon. Voor Gate is dit plan klaar

  • Evolu Relay gedaan (08-09-2026), als 0.6.0: één image met de relay erbij, gebouwd, gepind en in gebruik. Zie fase 5

  • Dit plan is af voor beide apps en staat in Archief/. Wat overblijft is geen werk van dit plan: multi-arch bouwen en de anonieme pull per verhoging horen bij Publicatie-Gate en Publicatie-Relay; build.sh van beide apps heeft er de schakelaar voor

  • 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 - Het bouwrecept

  • Beslissen: één image of twee (open punt 2). Eén, zoals PLAN.md §6 voorstelt; beslist 07-09-2026, zie OPEN.md
  • Beslissen: waar wordt gebouwd (open punt 3). Op de Umbrel, want dat is de enige machine met Docker; de werkplek heeft het niet. Zie OPEN.md
  • tools/electrum-gate/Dockerfile: nginx:1.30-alpine plus python3 uit apk, de vijf bestanden erin, ENTRYPOINT [] zodat het envsubst-script van de nginx-image niet meedraait. De bouwcontext is de repo-root, want icon.png blijft in de app-map (het manifest wijst ernaar) en wordt van daar gekopieerd; .dockerignore in de root houdt de context klein
  • tools/electrum-gate/build.sh naar het voorbeeld van Evolu Relay: VERSION, controles vooraf (ontbrekende bestanden, een ${ die niemand meer invult), bouwen, en de vervolgstappen afdrukken
  • Multi-arch bouwen, en dat is nieuw werk. build.sh heeft er een schakelaar voor: PLATFORMS="linux/amd64,linux/arm64" bouwt met buildx en duwt meteen. Nog nooit geprobeerd, en niet nodig voor eigen gebruik op een amd64-Umbrel. Hoort bij Publicatie-Gate; zie PLAN.md §4
  • Anoniem te halen, gecontroleerd 08-09-2026. Na docker logout gaf docker pull dezelfde digest terug als de push. umbreld krijgt geen inloggegevens mee, dus dit was de laatste voorwaarde voor de update

Fase 2 - Het command-blok wordt een script

  • tools/electrum-gate/entrypoint.sh, uit het command-blok van de compose. Zelfde gedrag, geen $$ meer, en het log_format staat nu gewoon in stream.conf in plaats van in een los bestand dat het script wegschreef. Nieuw erin: het invullen van het backend-adres in het stream-blok (zie fase 3)
  • Wat niet mocht sneuvelen en er staat: de sessieteller uit /proc/net/tcp, de herlaadlus met zijn vangnettak, en exec nginx als laatste regel. Alle drie met een toets in test_server_start_zonder_certificaat.py, en die zijn gezien te falen

Fase 3 - De app-map opschonen

  • De vier templates uit de app-map, met git mv naar tools/electrum-gate/ zonder .template
  • index.html heeft geen template-invulling meer. ${APP_VERSION} en het backend-adres komen uit status.json: de agent krijgt GATE_APP_VERSION: ${APP_VERSION} uit de compose en zet version in de status; het adres stond er al als backend.address
  • stream.conf heeft geen template-invulling meer. Twee plaatshouders zonder dollarteken, __GATE_ELECTRUM_HOST__ en __GATE_ELECTRUM_PORT__, die entrypoint.sh uit de omgeving invult; de server-service krijgt daarvoor dezelfde twee variabelen als de agent
  • De compose houdt zijn environment-blok; de mounts van de vijf losse bestanden zijn eruit
  • Wat er in de app-map overblijft: docker-compose.yml, umbrel-app.yml, icon.png en data/ met zijn twee .gitkeep-bestanden. Precies wat PLAN.md §6 zei
  • De tests mee verhuisd: test_agent_certificates.py laadt tools/electrum-gate/agent.py; test_server_start_zonder_certificaat.py toetst entrypoint.sh en de Dockerfile in plaats van het command-blok, plus dat de tag in de compose VERSION uit build.sh is; test_appstore_vorm.py leest ook de nginx-config onder tools/ en toetst tag gelijk aan VERSION voor élke eigen image; test_paginas_parsen.mjs en tools/voorbeeldpagina.mjs vinden een pagina op beide plekken

Fase 4 - Uitrollen en verifiëren

  • Image gebouwd en geduwd op de Umbrel (08-09-2026) en gepind als 0.1.0@sha256:97fee09b…7cfd8f, twee keer in de compose. version stond al op 0.1.0
  • Op de Umbrel geüpdatet en daarna ook gedeïnstalleerd en opnieuw geïnstalleerd (08-09-2026), zodat de app-datamap geen oude templates meer bevat. De gebruiker meldt dat alles werkt; welke van de vijf controles hij precies deed staat niet vast, de pagina en de versie zijn gezien
  • De versie in de kop van de pagina toont v0.1.0, dus de weg via status.json werkt
  • icon.png is hiermee updatebaar, want die zit in de image. Dat was de enige echte uitzondering op "alles komt al aan bij een update"; zie PLAN.md §1

Fase 5 - Evolu Relay

  • Beslist (08-09-2026, gebruiker): één image met de relay erbij, geen tweede recept. Basis blijft node:24-slim om better-sqlite3; nginx en python3 komen uit apt
  • Agent, nginx-config en pagina naar tools/evolu-relay/ met git mv, zonder .template. Dockerfile en build.sh herschreven; bouwcontext is de repo-root, zoals bij Gate. VERSION 0.6.0, manifest 0.6.0, drie keer dezelfde tag in de compose, ongepind tot de eerste push
  • Wat er anders is dan verplaatst: user www-data; in nginx.conf (Debian heeft geen gebruiker nginx), user: node op de relay-service in de compose (de image heeft geen USER meer), de versie via api/status met RELAY_APP_VERSION, en PYTHONUNBUFFERED als ENV in de image
  • Tests mee: test_relay_agent.py laadt tools/evolu-relay/agent.py; de vormtest toetst de drie tags tegen VERSION; de paginatest en voorbeeldpagina.mjs vinden de pagina zelf
  • Gebouwd, geduwd, gepind, geüpdatet en nagekeken (08-09-2026). De bouw met apt erin slaagde in één keer; digest sha256:4dc56b8a…08b5b54 drie keer in de compose. Na de update toont de pagina v0.6.0 en werkt een sync vanuit Trezor Suite, dus de relay schrijft als node nog in data/relay. Niet herinstalleerd, want de database moest blijven; de gebruiker heeft de zes achtergebleven programmabestanden met de hand uit de app-datamap gehaald

Geblokkeerd / wacht op

Niets. Het plan is af.