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>
This commit is contained in:
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
| Plan | App | Volgende stap | Status |
|
| 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
|
## C - Wacht op afhankelijkheid
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,9 @@
|
|||||||
- **De container is weg (25-08-2026).** Hij bond poort **50002**, precies de poort die Fulcrum op de
|
- **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
|
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
|
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
|
- **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
|
`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
|
bewezen is dat de app na een herstart vanzelf terugkomt. De volgorde-val die hier stond (de container
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
> Chronologisch sessielog, nieuwste bovenaan. Kort: 3 tot 6 regels per entry. Wat er is gebeurd en
|
> 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).
|
> 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
|
## 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
|
Evolu Relay komt erbij en umbrelOS leest per store één repo, dus de repo `ElectrumTLS` is opgegaan in
|
||||||
|
|||||||
@@ -11,9 +11,20 @@
|
|||||||
> **Bijgewerkt 25-08-2026:** alles wat hier nog openstaat wacht op iets dat vanzelf komt (de eerste sync
|
> **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
|
> van Fulcrum, een herstart) of ligt bij de gebruiker (de oude repo weghalen). Er is niets meer dat een
|
||||||
> sessie zelf kan oppakken.
|
> 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
|
## 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
|
- [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
|
`~/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
|
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.**
|
- [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
|
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
|
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
|
- [x] **Vervallen: ingehaald door fase 4 (opgemerkt 27-08-2026).** Deze regel wilde de logica uit
|
||||||
`*.template` zetten, anders levert een `git push` geen update op bij een bestaande installatie
|
`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
|
## Fase 3 - Backend-onafhankelijk
|
||||||
|
|
||||||
@@ -94,8 +107,10 @@ Daarna, in deze volgorde:
|
|||||||
en `NODE_PORT` worden door Fulcrum en ElectrumX gealiast
|
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;
|
- [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
|
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
|
- [x] **Op de Umbrel geverifieerd: omgeschakeld naar Fulcrum, werkt zonder aanpassing (27-08-2026).**
|
||||||
(staat ook in fase 6)
|
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
|
## 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
|
- [ ] **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
|
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
|
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
|
- [x] **Vervanger gedaan, en gratis meegekomen met de omschakeling (27-08-2026):** umbrelOS stopte en
|
||||||
`app-script start`-pad als het opstarten na een herstart, maar bewijst niet de volgorde ten
|
startte de app zelf omdat zijn afhankelijkheid wijzigde, en hij kwam terug met dezelfde
|
||||||
opzichte van Zoraxy
|
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
|
- [ ] 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
|
- [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
|
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
|
blokkade voor de Fulcrum-test weg die je zelf kon opheffen. Het externe `umbrel_main_network` blijft
|
||||||
staan; dat verwijdert compose nooit
|
staan; dat verwijdert compose nooit
|
||||||
- [ ] Omschakelen naar Fulcrum in de umbrelOS-instellingen en controleren dat het zonder aanpassing werkt.
|
- [x] **Omgeschakeld naar Fulcrum in de umbrelOS-instellingen. Gelukt, zonder aanpassing (27-08-2026),**
|
||||||
**Wacht nog op één ding, en dat is tijd: de eerste sync van Fulcrum, op 25-08-2026 op 72%.**
|
nadat Fulcrum was uitgesynct. Bevestigd langs alle drie de wegen: een wallet van buiten over TLS op
|
||||||
Omschakelen naar een backend die nog niet klaar is meet de sync en niet de app
|
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
|
- [ ] 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
|
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
|
`entrypoint.sh` uit die map) speelt niet meer
|
||||||
|
|||||||
@@ -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
|
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.
|
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
|
**Het mechanisme.** Een app declareert een afhankelijkheid op een app-id, en een andere app kan zeggen
|
||||||
dat hij die rol vervult:
|
dat hij die rol vervult:
|
||||||
|
|
||||||
@@ -554,8 +561,11 @@ De poorten die de drie backends op de **host** publiceren:
|
|||||||
| Fulcrum | 50002 |
|
| Fulcrum | 50002 |
|
||||||
| ElectrumX | 50001 intern, 50003 als publieke poort |
|
| 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.
|
**Opgelost, en op 27-08-2026 in de praktijk bevestigd.** Hier stond dat deze app zelf 50002 publiceerde
|
||||||
De keuze hierover staat als open punt in het plan **Configuratie**.
|
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
|
## 5. Wat deze repo nu níet heeft
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user