Getest met een tweede gebruikersaccount op dezelfde Mac, en dat is schoner dan een tweede apparaat: die installatie begint met een lege lokale Evolu-database, dus alles wat daar verschijnt kan alleen van de relay komen. De labels kwamen door, en een wijziging aan die kant komt ook weer terug. Beide richtingen dus, met bewijs. Daarmee staat er wat dit plan beloofde: een tweede app in deze store, geinstalleerd op de Umbrel, met Trezor Suite die erop synchroniseert. Het restwerk is klein en wacht nergens op: een herstart van de app overleven, twee images pinnen, en data per eigenaar kunnen wissen. Prioriteitsherziening die daarbij hoort. Umbrelapp zakt van A naar B. Eigenimage gaat naar A, want dat lag alleen stil omdat de gebruiker eerst Evolu Relay wilde afmaken; het is hernummerd naar 004 zodat de bovenkant van de reeks weer op tier-orde staat. Proefopstelling zakt naar B en is klaar voor het archief: alle vragen die het bezat zijn hier beantwoord, en de rest gaat over een pakket dat niet meer bestaat. De takenlijst is opgeschoond van regels die over het oude pakket gingen: de Postgres-pin, de schemavraag, het adres op 3851 en de twee blokkades. In plaats daarvan staan de twee images die nu nog ongepind zijn. En de controle of deze app Electrum Gate raakt is afgevinkt met wat er werkelijk gebeurde: dat deed hij, via een gedeelde containernaam, en dat is gerepareerd. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
83 lines
5.2 KiB
Markdown
83 lines
5.2 KiB
Markdown
# 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](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](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.
|
||
|
||
- [x] **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](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](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](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](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](PLAN.md) §1
|
||
|
||
## Geblokkeerd / wacht op
|
||
|
||
Niets, behalve open punt 1 hierboven, en dat is een vraag van één regel aan de gebruiker.
|