Files
UmbrelApps/Docs/Plannen/Actief/008-Umbrelapp/TAKEN.md
T
HarmenandClaude Opus 5 836bc58bd6 Er zijn twee relays, en we pakketteerden de zware
De gebruiker droeg evolu.dev/docs/relay aan met de vraag of dat de server is
waarop deze app gebaseerd is. Niet dezelfde, wel de bovenstroom, en dat verschil
is groot genoeg om het pakket ter discussie te stellen.

trezor/trezor-suite-sync is niet Evolu maar Trezor's inzet ervan, met een
Postgres en een quota-manager voor hun gehoste dienst. Het project eronder,
evoluhq/evolu, heeft een eigen relay: een container, een gepubliceerde image
docker.io/evoluhq/relay:latest, een datavolume in plaats van een database, en
niets gedocumenteerd over toegangscontrole. De documentatie noemt die relay
stateless en geschikt voor serverless.

Praat Trezor Suite daarmee, dan vervalt vrijwel alles wat dit pakket ingewikkeld
maakt: de bouwstap, het eigen register, de onderhoudsplicht op een image, de
Postgres met zijn wachtwoord, en de eigenaarsregistratie die nu de blokkade is.
Drie containers worden er een.

Niet aangenomen en niet gemeten, dus het staat als open punt 6 met de proef
erbij: docker run, Suite ernaartoe wijzen, label maken. Dat kost minuten en het
antwoord bepaalt of er nog iets aan de huidige vorm verbeterd moet worden. Daarom
staat het ook als eerste in "Volgende stap", vóór het nakijken van het
databaseschema: dat laatste is weggegooid werk als de kale relay volstaat.

Dat het huidige pakket deze laag heeft, is geen fout maar het gevolg van de
volgorde waarin het gevonden is. Dat staat er ook zo bij, want anders leest dit
over een maand als een verkeerde beslissing in plaats van als een ontdekking.

Tests: niet gedraaid, dit raakt alleen documentatie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 07:30:04 +02:00

97 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
## Volgende stap
- [ ] **Eerst: praat Trezor Suite met een kále Evolu-relay?** Zie [OPEN.md](OPEN.md) punt 6. Als het antwoord
ja is, wordt dit pakket drie keer eenvoudiger en vervalt de blokkade over de eigenaarsregistratie;
dan is verder sleutelen aan de huidige vorm weggegooid werk. Kost minuten:
`docker run --rm -p 4000:4000 docker.io/evoluhq/relay:latest`, Suite ernaartoe wijzen, label maken.
**Eigenaar: gebruiker**
- [ ] **Daarna pas: 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`. **Eigenaar: gebruiker**
## 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