From bf8bedcda926860a5e052d73d2cb638b6a24bcad Mon Sep 17 00:00:00 2001 From: Harmen Date: Fri, 28 Aug 2026 13:08:31 +0200 Subject: [PATCH] Sessie afgesloten: waar we staan met Evolu Relay De app draait als 0.3.0 en wordt gebruikt: kale relay met een eigen eigenaars-allowlist, statuspagina achter de umbrelOS-inlog, en TLS via Zoraxy op een eigen subdomein waar de handshake 101 geeft. De desktop synchroniseert eroverheen, met een geleerde eigenaar en een gesloten deur erna. iOS blijft open, en het vermoeden van vanmiddag is weerlegd in plaats van bevestigd: TLS was niet de verklaring. Met een geldig certificaat, een opgeslagen URL en de sync-schakelaar aan komt er nog steeds niets aan, en sinds 0.3.0 is dat hard gemeten in plaats van afgeleid: het relay-proces logt elke eigenaar die zich meldt, ook bekende en geweigerde, en van de telefoon verschijnt niets. Daarmee is de hele app vrijgepleit. De volgende stap staat als eerste taak en kost een minuut: kijken of het verzoek de telefoon uberhaupt verlaat, via het log van Zoraxy. Doordat iOS niet meedoet is de leeskant nooit gemeten. Dat is de tweede taak en hij hangt aan de eerste, want iOS zou die tweede client zijn. Proefopstelling is hiermee volledig ingehaald: beide vragen die dat plan nog bezat zijn beantwoord, en wat er verder in stond gaat over een pakket dat niet meer bestaat. Dat staat als een beslissing in de index, niet als een daad. De reparatie aan Electrum Gate heeft een eigen entry gekregen in het plan Webinterface, want die app ging kapot door de tweede app en dat hoort daar nagelezen te kunnen worden. Tests: alle vier groen (34, 54, 39 en 61 goed, 0 fout). Co-Authored-By: Claude Opus 5 --- Docs/CONTINUE_HERE.md | 6 ++-- .../Actief/005-Webinterface/PROGRESS.md | 13 ++++++++ Docs/Plannen/Actief/008-Umbrelapp/OPEN.md | 33 ++++++++++++++++--- Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md | 22 +++++++++++++ Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md | 23 ++++++++----- 5 files changed, 80 insertions(+), 17 deletions(-) diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index e8a3571..9d20c5b 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -23,15 +23,15 @@ | 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.** **De proef is op 28-08-2026 geslaagd:** Suite op de desktop stuurde elf labels naar de kale `evoluhq/relay:latest` en die kwamen aan, dus de protocolversie klopt en het verbouwen kan beginnen. Meting en testprotocol in `PLAN.md` §6a. Twee dingen bleven ongemeten: de leeskant (geen tweede cliënt) en iOS, dat geen enkele verbinding maakt (open punt 9, vermoeden TLS). 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 | 🔶 | +| [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. **Wat nog open staat is iOS**, dat geen enkele verbinding maakt terwijl alles ingesteld is, en daardoor is de leeskant nooit gemeten. Volgende stap is één minuut werk: kijken of het verzoek de telefoon überhaupt verlaat, via het log van Zoraxy. Zie open punt 9, waar staat wat er al uitgesloten is 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 | **Eerst beslissen of dit plan nog bestaansrecht heeft.** Fase 1 is af, maar fase 2 en 3 zijn ingehaald: het pakket staat al op de Umbrel (sinds 27-08-2026 uitgezet, maar geïnstalleerd), dus een lokale opstelling ernaast meet minder en kost meer. Wat overblijft zijn twee vragen die al als blokkade in **Umbrelapp** staan, en die horen op één plek | 🔶 | +| [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** | 🔶 | ## B - Los oppakbaar (geen blokkade, geen vaste volgorde) | Plan | App | Volgende stap | Status | |-|-|-|-| -| [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).** 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) | 🔶 | +| [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 | 🔶 | ## C - Wacht op afhankelijkheid diff --git a/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md b/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md index bfcd25c..9294324 100644 --- a/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md +++ b/Docs/Plannen/Actief/005-Webinterface/PROGRESS.md @@ -1,5 +1,18 @@ # Voortgang - Webinterface +## 28-08-2026 - deze pagina ging kapot door een andere app, en dat was te voorzien + +Geen werk aan dit plan; wel een reparatie die er thuishoort. `nginx.conf.template` proxyde naar +`http://agent:8000`, en dat werkte zolang Electrum Gate de enige app met een service `agent` was. Sinds +Evolu Relay er een heeft, verdeelt Docker die naam over beide containers: van tien verzoeken kwamen er vijf +bij de verkeerde app uit. Op de pagina zag dat eruit als waarden die kwamen en gingen. + +Beide apps wijzen nu naar `_agent_1`. Dat is dezelfde les die al in de compose stond over de +servicenaam `server`, en die stond alleen daar en niet in de nginx-config. `test_appstore_vorm.py` toetst +het nu voor elke app, dus deze fout kan niet meer stil terugkomen. + +Uitgerold als 0.0.23. **Geraakt:** `nginx.conf.template` en `umbrel-app.yml`. **Tests:** alle vier groen. + ## 27-08-2026 - de nieuwe widget vond meteen een fout, en die zat in de widget zelf De gebruiker heeft 0.0.17 bekeken: het werkt, met een lijst bijstellingen. Verwerkt in 0.0.18. De diff --git a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md index ab85ebb..1eca833 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md @@ -96,11 +96,34 @@ het internet bereikbaar zonder enige toegangscontrole. De kale relay op een LAN is iets anders dan de kale relay op een publiek subdomein. - **Goedkoopste volgende meting, en die kost niets:** op de telefoon controleren of de synchronisatie - überhaupt aangaat en of het apparaat om een bevestiging vraagt. Is het antwoord nee, dan is TLS niet de - verdachte en zou een certificaat niets opgelost hebben. - **Moment:** nadat de verbouwing staat; de desktop werkt en dat is genoeg om verder te bouwen · - **Eigenaar:** gebruiker + **Stand aan het eind van 28-08-2026, en het vermoeden is weerlegd.** TLS is er inmiddels: Zoraxy zet + het subdomein door naar de relay, de handshake-curl geeft `101 Switching Protocols`, en de Mac + synchroniseert daar overheen. Op iOS is daarna alles ingesteld wat er in te stellen valt: de relay-URL + staat opgeslagen en overleeft een herstart, en de aparte schakelaar voor Suite Sync staat aan. De app + toont geen enkele foutmelding. + + **En er komt nog steeds niets aan.** Dat is nu hard gemeten en geen indruk meer: sinds 0.3.0 logt het + relay-proces élke eigenaar die zich meldt, ook een bekende en ook een geweigerde. Bij elke verbinding + van de Mac verschijnt `owner ... connected`; van de telefoon verschijnt niets. Geen verbinding, geen + weigering, geen poging. Daarmee is de hele app vrijgepleit: allowlist, quota, beleid en opslag komen er + niet aan te pas. + + Ook uitgesloten: dat het aan de wallet zou liggen. Een `OwnerId` hoort bij een wallet en niet bij een + apparaat (zie [Upstream-evolu-relay.md](../../../Referenties/Upstream-evolu-relay.md) §0 punt 5), dus + dezelfde wallet op iOS zou een `OwnerId` opleveren die al toegelaten is. Een andere wallet zou als + geweigerde poging zichtbaar zijn geweest. Geen van beide gebeurt. + + **Wat nog niet gemeten is, en dat is de volgende stap:** verlaat het verzoek de telefoon überhaupt? + Zoraxy logt elk verzoek dat het subdomein bereikt. Open op de iPhone `https:///` in Safari + en kijk of die regel verschijnt. De pagina toont niets, want het is een WebSocket-server, maar de + logregel is het antwoord: + + - **wél een regel** → route, DNS, certificaat en Zoraxy zijn in orde, en dan belt de app gewoon niet. + Dat is dan een tekortkoming van de cliënt en niet van dit pakket; + - **geen regel** → de telefoon bereikt die naam niet. Dan is het DNS of routering: mobiel netwerk in + plaats van WiFi, of een subdomein dat alleen in de interne DNS bestaat. + + **Moment:** de volgende sessie, als eerste taak van dit punt · **Eigenaar:** gebruiker 8. **Welke limiter komt er op de kale relay?** - **beslist op 28-08-2026: weg 1, de relay uitbreiden via `createRelay`.** Het ontwerp staat in [PLAN.md](PLAN.md) §4g en bleek veel kleiner dan hieronder diff --git a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md index daff9cf..cf6ad9a 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md @@ -3,6 +3,28 @@ > 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). +## 28-08-2026 (slot) - de app draait en wordt gebruikt; iOS doet niet mee + +Het pakket is af en geïnstalleerd als 0.3.0. De Mac synchroniseert eroverheen, over TLS via Zoraxy op een +eigen subdomein; de handshake-curl geeft daar `101 Switching Protocols`. De allowlist werkt in beide +richtingen: een eigenaar geleerd, de deur gesloten, en een tweede eigenaar die daarna aanklopte alsnog +toegelaten met de knop op de pagina. + +**Twee dingen die uit echt gebruik kwamen en die geen nadenken had opgeleverd.** Eén cliënt kan meer dan +één eigenaar hebben, want een `OwnerId` hoort bij een wallet en niet bij een apparaat; "de eerste eigenaar +wint" sloot daarmee de tweede wallet van de gebruiker buiten. En de korte containernaam `agent` is op het +gedeelde Docker-netwerk niet uniek, waardoor de helft van de verzoeken bij Electrum Gate uitkwam en die app +kapotging. Beide zijn gerepareerd, de tweede met een toets erop. + +**iOS blijft open en het vermoeden is weerlegd.** TLS was niet de verklaring: met een geldig certificaat, +een opgeslagen URL en de sync-schakelaar aan komt er nog steeds niets aan. Sinds 0.3.0 logt de relay élke +eigenaar die zich meldt, ook bekende en geweigerde, en van de telefoon verschijnt niets. De volgende stap +staat in [OPEN.md](OPEN.md) punt 9: kijken of het verzoek de telefoon überhaupt verlaat, via het log van +Zoraxy. + +**Geraakt:** de hele app-map, `tools/evolu-relay/`, `tests/`, `CLAUDE.md`, `whatsnext-electrum-gate/` en de +documentatie. **Tests:** alle vier groen. + ## 28-08-2026 (avond) - het pakket is omgebouwd: relay, agent en pagina De app-map is nu de kale relay met onze allowlist eromheen. De poorten zijn omgedraaid: de statuspagina diff --git a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md index 8aaf6a6..6d7c3ad 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md @@ -19,13 +19,13 @@ van 40960 naar 49152 bytes. **De protocolversie klopt**, en daarmee is de richting uit [OPEN.md](OPEN.md) punt 6 gemeten in plaats van verwacht. Het protocol en alle metingen staan in [PLAN.md](PLAN.md) §6a -- [ ] **De leeskant nog meten.** Er is geen tweede cliënt geweest, dus dat een ander apparaat die labels - terugkrijgt is niet gezien. **Eigenaar: gebruiker** -- [ ] **Uitzoeken waarom de iOS-app geen verbinding maakt.** Het veld voor de relay-URL bestaat daar, - valideert op `http(s)://` en onthoudt zijn waarde, maar er komt geen enkele poging aan op poort 4000. - Nu de desktop bewijst dat de relay in orde is, is dit een schone vraag geworden: het ligt aan de app - of aan het platform, niet aan ons. Zonder antwoord werkt de app alleen op de desktop, en dat scheelt - voor de waarde van dit hele plan +- [ ] **Kijken of het verzoek de iPhone überhaupt verlaat.** Dit is de volgende stap van dit plan, en hij + kost een minuut: open op de telefoon `https:///` in Safari en kijk of Zoraxy een regel + logt. Wél een regel betekent dat de app niet belt; geen regel betekent dat de telefoon die naam niet + bereikt. Zie [OPEN.md](OPEN.md) punt 9 voor alles wat al uitgesloten is. **Eigenaar: gebruiker** +- [ ] **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 hangt aan de vorige taak: iOS zou die tweede cliënt zijn. + **Eigenaar: gebruiker** - [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 @@ -38,8 +38,13 @@ ## Fase 5 - De verbouwing naar de kale relay -Nog niets van begonnen. De volgorde is bewust: eerst het programma dat de limiter draagt, dan de app -eromheen, want de compose hangt af van wat dat programma nodig heeft. +**Op 28-08-2026 in één sessie gedaan en op het apparaat draaiend, versie 0.3.0.** Wat er staat: het eigen +relay-programma met de allowlist, het bouwrecept, de compose met de omgedraaide poorten, de statuspagina, en +TLS via Zoraxy op een eigen subdomein. De Mac synchroniseert eroverheen, met een geleerde eigenaar en een +gesloten deur erna. + +Wat er niet staat: iOS doet niets mee, en daardoor is de leeskant nooit gemeten. Beide staan hierboven bij +"Volgende stap". - [x] **Het eigen relay-programma geschreven (28-08-2026).** `tools/evolu-relay/src/`: `policy.js` met het beleid als pure functies, `store.js` voor de staat op schijf, en `index.js` dat `createRelay`