Files
HarmenandClaude Opus 5 9d53612db8 De backendwissel is geen aanname meer: Fulcrum werkt zonder aanpassing
Fulcrum is uitgesynct en de gebruiker heeft omgeschakeld. De app hoefde niets
te weten van de wissel, want hij leest ${APP_ELECTRS_NODE_IP} en Fulcrum aliast
zichzelf naar die naam. Bevestigd langs alle drie de wegen: een wallet van
buiten over TLS op 50022, een wallet binnen het netwerk, en het dashboard met
een antwoordende server.

Daarmee is hoofdstuk 4 van de appstore-spec waargenomen gedrag in plaats van
een afleiding uit andermans broncode, en is de poortbotsing op 50002 ook in de
praktijk weg. Fase 3 van Appstore is af.

Gratis meegekomen: umbrelOS herstartte de app zelf bij de wissel en hij kwam
terug met dezelfde certificaatkeuze. Dat is de vervangende start/stop-controle,
maar nadrukkelijk geen antwoord op de volgordevraag, want Zoraxy draaide al.

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

201 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Taken - Appstore
> Prioriteit: **B** | Afhankelijk van:
>
> **Van A naar B op 20-08-2026**, bij de prioriteitsherziening na de verse installatie van 0.0.9. Alles
> waar dit plan om begon is af: de app is een echte umbrelOS-app, hij komt op uit een schone installatie,
> en een wallet van buiten verbindt over TLS. Wat er nog staat is niet te plannen (de herstartcontrole
> wacht op een herstart die er toch komt) of hoort bij het masterplan **Publicatie-Gate**. Het plan houdt
> zijn nummer 010; alleen **Webinterface** kreeg een nieuw nummer bij de promotie naar A.
>
> **Bijgewerkt 25-08-2026:** alles wat hier nog openstaat wacht op iets dat vanzelf komt (de eerste sync
> van Fulcrum, een herstart) of ligt bij de gebruiker (de oude repo weghalen). Er is niets meer dat een
> sessie zelf kan oppakken.
>
> **Bijgewerkt 27-08-2026:** de eerste van die twee wachtmomenten is voorbij. Fulcrum is uitgesynct, de
> omschakeling is gedaan en geslaagd, en daarmee is fase 3 helemaal af. Wat er nu nog staat wacht op één
> herstart of ligt bij de gebruiker.
## Volgende stap
- [x] **Omgeschakeld naar Fulcrum, en het werkte zonder één aanpassing (27-08-2026).** Dit is de controle
die sinds 19-08-2026 op tijd stond te wachten, en hij is langs alle drie de wegen bevestigd: een
wallet van buiten kreeg data terug, een wallet binnen het netwerk ook, en het dashboard toont het
Fulcrum-adres met een antwoordende server. Daarmee is de afhankelijkheidsconstructie geen aanname
meer maar bewezen gedrag; zie
[Umbrel-appstore-spec.md](../../../Referenties/Umbrel-appstore-spec.md) §4
- [x] **De maphiërarchie na een verse installatie nagekeken. In orde (20-08-2026):** in
`~/umbrel/app-data/whatsnext-electrum-gate/` staat `data/` met `certs/` en `runtime/` eronder. Dat is
de vorm die de appstore-eis vraagt, en samen met de twee `.gitkeep`-bestanden in de repo is dat punt
van het masterplan **Publicatie** dus af. Wat deze controle niet onderscheidt is wie de mappen
aanmaakte, `rsync` of Docker; voor de eis maakt dat niet uit, want die gaat over wat er in de repo
staat
- [x] **0.0.9 opnieuw geïnstalleerd in plaats van geüpdatet. Gelukt (20-08-2026).** De gebruiker koos een
deïnstallatie plus verse installatie omdat de app-data dan schoon is, en dat werkte. Daarmee is
bewezen wat op een bestaande installatie niet te bewijzen was: **de pagina komt omhoog op een
installatie waar nog nooit een certificaat gekozen is.** Dat is precies de situatie waarin 0.0.3
stukliep
- [ ] **Na `sudo reboot` controleren dat de app vanzelf terugkomt.** Dit is de aanleiding voor het hele
plan en nu het enige wat er in de kern nog openstaat; zie fase 6. **Eigenaar: gebruiker, op een
moment dat het kan**
- [x] **De doorstuurregel in de router naar poort 50022 gezet (20-08-2026).** Nodig omdat de app niet meer
op 50002 luistert; zonder deze regel komt een wallet van buiten niet binnen
- [x] **Een certificaat kiezen op de pagina, en daarmee het hele pad. Gelukt (20-08-2026):** de keuze werd
aangenomen, nginx kwam met poort 50022 door, en een wallet van buiten verbindt. De app doet waarvoor
hij bestaat
- [x] **0.0.4 uitrollen en kijken of de pagina nu komt. Gelukt (20-08-2026).** De pagina laadt, de
melding "No certificate in use" staat er met de reden van de agent, en de veertien certificaten uit
Zoraxy staan als keuzelijst. Daarmee is de klem uit 0.0.3 bewezen verholpen
- [x] De oude app `electrumtls-electrum-tls` verwijderen in umbrelOS, de store-URL opnieuw laten ophalen,
en `whatsnext-electrum-gate` installeren. **Gedaan (20-08-2026), en het leverde meteen een fout op:**
er kwam geen UI. Oorzaak was geen installatiefout maar een ontwerpfout, verholpen in 0.0.4, zie
[PROGRESS.md](PROGRESS.md) en [CHANGELOG-electrum-gate.md](../../../CHANGELOG-electrum-gate.md)
Daarna, in deze volgorde:
- [x] `version` op **0.0.3** en de release notes herschreven (19-08-2026). Niet 3.0.0: de gebruiker heeft
de nummering opnieuw onder 1.0 gezet, omdat 1.0.0 en 2.0.x een rijpheid beweerden die er niet was.
De stap terug in het nummer kan omdat de oude app gedeïnstalleerd wordt en dit een nieuwe app-id is,
dus er is geen geïnstalleerd manifest om tegen te vergelijken. **Vanaf hier moet het nummer altijd
omhoog**; zie [CHANGELOG-electrum-gate.md](../../../CHANGELOG-electrum-gate.md)
- [x] Controleren of de wallet-verbinding de nacht heeft doorstaan. **Gelukt (19-08-2026):** de
verbinding stond er 's ochtends nog. Daarmee is de `proxy_timeout`-fix bewezen en de storing
verklaard en verholpen
- [x] Het plan **Webinterface** promoveren naar `Actief/`; het werk daaraan is begonnen
- [ ] Het plan **Configuratie** herzien vóórdat het gepromoveerd wordt. Bij het afsluiten van de sessie op
19-08-2026 bleek het grotendeels ingehaald: de agent doet §4e en §4f al, en het hardgecodeerde
domein is uit `docker-compose.yml` én uit `nginx.conf.template` verdwenen, dus fase 2 is op de
README na klaar. Wat er nog echt in zit, is kleiner dan het plan suggereert. Eerst opschonen, dan
beslissen of promotie nog nodig is
## Fase 1 - De repo-vorm
- [x] `umbrel-app-store.yml` aanmaken met `id: electrumtls` en een `name`
- [x] Map `electrumtls-electrum-tls/` aanmaken en de app-bestanden erheen verplaatsen
- [x] `id` in `umbrel-app.yml` op `electrumtls-electrum-tls` zetten, gelijk aan de mapnaam
- [x] `install.sh` en `uninstall.sh` verwijderen; umbreld beheert dit onder umbrelOS 1.x
- [x] Verplaatsen en inhoudelijk wijzigen in **twee** commits houden, anders is de verhuizing niet als
"alleen verplaatst" na te lezen
## Fase 2 - De compose
- [x] `app_proxy`-service toevoegen met `APP_HOST: electrumtls-electrum-tls_server_1`
- [x] Het externe `umbrel_main_network` en het top-level `networks:`-blok verwijderen
- [x] `version: "3.7"` weghalen; die sleutel is verouderd
- [x] Certificaatmount op `${UMBREL_ROOT}/app-data/zoraxy/...` in plaats van een absoluut pad
- [x] De handmatige `${APP_ELECTRUM_TLS_WEB_PORT}`-plaatshouder eruit; de web-UI loopt via `app_proxy`
- [x] **Uitzoeken hoe `entrypoint.sh`, `cert-watch.sh` en `web/` in `${APP_DATA_DIR}` terechtkomen.**
Bij installatie kopieert umbreld de hele app-map met `rsync --archive`, dus de mounts kloppen. Bij
een **update** wordt alleen een whitelist ververst; zie [OPEN.md](OPEN.md) punt 6
- [x] **Vervallen: ingehaald door fase 4 (opgemerkt 27-08-2026).** Deze regel wilde de logica uit
`entrypoint.sh` halen; in plaats daarvan is het bestand zelf verdwenen, samen met `cert-watch.sh`.
Wat er in de app-map staat is nu compose plus drie `*.template`-bestanden, en die staan alle vier in
de update-whitelist
## Fase 3 - Backend-onafhankelijk
- [x] `dependencies: [electrs]` in het manifest laten staan en controleren
- [x] `ELECTRS_HOST` van `${APP_ELECTRS_IP}` naar `${APP_ELECTRS_NODE_IP}` (nu wijst hij naar de
web-UI-container van Electrs, niet naar de Electrum-server)
- [x] `ELECTRS_PORT` van de vaste 50001 naar `${APP_ELECTRS_NODE_PORT}`
- [x] Controleren dat er nergens een Electrs-specifieke variabele gebruikt wordt; alleen `IP`, `NODE_IP`
en `NODE_PORT` worden door Fulcrum en ElectrumX gealiast
- [x] De terugval `electrs_electrs_1` in `entrypoint.sh` vervangen door hard stoppen met een melding;
een oude containernaam als standaard laat de app draaien terwijl hij naar niets wijst
- [x] **Op de Umbrel geverifieerd: omgeschakeld naar Fulcrum, werkt zonder aanpassing (27-08-2026).**
Daarmee is deze fase af. De drie wijzigingen hierboven waren precies wat het kostte; de app zag
alleen een ander `${APP_ELECTRS_NODE_IP}` en `${APP_ELECTRS_NODE_PORT}` en merkte verder niets.
Uitkomst staat in fase 6
## Fase 4 - De image
- [x] Uitkomst van de "Volgende stap" verwerken: nginx `stream`, of terugvallen op een eigen image
- [ ] Image pinnen op de multi-arch index-digest, geverifieerd met `docker buildx imagetools inspect`
(kan alleen op de Umbrel; staat als TODO in de compose). **Sinds 20-08-2026 ook de grootste
openstaande eis voor het masterplan Publicatie**, want de officiële store eist
`repo:versie@sha256:<digest>` met beide architecturen erin. Blijft hier staan tot dat plan actief
wordt; een taak op twee plekken loopt uit elkaar
- [x] `apk add` bij het starten verwijderen
- [x] De `cert-monitor`-service samenvoegen met de proxy en de Docker-socket-mount schrappen
- [x] Certificaatwissel omzetten naar een reload binnen de container in plaats van een containerherstart
- [x] `entrypoint.sh` en `cert-watch.sh` verwijderen; de logica staat nu in de compose en in
`nginx.conf.template`, die allebei bij een update wél ververst worden
## Fase 5 - Het manifest
- [x] `port` op de web-UI-poort zetten in plaats van 50002
- [x] Eigen icoon toevoegen; verwijst nu naar het Electrs-icoon in andermans repo
- [x] `gallery` invullen of tot het minimum beperken; het wijst nu naar een screenshot van Electrs
- [x] `developer`, `website`, `repo`, `support`, `submitter` en `submission` kloppend maken
- [x] `releaseNotes` en `version` bijwerken
- [x] `tagline` en `description` bijwerken; die noemden stunnel, dat er niet meer is
- [x] Controleren dat Gitea `icon.png` als afbeelding serveert. **Ja**, na het omzetten van de
accountzichtbaarheid: 33,9 kB als `image/png`. De eerdere 401 en 404 kwamen van dezelfde oorzaak
als de mislukte kloon, dus er is geen `data:`-URI nodig
## Fase 6 - Installeren en verifiëren
- [x] De bestaande handmatige installatie stoppen; die hield poort 50002 vast en liet de installatie drie
keer falen. Stond in `~/umbrel/home/Containers/ElectrumTLS`
- [x] Store-URL toevoegen in umbrelOS en de app installeren
- [x] Verbinden met een Electrum-wallet over TLS. Werkt: de wallet krijgt direct data terug, wat het hele
pad bewijst, dus TLS-terminatie, certificaat en de verbinding naar de Electrum-server
- [ ] **Na `sudo reboot` controleren dat de app vanzelf terugkomt.** Dit is de aanleiding voor het plan
en de enige controle die er nog echt toe doet. **Uitgesteld op 18-08-2026:** de Umbrel is een
productiemachine en wordt niet op verzoek herstart. Zie [OPEN.md](OPEN.md) punt 7
- [x] **Vervanger gedaan, en gratis meegekomen met de omschakeling (27-08-2026):** umbrelOS stopte en
startte de app zelf omdat zijn afhankelijkheid wijzigde, en hij kwam terug met dezelfde
certificaatkeuze en werkende TLS. Dat is hetzelfde `app-script start`-pad als na een herstart.
**Wat het niet bewijst blijft staan:** Zoraxy draaide hier al, dus het certificaat bestond al toen
de app opkwam. De volgorde-vraag uit [OPEN.md](OPEN.md) punt 7 is dus niet beantwoord
- [ ] Controleren dat de app terugkomt nadat Electrs gestopt en gestart is
- [x] **De oude stunnel-container weggehaald (25-08-2026).** Hij bond poort 50002, de poort die Fulcrum op
de host wil, en met `restart: unless-stopped` overleefde hij een herstart. Daarmee is de laatste
blokkade voor de Fulcrum-test weg die je zelf kon opheffen. Het externe `umbrel_main_network` blijft
staan; dat verwijdert compose nooit
- [x] **Omgeschakeld naar Fulcrum in de umbrelOS-instellingen. Gelukt, zonder aanpassing (27-08-2026),**
nadat Fulcrum was uitgesynct. Bevestigd langs alle drie de wegen: een wallet van buiten over TLS op
50022 kreeg data terug (dus het hele pad inclusief de doorstuurregel), een wallet binnen het netwerk
ook, en het dashboard toont het Fulcrum-adres met een antwoordende server. Dat de app niets hoefde
te weten van de wissel is het punt: hij leest `${APP_ELECTRS_NODE_IP}` en die aliast Fulcrum zelf
- [ ] Pas ná een geslaagde herstart de oude map `~/umbrel/home/Containers/ElectrumTLS` opruimen; tot dan
is dat de terugweg. De container is er sinds 25-08-2026 al af, dus de volgorde-val (hij mountte zijn
`entrypoint.sh` uit die map) speelt niet meer
## Fase 7 - Naam en identiteit
Toegevoegd 18-08-2026. De naam beschreef het middel (TLS) en niet wat je ermee kunt.
- [x] Naam wordt **Electrum Gate**. Bijgesteld op 19-08-2026; op 18-08-2026 stond hier nog Electrum
Gateway. TLS is uit de naam en uit de tagline verdwenen; die gaat nu over de afweging Tor tegenover
snelheid
- [x] Store-id `whatsnext`, app-id en mapnaam `whatsnext-electrum-gate`. Zie [OPEN.md](OPEN.md) punt 8
- [x] `developer` en `submitter` op `WhatsNext?` (19-08-2026)
- [x] `tagline` en `description` herschreven, in het Engels, met de Tor-afweging en de lijst met clients
waarvoor de app nuttig is
- [ ] Eigen icoon van de gebruiker inbouwen, in de kleuren van het design-systeem. Het huidige
`icon.png` staat er nog en is niet het definitieve
- [x] **De repo hernoemd naar `UmbrelApps`, met `icon`, `website`, `repo`, `support` en `submission` mee
(25-08-2026, in 0.0.15).** Niet uitgesteld tot GitHub, zoals hier stond, maar afgedwongen door Evolu
Relay: umbrelOS leest per store één repo, dus een tweede app maakte een naam naar deze ene app
onhoudbaar. Het **app-id** ging niet mee en dat hoefde ook niet; dat hangt aan het store-id en niet
aan de URL
- [x] **De store omgezet in umbrelOS, en dat kostte een herinstallatie (25-08-2026).** Daarmee is open
punt 8 beantwoord: een geïnstalleerde app overleeft een wisseling van store-URL **niet**. De update
naar 0.0.15 werd wél getoond maar niet uitgevoerd, zonder foutmelding. Na deïnstalleren en opnieuw
installeren draait hij. Zie [OPEN.md](OPEN.md) punt 8 voor wat je vooraf moet wegschrijven
- [ ] Pas daarna de repo `ElectrumTLS` op de Git-server weghalen. Dat is niet alleen opruimen: zolang hij
bestaat, staat het domein nog in een publieke historie. Zie [OPEN.md](OPEN.md) punt 3.
**Eigenaar: gebruiker**
## Geblokkeerd / wacht op
- [x] Keuze van de TLS-poort - **vervallen 19-08-2026**. Open punt 1 van het plan **Configuratie** is
beslist op 50022 en meteen doorgevoerd, omdat de app toch opnieuw geïnstalleerd wordt. Daarmee is
ook de botsing met Fulcrum weg en kan de omschakelcontrole in fase 3 en fase 6 echt gedaan worden