Evolu Relay draait op de Umbrel
Drie containers omhoog, db gezond, de app-proxy op 3851. De lokale images waren vooraf weggehaald, dus de pull uit het eigen register is echt gedaan en het hele pad is bewezen: broncode van Trezor, bouwrecept, eigen register, gepinde digest, installatie. Open punt 1 is beslist en niet zoals het geformuleerd stond. Daar stond dat lokaal bouwen de eerste stap was en dat een register beslist zou worden "zodra lokaal niet meer volstaat". Lokaal volstaat nooit: umbreld haalt elke image via de Docker Engine API op. Dus geen keuze maar een voorwaarde, en de uitkomst is het Gitea-register op dezelfde server als de store. Nieuw open punt 5, als keerzijde daarvan: de store is publiek en de image staat op een privéserver. Voegt een vreemde deze store toe, dan haalt zijn Umbrel images van de server van de gebruiker, en diens uptime bepaalt of die installatie slaagt. Electrum Gate heeft dat niet, want die draait op images uit Docker Hub. Drie richtingen genoteerd, waaronder disabled: true in het manifest. In PROGRESS staat de fout die twee rondes kostte, met de reden dat hij overtuigend was: app-script noemt een compose pull bij install, en dat leest als het antwoord. Het is de legacy-compat-laag en niet het pad dat umbrelOS 1.x loopt. De les is breder dan deze app en daarom staat hij er. Ook opgeschreven omdat het bij elke herbouw terugkomt: de gebruiker umbrel zit hier niet in de groep docker, dus bouwen vraagt sudo. De kopstructuur van OPEN.md stond na het bijwerken door de war (een tweede kop "Nog te beslissen"); die is weer conform het sjabloon. Tests: niet gedraaid, dit raakt alleen documentatie. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -24,7 +24,7 @@
|
|||||||
| Plan | App | Volgende stap | Status |
|
| 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 | 🔶 |
|
| [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 `<umbrel>: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 | 🔶 |
|
| [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)
|
## B - Los oppakbaar (geen blokkade, geen vaste volgorde)
|
||||||
|
|||||||
@@ -9,22 +9,18 @@
|
|||||||
|
|
||||||
## Nog te beslissen
|
## Nog te beslissen
|
||||||
|
|
||||||
1. **Waar komt de image te staan zodra lokaal niet meer volstaat?**
|
5. **Is de app bruikbaar voor iemand anders die deze store toevoegt?**
|
||||||
Op 25-08-2026 is gekozen voor lokaal bouwen als eerste stap, en dat is een bewust tijdelijke keuze: de
|
Nieuw op 25-08-2026, en het is de keerzijde van punt 1. De store is publiek, dus een vreemde kan hem
|
||||||
app werkt dan alleen op die ene machine en herbouwen is handwerk. Drie richtingen, en ze zijn allemaal
|
toevoegen en Evolu Relay installeren. Zijn Umbrel haalt de image dan uit
|
||||||
verdedigbaar:
|
`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
|
Drie richtingen: laten zoals het is; `disabled: true` in het manifest zolang de image niet op een neutrale
|
||||||
TLS-certificaat, geen nieuw account. Nog na te kijken: staat het pakketregister aan, en mag er anoniem
|
plek staat (dat veld bestaat in het schema); of de image naar Docker Hub duwen en het probleem weghalen.
|
||||||
uit gehaald worden. Zo ja, dan is dit de netste plek;
|
**Moment:** als fase 4 helemaal af is, dus als bewezen is dat er iets te delen valt · **Eigenaar:**
|
||||||
- **Docker Hub onder een eigen account.** De standaardweg, en verplicht als het ooit de officiële store
|
gebruiker
|
||||||
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
|
|
||||||
|
|
||||||
2. **Komt er een statuspagina?**
|
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
|
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.
|
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
|
**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
|
## Bewust uitgesteld
|
||||||
|
|
||||||
4. **`SERVER_ENV` op `prod` of `dev`?** - `prod`, tot het tegendeel gemeten is (25-08-2026).
|
4. **`SERVER_ENV` op `prod` of `dev`?** - `prod`, tot het tegendeel gemeten is (25-08-2026).
|
||||||
|
|||||||
@@ -3,6 +3,39 @@
|
|||||||
> Chronologisch sessielog, nieuwste bovenaan. Kort: 3 tot 6 regels per entry. Wat er is gebeurd en waarom,
|
> 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).
|
> 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
|
## 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,
|
De gebruiker besloot het pakket meteen te maken in plaats van te wachten op de proefopstelling. Dat kon,
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
|
|
||||||
## Volgende stap
|
## Volgende stap
|
||||||
|
|
||||||
- [ ] **De image bouwen op de Umbrel met `tools/evolu-relay/build.sh`.** Dat is de enige stap tussen wat er
|
- [ ] **In de logs van de relay kijken of het databaseschema zichzelf aanmaakt.** De drie containers staan
|
||||||
nu in de repo staat en een installatie die kan slagen. Het script haalt de broncode op commit
|
omhoog, maar "Up" is nog geen "werkt": de relay kan draaien en toch klagen over ontbrekende tabellen.
|
||||||
`c03a204` en bouwt de Dockerfile van Trezor; verwacht minuten, want er zit een `yarn install` en een
|
`sudo docker logs whatsnext-evolu-relay_relay_1`. Dit is nu het eerste punt waar het misgaat als het
|
||||||
`yarn build` in. **Eigenaar: gebruiker**
|
misgaat. **Eigenaar: gebruiker**
|
||||||
|
|
||||||
## Fase 1 - De app-map
|
## Fase 1 - De app-map
|
||||||
|
|
||||||
@@ -38,9 +38,13 @@
|
|||||||
submap, en `postgres:17-alpine` in plaats van `postgres` kaal
|
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
|
- [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
|
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
|
- [x] **De eigen image gepind op tag plus digest (25-08-2026).**
|
||||||
`docker buildx imagetools inspect`. De eigen image kan pas als hij in een register staat; zie
|
`sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204@sha256:2fe1e9e9…`, op beide services. Dat moest wel:
|
||||||
[OPEN.md](OPEN.md) punt 1. Beide staan als TODO in de compose
|
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
|
## Fase 3 - Het bouwrecept
|
||||||
|
|
||||||
@@ -58,8 +62,19 @@
|
|||||||
|
|
||||||
Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker**.
|
Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker**.
|
||||||
|
|
||||||
- [ ] De image gebouwd (zie "Volgende stap")
|
- [x] **De image gebouwd op de Umbrel (25-08-2026), in 50 seconden.** Twee dingen die het opleverde: de
|
||||||
- [ ] De app geïnstalleerd, en alle drie de containers blijven draaien
|
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
|
- [ ] **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
|
plek waar het misgaat als het antwoord nee is. Kijk in de logs van de relay-container
|
||||||
- [ ] Trezor Suite naar `<umbrel>:3851` laten wijzen en een label synchroniseren. **Dit is de enige
|
- [ ] Trezor Suite naar `<umbrel>:3851` laten wijzen en een label synchroniseren. **Dit is de enige
|
||||||
|
|||||||
Reference in New Issue
Block a user