From e4a87473075145662e8e0b5dc9049dbc594479a3 Mon Sep 17 00:00:00 2001 From: Harmen Date: Fri, 28 Aug 2026 13:59:15 +0200 Subject: [PATCH] De leeskant is bewezen, en daarmee is het doel van Umbrelapp gehaald 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 --- Docs/CONTINUE_HERE.md | 6 +- .../OPEN.md | 0 .../PLAN.md | 0 .../PROGRESS.md | 0 .../TAKEN.md | 0 .../Actief/007-Proefopstelling/TAKEN.md | 5 +- Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md | 10 ++- Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md | 67 +++++++++++-------- 8 files changed, 54 insertions(+), 34 deletions(-) rename Docs/Plannen/Actief/{006-Eigenimage => 004-Eigenimage}/OPEN.md (100%) rename Docs/Plannen/Actief/{006-Eigenimage => 004-Eigenimage}/PLAN.md (100%) rename Docs/Plannen/Actief/{006-Eigenimage => 004-Eigenimage}/PROGRESS.md (100%) rename Docs/Plannen/Actief/{006-Eigenimage => 004-Eigenimage}/TAKEN.md (100%) diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index 693b15a..b8df240 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -23,14 +23,14 @@ | Plan | App | Volgende stap | Status | |-|-|-|-| -| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Dit is de focus vanaf 27-08-2026, gekozen door de gebruiker, en de app staat op dit moment uit.** Uit de broncode van Suite: bij een eigen relay-URL registreert de cliënt geen eigenaar, terwijl Trezor's relay iedereen zonder limietenrij weigert. **Richting gekozen op 27-08-2026: kaal, met een eigen limiter en een statuspagina erop.** **Op 28-08-2026 verbouwd, uitgerold als 0.3.0 en in gebruik.** De kale relay met een eigen eigenaars-allowlist, een statuspagina achter de umbrelOS-inlog, en TLS via Zoraxy op een eigen subdomein; de desktop synchroniseert eroverheen. **iOS is verklaard en het ligt niet aan dit pakket:** de `OwnerId` wordt op de Trezor afgeleid, en een model dat niet aan een iPhone kan geeft geen sleutel, dus slaat Suite een label daar lokaal op en doet verder niets, zonder melding (open punt 9, met bronregels). **Wat daardoor open blijft is de leeskant:** dat een tweede apparaat de labels terugkrijgt is nooit gezien, en daar is een tweede cliënt voor nodig die wél een sleutel kan afleiden Let op: kaal gaan haalt de énige bescherming weg die er nu is, dus de limiter is voorwaarde en geen extraatje, en de huidige quota-manager is er niet voor te hergebruiken. Zie open punt 6, 8 en 2 | 🔶 | -| [Eigenimage](Plannen/Actief/006-Eigenimage/TAKEN.md) | Gate | **Klaar om te beginnen, maar ligt stil op verzoek van de gebruiker** (27-08-2026): hij gaat eerst verder met Evolu Relay. Het register is beslist (Gitea, bij inlevering opnieuw kijken), dus fase 1 kan zo starten: het bouwrecept in `tools/electrum-gate/`, multi-arch, anoniem te halen. Let op §1: het lost níet het updateprobleem op, want dat bestaat niet meer | ⬜ | -| [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | **Dit plan is op 28-08-2026 volledig ingehaald en kan waarschijnlijk naar het archief.** Beide vragen die het nog bezat zijn beantwoord door **Umbrelapp**: Trezor Suite accepteert een eigen relay op de desktop, en een eigenaar registreren is niet meer nodig sinds de quota-manager eruit is. Wat er in fase 2 en 3 stond gaat over een pakket dat niet meer bestaat. **Eén beslissing van de gebruiker: opheffen of laten staan** | 🔶 | +| [Eigenimage](Plannen/Actief/004-Eigenimage/TAKEN.md) | Gate | **Gepromoveerd op 28-08-2026, want waar het op wachtte is klaar:** de gebruiker wilde eerst Evolu Relay afmaken en dat doel is gehaald. Het register is beslist (Gitea, bij inlevering opnieuw kijken), dus fase 1 kan zo starten: het bouwrecept in `tools/electrum-gate/`, multi-arch, anoniem te halen. Er ligt nu ook een voorbeeld naast: `tools/evolu-relay/` doet precies dit, inclusief de valkuil dat een lokaal gebouwde tag voor umbreld onbereikbaar is. Let op §1: het lost níet het updateprobleem op, want dat bestaat niet meer | ⬜ | ## B - Los oppakbaar (geen blokkade, geen vaste volgorde) | Plan | App | Volgende stap | Status | |-|-|-|-| +| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Van A naar B op 28-08-2026: het doel is gehaald.** De app draait als 0.3.0 met een eigen eigenaars-allowlist, een statuspagina achter de umbrelOS-inlog en TLS via Zoraxy op een eigen subdomein, en Trezor Suite synchroniseert eroverheen **heen én terug**; die tweede richting is bewezen met een tweede gebruikersaccount op de Mac dat met een lege database alle labels binnenkreeg. iOS doet niet mee en dat ligt niet aan dit pakket: de `OwnerId` wordt op de Trezor afgeleid, en een model dat niet aan een iPhone kan geeft geen sleutel (open punt 9, met bronregels). Wat nog openstaat is klein en wacht nergens op: een herstart van de app overleven, `python:3-alpine` en `nginx:alpine` pinnen, en data per eigenaar kunnen wissen | 🔶 | +| [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | **Volledig ingehaald op 28-08-2026 en klaar voor het archief.** Beide vragen die het nog bezat zijn beantwoord door **Umbrelapp**: Trezor Suite accepteert een eigen relay, en een eigenaar registreren is niet meer nodig sinds de quota-manager eruit is. Wat er in fase 2 en 3 stond gaat over een pakket dat niet meer bestaat. **Eén beslissing van de gebruiker: opheffen of laten staan** | 🔶 | | [Webinterface](Plannen/Actief/005-Webinterface/TAKEN.md) | Gate | **De pagina is af en goedgekeurd, op een breed scherm én op een telefoon (27-08-2026).** Op 28-08-2026 kapotgegaan door de tweede app en gerepareerd in 0.0.23: de korte containernaam `agent` is op het gedeelde Docker-netwerk niet uniek. Van A naar B: wat er nog staat wacht op tijd (het activiteitenlog een etmaal laten lopen) of is een beslissing van de gebruiker (waar Nginx Proxy Manager zijn certificaten neerzet, en of Zoraxy een harde afhankelijkheid wordt) | 🔶 | | [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 | 🔶 | diff --git a/Docs/Plannen/Actief/006-Eigenimage/OPEN.md b/Docs/Plannen/Actief/004-Eigenimage/OPEN.md similarity index 100% rename from Docs/Plannen/Actief/006-Eigenimage/OPEN.md rename to Docs/Plannen/Actief/004-Eigenimage/OPEN.md diff --git a/Docs/Plannen/Actief/006-Eigenimage/PLAN.md b/Docs/Plannen/Actief/004-Eigenimage/PLAN.md similarity index 100% rename from Docs/Plannen/Actief/006-Eigenimage/PLAN.md rename to Docs/Plannen/Actief/004-Eigenimage/PLAN.md diff --git a/Docs/Plannen/Actief/006-Eigenimage/PROGRESS.md b/Docs/Plannen/Actief/004-Eigenimage/PROGRESS.md similarity index 100% rename from Docs/Plannen/Actief/006-Eigenimage/PROGRESS.md rename to Docs/Plannen/Actief/004-Eigenimage/PROGRESS.md diff --git a/Docs/Plannen/Actief/006-Eigenimage/TAKEN.md b/Docs/Plannen/Actief/004-Eigenimage/TAKEN.md similarity index 100% rename from Docs/Plannen/Actief/006-Eigenimage/TAKEN.md rename to Docs/Plannen/Actief/004-Eigenimage/TAKEN.md diff --git a/Docs/Plannen/Actief/007-Proefopstelling/TAKEN.md b/Docs/Plannen/Actief/007-Proefopstelling/TAKEN.md index 7bfeced..99a42bf 100644 --- a/Docs/Plannen/Actief/007-Proefopstelling/TAKEN.md +++ b/Docs/Plannen/Actief/007-Proefopstelling/TAKEN.md @@ -1,6 +1,9 @@ # Taken - Proefopstelling -> Prioriteit: **A** | Afhankelijk van: - +> Prioriteit: **B** | Afhankelijk van: - +> +> Van A naar B op 28-08-2026: er valt hier niets meer te doen behalve beslissen of het plan wordt +> opgeheven. Alle vragen die het bezat zijn door **Umbrelapp** beantwoord. > > Actief sinds 25-08-2026, bij het inrichten van dit project. > diff --git a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md index f61f387..1f9915e 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md @@ -23,9 +23,13 @@ van de gebruiker: de `OwnerId` wordt op de Trezor afgeleid, en zijn model kan no apparaat kent de app geen device state, en dan slaat Suite een label lokaal op en doet verder niets, zonder melding. Bronregels in [OPEN.md](OPEN.md) punt 9. -Daardoor blijft de leeskant ongemeten, en dat is nu de belangrijkste openstaande controle. Er is een tweede -cliënt voor nodig die wél een sleutel kan afleiden; een tweede desktop met dezelfde Trezor is de kortste -weg. +**En de leeskant is aan het eind van de dag alsnog bewezen**, met een tweede gebruikersaccount op dezelfde +Mac. Dat is zelfs 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. + +**Daarmee is het doel van dit plan gehaald:** een tweede app in deze store, geïnstalleerd op de Umbrel, met +Trezor Suite die erop synchroniseert, heen en terug. Wat er nog openstaat is klein: een herstart van de app +overleven, twee images pinnen, en het wissen van data per eigenaar. **Geraakt:** de hele app-map, `tools/evolu-relay/`, `tests/`, `CLAUDE.md`, `whatsnext-electrum-gate/` en de documentatie. **Tests:** alle vier groen. diff --git a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md index bfd3a7c..90d31b1 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md @@ -1,6 +1,8 @@ # Taken - Umbrelapp -> **App: Evolu Relay.** Prioriteit: **A** | Afhankelijk van: – +> **App: Evolu Relay.** Prioriteit: **B** | Afhankelijk van: – +> +> Van A naar B op 28-08-2026: het doel van dit plan is gehaald en het restwerk wacht nergens op. > > Actief sinds 25-08-2026. Gepromoveerd uit `Masterplannen/` omdat de gebruiker besloot het pakket meteen te > maken. De afhankelijkheid op **Proefopstelling** is daarmee geen blokkade meer maar een parallelle bron: @@ -24,11 +26,11 @@ gekoppeld worden. Zonder apparaat kent de app geen `deviceStaticSessionId`, en dan slaat Suite een label lokaal op en doet verder niets, zonder melding. De hele redenering met bronregels staat in [OPEN.md](OPEN.md) punt 9 -- [ ] **De leeskant nog meten.** Er is nooit een tweede werkende cliënt geweest, dus dat een ander apparaat - de labels terugkrijgt is niet gezien. **Dit is nu de belangrijkste openstaande controle van dit plan**, - en er is een tweede cliënt voor nodig die wél een sleutel kan afleiden: een tweede desktop met - dezelfde Trezor is de kortste weg. iOS valt af zolang het apparaat niet aan de telefoon kan. - **Eigenaar: gebruiker** +- [x] **De leeskant gemeten en in orde (28-08-2026).** Getest met een tweede gebruikersaccount op dezelfde + Mac, en dat is schoner dan een tweede apparaat: die installatie heeft een **lege** lokale + Evolu-database, dus alles wat daar verschijnt kan alleen van de relay komen. Dezelfde Trezor en + dezelfde wallet, dus dezelfde `OwnerId` en geen nieuwe eigenaar. De labels kwamen door. Daarmee zijn + beide richtingen bewezen - [x] **Besloten wat er met het huidige pakket gebeurt (28-08-2026): het gaat eruit.** De relay van Trezor, de quota-manager en de Postgres vervallen. Wat ervoor in de plaats komt staat in [PLAN.md](PLAN.md) §4g en §4h @@ -91,12 +93,12 @@ Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten. - [x] **De fout die dat opleverde is gerepareerd:** de korte containernaam `agent` is op het gedeelde Docker-netwerk niet uniek, dus de helft van de verzoeken kwam bij Electrum Gate uit. Beide apps wijzen nu naar `_agent_1`, en `test_appstore_vorm.py` toetst dat voortaan -- [ ] **De app opnieuw installeren in plaats van updaten.** De gebruiker heeft de oude installatie op - 28-08-2026 weggehaald; dat is ook de nette weg, want niet elk bestand bereikt een bestaande - installatie via een update -- [ ] **Zoraxy inrichten** op het eigen subdomein met TLS, doorverwijzend naar de relay-poort, met de - WebSocket-upgrade aan. Testen met de handshake-curl uit [PLAN.md](PLAN.md) §6a stap 3, met de - publieke naam in plaats van het IP. **Eigenaar: gebruiker** +- [x] **De app opnieuw geïnstalleerd in plaats van geüpdatet (28-08-2026).** De oude installatie was er + eerst afgehaald, en dat was ook de nette weg: niet elk bestand bereikt een bestaande installatie via + een update +- [x] **Zoraxy ingericht (28-08-2026)** op een eigen subdomein met TLS, doorverwijzend naar de relay-poort, + met de WebSocket-upgrade aan. De handshake-curl uit [PLAN.md](PLAN.md) §6a stap 3 geeft daar + `101 Switching Protocols`, en de desktop synchroniseert eroverheen ## Fase 1 - De app-map @@ -127,9 +129,11 @@ Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten. `sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204@sha256:2fe1e9e9…`, op beide services. Dat moest wel: zie fase 4. **Let op dat dit één architectuur is** (amd64), want er is alleen amd64 geduwd. Voor de officiele store hoort er een multi-arch index-digest met arm64 in; dat staat bij **Publicatie-Relay** -- [ ] **`postgres:17-alpine` pinnen op de multi-arch index-digest.** Kan meteen, met - `docker buildx imagetools inspect`, en het is het laatste ongepinde in deze app. Staat als TODO in de - compose +- [x] **De Postgres-pin is vervallen (28-08-2026):** die database zit niet meer in de app +- [ ] **`python:3-alpine` en `nginx:alpine` pinnen op hun multi-arch index-digest.** Dat zijn de twee laatste + ongepinde images van deze app, en ze staan als TODO in de compose. Met + `docker buildx imagetools inspect` op de Umbrel. Electrum Gate heeft precies dezelfde twee openstaan, + dus dit is één handeling voor beide apps ## Fase 3 - Het bouwrecept @@ -160,18 +164,27 @@ Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker `quota-manager` en `db`, met `db` op healthy en de app-proxy op 3851. De lokale images waren vooraf weggehaald, dus de pull uit het register is echt gedaan en het hele pad is bewezen: broncode → bouwrecept → register → gepinde digest → installatie -- [ ] **Gecontroleerd of het databaseschema zichzelf aanmaakt.** Niet uitgezocht, en dit is de eerste - plek waar het misgaat als het antwoord nee is. Kijk in de logs van de relay-container -- [ ] Trezor Suite naar `:3851` laten wijzen en een label synchroniseren. **Dit is de enige - controle die telt**, en hij kan mislukken op de eigenaarsregistratie zonder dat er iets mis is met het - pakket -- [ ] De app gestopt en gestart, en de database heeft het overleefd -- [ ] Gecontroleerd dat het toevoegen van deze app Electrum Gate niet raakt +- [x] **De schemavraag is vervallen (28-08-2026):** de kale relay maakt zijn SQLite bij de start zelf aan, + en de Postgres waar deze vraag over ging zit niet meer in de app +- [x] **Trezor Suite synchroniseert (28-08-2026), heen én terug.** Niet naar 3851 zoals hier stond maar naar + 3852: de poorten zijn omgedraaid, want 3851 draagt nu de statuspagina. Zie de "Volgende stap" + hierboven +- [ ] De app gestopt en gestart, en de data heeft het overleefd. **Nog niet gedaan**, en het is de laatste + controle van dit plan die er echt toe doet: de allowlist en de labels staan onder + `${APP_DATA_DIR}/data/relay`, dus een herstart hoort niets te kosten. **Eigenaar: gebruiker** +- [x] **Gecontroleerd of het toevoegen van deze app Electrum Gate raakt (28-08-2026), en dat deed het.** + Niet zoals verwacht via poorten of geheugen, maar via een naam: beide apps hadden een service `agent` + op hetzelfde Docker-netwerk, en Docker verdeelde de naam over allebei. De pagina van Gate ging daardoor + stuk. Gerepareerd in beide apps, met een toets in `test_appstore_vorm.py` zodat het niet stil + terugkomt ## Geblokkeerd / wacht op -- [ ] **Hoe registreer je een eigenaar bij de quota-manager?** Zonder antwoord kan er niet gesynchroniseerd - worden, ook al draait alles. Wacht op **Proefopstelling** fase 1; begin bij `bruno-collection/` in de - bovenstroomse repo -- [ ] **Accepteert Trezor Suite dit adres, en in welke vorm?** Wacht op **Proefopstelling**, "Volgende - stap". Als het antwoord nee is, is dit pakket zonder waarde +**Leeg sinds 28-08-2026.** Beide blokkades zijn opgeheven en ze staan hier voor de geschiedenis. + +- [x] **"Hoe registreer je een eigenaar bij de quota-manager?"** is vervallen: de quota-manager zit niet + meer in de app, en de kale relay kent geen limietentabel. De vraag bestond alleen bij het pakket van + Trezor +- [x] **"Accepteert Trezor Suite dit adres, en in welke vorm?"** is beantwoord: ja, met `http(s)://` en + desgewenst een pad, zowel via het dev-utils-veld als via de gewone "Custom server"-instelling. Gemeten + op de desktop, heen en terug