diff --git a/Docs/CONTINUE_HERE.md b/Docs/CONTINUE_HERE.md index ba7ade4..9ad2523 100644 --- a/Docs/CONTINUE_HERE.md +++ b/Docs/CONTINUE_HERE.md @@ -24,7 +24,7 @@ | Plan | App | Volgende stap | Status | |-|-|-|-| | [Webinterface](Plannen/Actief/005-Webinterface/TAKEN.md) | Gate | 0.0.10 op een telefoon nakijken, en het uploaden op het niet-gelukkige pad proberen met een sleutel die niet bij het certificaat hoort. Daarna open punt 5: laten controleren of de TLS-poort zélf antwoordt | 🔶 | -| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | De image bouwen op de Umbrel met `tools/evolu-relay/build.sh`. Dat is de enige stap tussen wat er in de repo staat en een installatie die kan slagen; daarna installeren en kijken of de drie containers blijven draaien | 🔶 | +| [Umbrelapp](Plannen/Actief/008-Umbrelapp/TAKEN.md) | Relay | **Hij draait sinds 25-08-2026**: gebouwd, in het eigen Gitea-register gezet, gepind en geïnstalleerd, drie containers omhoog. Nu in de logs van de relay kijken of het databaseschema zichzelf aanmaakt; daarna Trezor Suite naar `:3851` laten wijzen. "Draait" is hier nog geen "synchroniseert" | 🔶 | | [Proefopstelling](Plannen/Actief/007-Proefopstelling/TAKEN.md) | Relay | Controleren of Trezor Suite een eigen sync-server accepteert, en op welk platform. Dat is de goedkoopste weerlegging van het hele project en het kost een minuut in de interface. Daarna: hoe registreer je een eigenaar bij de quota-manager, want zonder dat weigert de relay iedereen | 🔶 | ## B - Los oppakbaar (geen blokkade, geen vaste volgorde) diff --git a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md index 05f4be6..b79eba5 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/OPEN.md @@ -9,22 +9,18 @@ ## Nog te beslissen -1. **Waar komt de image te staan zodra lokaal niet meer volstaat?** - Op 25-08-2026 is gekozen voor lokaal bouwen als eerste stap, en dat is een bewust tijdelijke keuze: de - app werkt dan alleen op die ene machine en herbouwen is handwerk. Drie richtingen, en ze zijn allemaal - verdedigbaar: +5. **Is de app bruikbaar voor iemand anders die deze store toevoegt?** + Nieuw op 25-08-2026, en het is de keerzijde van punt 1. De store is publiek, dus een vreemde kan hem + toevoegen en Evolu Relay installeren. Zijn Umbrel haalt de image dan uit + `sc.kamenier-hamer.nl` van de gebruiker. Dat gaat vandaag waarschijnlijk gewoon werken, en dat is + precies wat het een keuze maakt in plaats van een detail: je serveert dan images van je eigen server aan + onbekenden, en jouw uptime bepaalt of hun app installeert. Electrum Gate heeft dit niet, want die draait + op images uit Docker Hub. - - **het ingebouwde containerregister van de eigen Gitea.** Zelfde host als de store, geldig - TLS-certificaat, geen nieuw account. Nog na te kijken: staat het pakketregister aan, en mag er anoniem - uit gehaald worden. Zo ja, dan is dit de netste plek; - - **Docker Hub onder een eigen account.** De standaardweg, en verplicht als het ooit de officiële store - in gaat. Zet wel je naam op een publieke image van software van Trezor; lees dan eerst `LICENSE.md`, - dat door GitHub als "other" geclassificeerd staat; - - **lokaal laten.** Verdedigbaar zolang er één Umbrel is. De prijs is dat een herinstallatie ook een - herbouw is, en dat je dat over een half jaar niet meer weet. - - **Moment:** zodra de installatie uit fase 4 geslaagd is, en niet eerder: pas dan weet je of het pakket - iets waard is · **Eigenaar:** gebruiker + Drie richtingen: laten zoals het is; `disabled: true` in het manifest zolang de image niet op een neutrale + plek staat (dat veld bestaat in het schema); of de image naar Docker Hub duwen en het probleem weghalen. + **Moment:** als fase 4 helemaal af is, dus als bewezen is dat er iets te delen valt · **Eigenaar:** + gebruiker 2. **Komt er een statuspagina?** Electrum Gate heeft er een en die bleek in de praktijk het nuttigste deel van die app. Hier zou dat @@ -46,6 +42,25 @@ weg uit [PLAN.md](PLAN.md) §4b weer actueel: de rij met de hand in de database zetten. **Moment:** zodra **Proefopstelling** de registratievraag beantwoordt · **Eigenaar:** volgt uit dat plan +## Beslist + +1. **Waar komt de image te staan?** - **het ingebouwde containerregister van de eigen Gitea** + (25-08-2026), als `sc.kamenier-hamer.nl/sysop/evolu-relay`. + + Hier stond dat lokaal bouwen de eerste stap was en dat dit beslist zou worden "zodra lokaal niet meer + volstaat". Dat moment kwam dezelfde dag, en niet uit vrije keuze: **lokaal volstaat nooit.** umbreld haalt + élke image via de Docker Engine API op en niet via compose, dus een lokaal gebouwde tag is onbereikbaar en + de installatie faalt met `pull access denied` voordat er iets start. Met bron in + [Umbrel-appstore-spec.md](../../../Referenties/Umbrel-appstore-spec.md). + + Waarom Gitea en niet Docker Hub: zelfde host als de store, geldig certificaat, geen nieuw account, en de + eigenaar `sysop` staat publiek zodat anoniem halen werkt. Dat laatste is gecontroleerd met een uitgelogde + pull, en daarna bewezen door de installatie zelf met de lokale images vooraf weggehaald. + + Wat hiermee **niet** beslist is: Docker Hub blijft nodig zodra het de officiële store in gaat, en dan moet + er ook arm64 bij. Zie **Publicatie-Relay**. En lees dan eerst `LICENSE.md` van Trezor, dat door GitHub als + "other" geclassificeerd staat. + ## Bewust uitgesteld 4. **`SERVER_ENV` op `prod` of `dev`?** - `prod`, tot het tegendeel gemeten is (25-08-2026). diff --git a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md index 4f13c97..0f7cd5c 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/PROGRESS.md @@ -3,6 +3,39 @@ > 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). +## 25-08-2026 - hij draait, en de weg erheen liep via een verkeerde aanname + +Gebouwd op de Umbrel in 50 seconden, en toen twee keer misgegaan op dezelfde muur voordat die muur +begrepen was. + +**De installatie faalde met `pull access denied` op een image die lokaal gebouwd was.** Mijn eerste +verklaring kwam uit `app-script` van umbreld, waar `install` een `compose "${app}" pull` doet, en de +reparatie was `pull_policy: never`. Dat faalde identiek. De oorzaak stond in de stacktrace en niet in de +foutmelding: `at /opt/umbreld/node_modules/docker-modem/lib/modem.js:382`. **umbreld haalt élke image via +de Docker Engine API op en niet via compose**, dus `pull_policy` wordt nooit gelezen. `app-script` is de +legacy-compat-laag en niet het pad dat umbrelOS 1.x loopt. Les die breder is dan deze app: een bron die +overtuigend leest, is nog geen bron die het draaiende pad beschrijft. + +**Daarmee was "lokaal bouwen als eerste stap" geen keuze meer.** Elke image moet anoniem uit een register +komen. Dat werd het Gitea-register op dezelfde server als de store: `sc.kamenier-hamer.nl/sysop/evolu-relay`, +gepind op tag plus digest. Anoniem halen is eerst met een uitgelogde pull gecontroleerd, met dezelfde +valkuil als bij het klonen van de store (uitloggen in de context waarin je inlogde, anders meet je je eigen +sessie). + +**Daarna draaide hij in één keer.** Drie containers omhoog, `db` gezond, de app-proxy op 3851. De lokale +images waren vooraf weggehaald, dus de pull is echt gedaan en het hele pad is bewezen: broncode van Trezor → +bouwrecept → eigen register → gepinde digest → installatie. + +Kleinigheid met een staart: de gebruiker `umbrel` zit hier niet in de groep `docker`, dus bouwen vraagt +`sudo`. Dat komt bij elke herbouw terug en staat daarom in het plan. + +**Geraakt:** `whatsnext-evolu-relay/docker-compose.yml` en `umbrel-app.yml` (0.0.2), +`tools/evolu-relay/build.sh`, `Docs/Referenties/Umbrel-appstore-spec.md`, dit plan. +**Tests:** 32 goed 0 fout, 54 goed 0 fout en 39 goed 0 fout, niets overgeslagen. + +**Wat nog steeds niet bewezen is:** of het databaseschema zichzelf aanmaakt, of Trezor Suite dit adres +accepteert, en of een eigenaar te registreren is. "Draait" is hier nog geen "synchroniseert". + ## 25-08-2026 - plan werd actief, en het pakket staat er De gebruiker besloot het pakket meteen te maken in plaats van te wachten op de proefopstelling. Dat kon, diff --git a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md index 672f0e7..1f2c65f 100644 --- a/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md +++ b/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md @@ -9,10 +9,10 @@ ## Volgende stap -- [ ] **De image bouwen op de Umbrel met `tools/evolu-relay/build.sh`.** Dat is de enige stap tussen wat er - nu in de repo staat en een installatie die kan slagen. Het script haalt de broncode op commit - `c03a204` en bouwt de Dockerfile van Trezor; verwacht minuten, want er zit een `yarn install` en een - `yarn build` in. **Eigenaar: gebruiker** +- [ ] **In de logs van de relay kijken of het databaseschema zichzelf aanmaakt.** De drie containers staan + omhoog, maar "Up" is nog geen "werkt": de relay kan draaien en toch klagen over ontbrekende tabellen. + `sudo docker logs whatsnext-evolu-relay_relay_1`. Dit is nu het eerste punt waar het misgaat als het + misgaat. **Eigenaar: gebruiker** ## Fase 1 - De app-map @@ -38,9 +38,13 @@ submap, en `postgres:17-alpine` in plaats van `postgres` kaal - [x] **Healthcheck op de eigen database en gebruiker**, niet op `-d postgres` zoals bovenstrooms: die database bestaat hier niet, en dan is de controle groen op het verkeerde antwoord -- [ ] **De images pinnen op een digest.** `postgres:17-alpine` kan meteen, met - `docker buildx imagetools inspect`. De eigen image kan pas als hij in een register staat; zie - [OPEN.md](OPEN.md) punt 1. Beide staan als TODO in de compose +- [x] **De eigen image gepind op tag plus digest (25-08-2026).** + `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 ## Fase 3 - Het bouwrecept @@ -58,8 +62,19 @@ Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker**. -- [ ] De image gebouwd (zie "Volgende stap") -- [ ] De app geïnstalleerd, en alle drie de containers blijven draaien +- [x] **De image gebouwd op de Umbrel (25-08-2026), in 50 seconden.** Twee dingen die het opleverde: de + gebruiker `umbrel` zit hier níet in de groep `docker`, dus het moet met `sudo`; en de Dockerfile van + Trezor bouwt zonder aanpassing +- [x] **In een register gezet, want anders kan umbreld er niet bij (25-08-2026).** Dit was de grote + verrassing van de dag en het staat met bron in + [Umbrel-appstore-spec.md](../../../Referenties/Umbrel-appstore-spec.md): umbreld haalt élke image via + de Docker Engine API op, niet via compose. Een lokaal gebouwde tag is dus onbereikbaar en + `pull_policy: never` doet niets, want de compose wordt niet gelezen om te pullen. Het Gitea-register op + dezelfde server als de store bleek de kortste weg, en anoniem halen werkt daar +- [x] **De app geïnstalleerd en alle drie de containers blijven draaien (25-08-2026).** `relay`, + `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