From 9d53612db8f6c849691610effffefffec268b061 Mon Sep 17 00:00:00 2001 From: Harmen Date: Thu, 27 Aug 2026 14:41:29 +0200 Subject: [PATCH] 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 --- Docs/CONTINUE_HERE.md | 2 +- Docs/Plannen/Actief/010-Appstore/OPEN.md | 4 +- Docs/Plannen/Actief/010-Appstore/PROGRESS.md | 18 +++++++++ Docs/Plannen/Actief/010-Appstore/TAKEN.md | 39 +++++++++++++++----- Docs/Referenties/Umbrel-appstore-spec.md | 14 ++++++- 5 files changed, 63 insertions(+), 14 deletions(-) diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index d44ff3b..d9b48b9 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -31,7 +31,7 @@ | Plan | App | Volgende stap | Status | |-|-|-|-| -| [Appstore](Plannen/Actief/010-Appstore/TAKEN.md) | Gate | De repo `ElectrumTLS` weghalen op de Git-server; daar staat het domein nog in de historie. Verder wacht alles op iets dat vanzelf komt: de eerste sync van Fulcrum (72% op 25-08) voor de omschakeltest, en een herstart voor de herstartcontrole | 🔶 | +| [Appstore](Plannen/Actief/010-Appstore/TAKEN.md) | Gate | De repo `ElectrumTLS` weghalen op de Git-server; daar staat het domein nog in de historie. **De omschakeling naar Fulcrum is op 27-08-2026 gelukt zonder aanpassing**, dus daarvan is alleen de herstartcontrole nog over, en die komt vanzelf bij de eerstvolgende herstart | 🔶 | ## C - Wacht op afhankelijkheid diff --git a/Docs/Plannen/Actief/010-Appstore/OPEN.md b/Docs/Plannen/Actief/010-Appstore/OPEN.md index c4d106c..8664bd4 100644 --- a/Docs/Plannen/Actief/010-Appstore/OPEN.md +++ b/Docs/Plannen/Actief/010-Appstore/OPEN.md @@ -18,7 +18,9 @@ - **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. + tussen zat was de eerste sync van Fulcrum, en dat was wachten. **Dat wachten is voorbij: de + omschakeling is op 27-08-2026 gedaan en geslaagd**, dus het weghalen van deze container heeft + opgeleverd waarvoor het bedoeld was. - **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 diff --git a/Docs/Plannen/Actief/010-Appstore/PROGRESS.md b/Docs/Plannen/Actief/010-Appstore/PROGRESS.md index a8337b0..b13034a 100644 --- a/Docs/Plannen/Actief/010-Appstore/PROGRESS.md +++ b/Docs/Plannen/Actief/010-Appstore/PROGRESS.md @@ -3,6 +3,24 @@ > Chronologisch sessielog, nieuwste bovenaan. Kort: 3 tot 6 regels per entry. Wat er is gebeurd en > waarom, niet wat er nog moet: dat staat in [TAKEN.md](TAKEN.md). +## 27-08-2026 - Fulcrum is uitgesynct, de omschakeling gedaan, en er hoefde niets aangepast + +De controle die sinds 19-08-2026 alleen nog op tijd wachtte, is gedaan en geslaagd. Fase 3 is daarmee +helemaal af. De app merkte van de wissel niets: hij leest `${APP_ELECTRS_NODE_IP}` en +`${APP_ELECTRS_NODE_PORT}`, en Fulcrum aliast zichzelf naar die namen in zijn eigen `exports.sh`. Bevestigd +langs alle drie de wegen die er zijn: een wallet van buiten over TLS op 50022, een wallet binnen het +netwerk, en het dashboard met het Fulcrum-adres en een antwoordende server. Daarmee is §4 van +`Umbrel-appstore-spec.md` geen broncode-afleiding meer maar waargenomen gedrag, en is ook de poortbotsing +op 50002 in de praktijk weg: Fulcrum en de gate draaien naast elkaar. + +**Er kwam één controle gratis bij.** umbrelOS stopte en startte de app zelf omdat zijn afhankelijkheid +wijzigde, en hij kwam terug met dezelfde certificaatkeuze en werkende TLS. Dat is de vervangende +start/stop-controle uit fase 6. Het is nadrukkelijk **geen** antwoord op open punt 7: Zoraxy draaide al, +dus het certificaat bestond al toen de app opkwam, en juist die volgorde is de enige echte twijfel. + +**Geraakt:** alleen documentatie: `Umbrel-appstore-spec.md`, dit plan, `Docs/CONTINUE_HERE.md`. +**Tests:** niet van toepassing. + ## 25-08-2026 - de repo werd een store met twee apps, en dat kostte een herinstallatie Evolu Relay komt erbij en umbrelOS leest per store één repo, dus de repo `ElectrumTLS` is opgegaan in diff --git a/Docs/Plannen/Actief/010-Appstore/TAKEN.md b/Docs/Plannen/Actief/010-Appstore/TAKEN.md index 95a0ebd..d3276fb 100644 --- a/Docs/Plannen/Actief/010-Appstore/TAKEN.md +++ b/Docs/Plannen/Actief/010-Appstore/TAKEN.md @@ -11,9 +11,20 @@ > **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 @@ -81,8 +92,10 @@ Daarna, in deze volgorde: - [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 -- [ ] Logica die later nog moet kunnen wijzigen uit `entrypoint.sh` halen en in de compose of in een - `*.template` zetten, anders levert een `git push` geen update op bij een bestaande installatie +- [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 @@ -94,8 +107,10 @@ Daarna, in deze volgorde: 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 -- [ ] Op de Umbrel verifiëren: omschakelen naar Fulcrum en controleren dat het zonder aanpassing werkt - (staat ook in fase 6) +- [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 @@ -133,17 +148,21 @@ Daarna, in deze volgorde: - [ ] **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 -- [ ] Vervanger die nu wél kan: de app stoppen en starten via umbrelOS. Dat gebruikt hetzelfde - `app-script start`-pad als het opstarten na een herstart, maar bewijst niet de volgorde ten - opzichte van Zoraxy +- [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 -- [ ] Omschakelen naar Fulcrum in de umbrelOS-instellingen en controleren dat het zonder aanpassing werkt. - **Wacht nog op één ding, en dat is tijd: de eerste sync van Fulcrum, op 25-08-2026 op 72%.** - Omschakelen naar een backend die nog niet klaar is meet de sync en niet de app +- [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 diff --git a/Docs/Referenties/Umbrel-appstore-spec.md b/Docs/Referenties/Umbrel-appstore-spec.md index 5fc2a02..98e265b 100644 --- a/Docs/Referenties/Umbrel-appstore-spec.md +++ b/Docs/Referenties/Umbrel-appstore-spec.md @@ -455,6 +455,13 @@ Daarnaast krijgt een app de exports van zijn **afhankelijkheden** (§4). Dit is het antwoord op de vraag "moet de gebruiker kunnen kiezen tussen Electrs en Fulcrum": umbrelOS 1.3 doet dat al, en een app hoeft er niets voor te bouwen. +**Bevestigd op de machine op 27-08-2026.** Alles hieronder was tot dan afgeleid uit de bron van umbreld en +uit de drie manifesten, en nooit uitgeprobeerd. Na de eerste volledige sync van Fulcrum heeft de gebruiker +in de umbrelOS-instellingen omgeschakeld van Electrs naar Fulcrum. Electrum Gate hoefde niet aangepast te +worden, en daarna kreeg een wallet van buiten over TLS gewoon data terug. Het aliassen van `NODE_IP` en +`NODE_PORT` werkt dus zoals hier beschreven. Wat het omschakelen zelf nog liet zien: umbrelOS herstart de +afnemende app erbij, en de app kwam terug met dezelfde certificaatkeuze. + **Het mechanisme.** Een app declareert een afhankelijkheid op een app-id, en een andere app kan zeggen dat hij die rol vervult: @@ -554,8 +561,11 @@ De poorten die de drie backends op de **host** publiceren: | Fulcrum | 50002 | | ElectrumX | 50001 intern, 50003 als publieke poort | -Deze app publiceert nu zelf 50002 voor stunnel. Met Fulcrum geïnstalleerd botst dat en start de app niet. -De keuze hierover staat als open punt in het plan **Configuratie**. +**Opgelost, en op 27-08-2026 in de praktijk bevestigd.** Hier stond dat deze app zelf 50002 publiceerde +voor stunnel, en dat de app daardoor met Fulcrum erbij niet zou starten. Dat gold voor de oude opstelling. +Open punt 1 van het plan **Configuratie** is op 19-08-2026 beslist op **50022**, en de handmatige +stunnel-container die 50002 vasthield is op 25-08-2026 weggehaald. Sinds de omschakeling draaien Fulcrum op +50002 en Electrum Gate op 50022 naast elkaar op dezelfde host. ## 5. Wat deze repo nu níet heeft