Open punt 1 van Eigenimage: voor nu Gitea, bij inlevering opnieuw kijken. De twee bezwaren die dat punt opriep, het domein van de gebruiker in een publiek pakket en andermans installaties die aan zijn thuisserver komen te hangen, gelden allebei pas bij inlevering. Daar is hij uitdrukkelijk nog niet aan toe: dit is voorlopig zijn eigen app voor eigen gebruik. Twee dingen zijn bij dat besluit vastgelegd zodat ze niet met het antwoord verdwijnen: bij inlevering moet het register opnieuw beoordeeld worden, samen met het pinnen en het kaal maken van het app-id, en de opmerking dat umbrelOS een eigen register zou toestaan is niet nagetrokken. Dat hoort bij Publicatie-Gate. Daarmee kan fase 1 zo beginnen, maar het plan ligt stil op verzoek van de gebruiker: hij gaat eerst verder met Evolu Relay. Umbrelapp staat nu bovenaan tier A, met twee feiten erbij om mee te starten: die app staat op dit moment uit, en hij is nog nooit met Trezor Suite verbonden geweest. Eigenimage houdt tier A en zijn nummer; er is niets aan gebouwd, dus er ligt ook niets half af. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
105 lines
7.3 KiB
Markdown
105 lines
7.3 KiB
Markdown
# Taken - Umbrelapp
|
||
|
||
> **App: Evolu Relay.** Prioriteit: **A** | Afhankelijk van: –
|
||
>
|
||
> 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:
|
||
> fase 1 daarvan is af en leverde de feiten waarop dit pakket rust. Wat er nog uit moet komen zijn twee
|
||
> vragen die pas bij het installeren pijn doen, en die staan hieronder als eigen taak.
|
||
>
|
||
> **Dit is de focus vanaf 27-08-2026, op verzoek van de gebruiker.** Het werk aan Electrum Gate is die dag
|
||
> afgerond tot en met de tweede indeling; het plan **Eigenimage** staat klaar maar ligt bewust stil. Twee
|
||
> feiten om mee te beginnen: **de app staat op dit moment uit** op de Umbrel, en hij is nog nooit met
|
||
> Trezor Suite verbonden geweest. "Gebouwd" is hier dus nog verder van "werkend" dan bij Gate.
|
||
|
||
## Volgende stap
|
||
|
||
- [ ] **De kále Evolu-relay proberen, en waarschijnlijk daarnaartoe verbouwen.** Zie [OPEN.md](OPEN.md)
|
||
punt 6: uit de broncode van Suite blijkt dat de cliënt bij een eigen relay-URL géén eigenaar
|
||
registreert, terwijl Trezor's relay iedereen zonder limietenrij weigert. Het pakket dat er nu staat kan
|
||
dus in de kern niet werken. Wat nog te meten is, is of de protocolversie klopt:
|
||
`docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite ernaartoe wijzen onder
|
||
**dev-utils**, label maken. **Eigenaar: gebruiker**
|
||
- [ ] **Pas daarna beslissen wat er met het huidige pakket gebeurt.** Werkt de kale relay, dan wordt dit
|
||
één container op een gepubliceerde image en vervallen de bouwstap, het eigen register, de Postgres en
|
||
het wachtwoord. Werkt hij niet, dan is de limietenrij met de hand zetten de enige weg vooruit
|
||
- [ ] **In de logs van de relay kijken of het databaseschema zichzelf aanmaakt.** Alleen nog nuttig als het
|
||
huidige pakket blijft: `sudo docker logs whatsnext-evolu-relay_relay_1`
|
||
|
||
## Fase 1 - De app-map
|
||
|
||
- [x] **`whatsnext-evolu-relay/` aangemaakt met `umbrel-app.yml` en `docker-compose.yml` (25-08-2026).**
|
||
Mapnaam gelijk aan het `id`, met het store-voorvoegsel `whatsnext-`, en de manifestvelden in de
|
||
voorgeschreven volgorde
|
||
- [x] `data/postgres/.gitkeep` erin, zodat de mount bij de eerste start niet als root wordt aangemaakt
|
||
- [x] **`dependencies` weggelaten en niet leeg gezet.** Deze app hangt van geen enkele andere app af; een
|
||
leeg veld zou suggereren dat er iets te kiezen valt
|
||
- [ ] **Een eigen icoon.** Er staat nu géén `icon` in het manifest, dus de tegel blijft naamloos in de
|
||
store. Bewust leeg: een geleend of verkeerd icoon is erger dan geen. **Eigenaar: gebruiker**
|
||
|
||
## Fase 2 - De compose
|
||
|
||
- [x] **`app_proxy` met `PROXY_AUTH_ADD: "false"`, en geen eigen `ports:`.** Trezor Suite is geen browser
|
||
met een sessiecookie. Dit is het patroon van de eigen `nostr-relay`-app van Umbrel, dus een precedent
|
||
en geen omweg; zie [PLAN.md](PLAN.md) §4c
|
||
- [x] **Relay en quota-manager uit één image met een ander `command`.** Expliciet en niet leunend op de
|
||
`CMD` van de Dockerfile, want daar staat `yarn start` met bovenstrooms zelf een twijfel erbij
|
||
- [x] **De quota-manager gaat mee.** Niet omdat de relay hem aanroept, maar omdat de relay elke eigenaar
|
||
zonder limietenrij weigert en dit is wat die rijen maakt
|
||
- [x] **Postgres onder `${APP_DATA_DIR}/data/postgres`**, wachtwoord uit `${APP_PASSWORD}`, `PGDATA` op een
|
||
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
|
||
- [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
|
||
|
||
- [x] **`tools/evolu-relay/build.sh` (25-08-2026).** Haalt de broncode op een vastgezette commit en bouwt
|
||
de Dockerfile van Trezor. Niet hun bouwstappen nabouwen; wat wij toevoegen is de pin
|
||
- [x] **Niet in de app-map gezet, en dat is geen netheid.** Een `Dockerfile` staat niet in de
|
||
update-whitelist, dus bouwen-in-de-app zou elke nieuwe versie een herinstallatie kosten. Zie
|
||
[PLAN.md](PLAN.md) §4f
|
||
- [x] **Onder `tools/` en niet onder `build/`:** dat laatste staat in `.gitignore` als bouwselmap, dus het
|
||
recept zou stilzwijgend buiten de repo blijven. Gevonden bij het stagen, niet bij het schrijven
|
||
- [x] Het script controleert na het ophalen dat de commit is wat hij verwachtte, en faalt hard als dat niet
|
||
zo is. Zonder die regel bouwt het stil de verkeerde toestand
|
||
|
||
## Fase 4 - Installeren en verifiëren op de Umbrel
|
||
|
||
Niets hiervan is op een laptop te doen. Eigenaar van deze hele fase: **gebruiker**.
|
||
|
||
- [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 `<umbrel>: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
|
||
|
||
## 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
|