From 730621d850fdc6ea59b93c0b438ce63d4b873e38 Mon Sep 17 00:00:00 2001 From: Harmen Date: Tue, 25 Aug 2026 18:31:20 +0200 Subject: [PATCH] De image in het eigen register, gepind op digest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit umbreld haalt elke image via de Docker Engine API op, dus een lokaal gebouwde tag is voor hem onbereikbaar. De image staat nu in het Gitea-register op dezelfde server als deze store, en anoniem halen werkt daar: dat is dezelfde voorwaarde als voor het klonen van de store zelf, en de eigenaar sysop staat publiek. Beide services krijgen tag plus digest. De digest hoort erbij en niet alleen de tag, want een tag kan opnieuw geduwd worden en dan draait er iets anders dan er in de repo staat. De toets in tests/test_appstore_vorm.py drukt de pinstatus af en beide regels staan nu op "gepind"; van Electrum Gate nog geen. Wat er expres bij staat in commentaar: dit is de digest van één architectuur. Er is alleen amd64 geduwd, want deze Umbrel is amd64. Voor de officiele store moet het een multi-arch index-digest zijn met arm64 erin, en dat is buildx met QEMU. Zonder die notitie leest een gepinde digest als "eis gehaald". build.sh wijst nu ook naar het register, anders levert een volgende bouw weer een tag op waar de compose niet naar kijkt. De slotregels van het script zijn geen suggestie meer maar de resterende stappen: push, digest overnemen, version verhogen, en anoniem controleren met een uitgelogde pull in dezelfde context als de login. Manifest naar 0.0.2, met release notes die zeggen waarom: 0.0.1 was niet te installeren. Tests: 32 goed 0 fout, 54 goed 0 fout en 39 goed 0 fout, niets overgeslagen. Co-Authored-By: Claude Opus 5 --- tools/evolu-relay/build.sh | 26 ++++++++++++++++---- whatsnext-evolu-relay/docker-compose.yml | 30 ++++++++++++------------ whatsnext-evolu-relay/umbrel-app.yml | 12 +++++++--- 3 files changed, 45 insertions(+), 23 deletions(-) diff --git a/tools/evolu-relay/build.sh b/tools/evolu-relay/build.sh index 7377a42..bd3ebca 100644 --- a/tools/evolu-relay/build.sh +++ b/tools/evolu-relay/build.sh @@ -32,7 +32,12 @@ UPSTREAM_COMMIT="c03a2043acec48d4a1bbafca65e94da33dce1edd" # De tag waar docker-compose.yml van de app naar verwijst. De korte commit zit # erin, zodat je op het apparaat kunt zien wat er draait. -IMAGE="whatsnext/evolu-relay:c03a204" +# +# Het register staat er expres in en dit is geen smaakkwestie: umbreld haalt élke +# image op via de Docker Engine API, dus een tag die alleen lokaal bestaat is voor +# hem onbereikbaar en de installatie faalt met "pull access denied". Dat is op +# 25-08-2026 op het apparaat vastgesteld. Zie Umbrel-appstore-spec.md. +IMAGE="sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204" # ── Bouwen ──────────────────────────────────────────────────────────────────── WORKDIR="$(mktemp -d)" @@ -65,7 +70,18 @@ echo echo "Klaar. De app verwijst naar deze tag:" docker image inspect --format '{{.RepoTags}} {{.Id}}' "$IMAGE" echo -echo "Wil je hem later uit een register halen in plaats van lokaal, dan is dit" -echo "de plek: tag hem naar dat register, push, en zet de digest uit" -echo "\`docker buildx imagetools inspect\` in docker-compose.yml. Zie" -echo "Docs/Referenties/Images-pinnen.md." +echo "Bouwen is niet genoeg: de app verwijst naar het register, want umbreld kan" +echo "niet bij een image die alleen lokaal staat. Nog te doen:" +echo +echo " docker login sc.kamenier-hamer.nl" +echo " docker push ${IMAGE}" +echo +echo "Zet daarna de digest uit de push-uitvoer achter de tag in" +echo "whatsnext-evolu-relay/docker-compose.yml, op beide services, en verhoog" +echo "\`version\` in het manifest. Zonder die verhoging rolt umbrelOS het niet uit." +echo +echo "Controleer dat het anoniem te halen is, want umbreld krijgt geen" +echo "inloggegevens mee. Log uit in dezelfde context waarin je inlogde, anders" +echo "meet je je eigen sessie:" +echo +echo " docker logout sc.kamenier-hamer.nl && docker pull ${IMAGE}" diff --git a/whatsnext-evolu-relay/docker-compose.yml b/whatsnext-evolu-relay/docker-compose.yml index ac9f1e4..3230369 100644 --- a/whatsnext-evolu-relay/docker-compose.yml +++ b/whatsnext-evolu-relay/docker-compose.yml @@ -28,22 +28,20 @@ services: PROXY_AUTH_ADD: "false" relay: - # WERKT NIET ZOALS HET HIER STAAT, en dat is bewust zichtbaar gelaten tot de - # keuze voor een register gemaakt is. Deze tag komt uit - # tools/evolu-relay/build.sh en bestaat alleen in de lokale Docker-opslag van - # de machine waar gebouwd is. + # Gebouwd uit de broncode van Trezor door tools/evolu-relay/build.sh, en + # geduwd naar het Gitea-register op dezelfde server als deze store. Dat moet: + # umbreld haalt élke image op via de Docker Engine API (docker-modem) en niet + # via compose, dus een lokaal gebouwde tag is voor hem onbereikbaar en + # `pull_policy` wordt nooit gelezen. Op 25-08-2026 op het apparaat + # vastgesteld; zie Docs/Referenties/Umbrel-appstore-spec.md. # - # Op 25-08-2026 bleek bij de eerste installatiepoging dat dat niet genoeg is: - # umbreld haalt élke image op via de Docker Engine API (docker-modem), niet - # via compose, en faalt met "pull access denied" voordat er iets start. Een - # lokaal gebouwde image is dus onbereikbaar, en `pull_policy: never` helpt - # niet, want umbreld leest de compose niet om te pullen. Zie - # Docs/Referenties/Umbrel-appstore-spec.md. + # De digest hoort erbij en niet alleen de tag: een tag kan opnieuw geduwd + # worden en dan draait er iets anders dan hier staat. # - # Wat hier moet komen: een tag in een register waar de Umbrel anoniem bij kan, - # met @sha256-digest erbij. Zie Docs/Referenties/Images-pinnen.md en het plan - # Umbrelapp. - image: whatsnext/evolu-relay:c03a204 + # Let op: dit is de digest van één architectuur (amd64), want er is alleen + # amd64 geduwd. Voor de officiele store moet het een multi-arch index-digest + # zijn met arm64 erin; zie het masterplan Publicatie-Relay. + image: sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204@sha256:2fe1e9e90e5cbc12d5ea6363df03bb132fddec0150283063b9103a09bdbe853a restart: on-failure depends_on: db: @@ -71,7 +69,9 @@ services: POSTGRES_GATE_SSL: "false" quota-manager: - image: whatsnext/evolu-relay:c03a204 + # Zelfde image als relay, ander commando. Tag en digest moeten dus gelijk + # blijven aan die hierboven. + image: sc.kamenier-hamer.nl/sysop/evolu-relay:c03a204@sha256:2fe1e9e90e5cbc12d5ea6363df03bb132fddec0150283063b9103a09bdbe853a restart: on-failure depends_on: db: diff --git a/whatsnext-evolu-relay/umbrel-app.yml b/whatsnext-evolu-relay/umbrel-app.yml index b716b62..53d5e5c 100644 --- a/whatsnext-evolu-relay/umbrel-app.yml +++ b/whatsnext-evolu-relay/umbrel-app.yml @@ -11,7 +11,7 @@ manifestVersion: 1 id: whatsnext-evolu-relay category: bitcoin name: Evolu Relay -version: "0.0.1" +version: "0.0.2" tagline: Sync your Trezor Suite labels through your own machine description: >- Trezor Suite can sync the labels and account names you give your addresses across your @@ -37,8 +37,14 @@ description: >- storage limit registered in its database, which is what the included quota manager is for; if syncing is refused, that registration is the place to look. releaseNotes: >- - First release. Packages Trezor's Evolu Relay, the quota manager it needs, and a PostgreSQL - database, all on your own machine. + First release that can actually be installed. 0.0.1 pointed at an image that only existed + on the machine it was built on, and the install failed before anything started: umbrel + fetches every image from a registry, so a local build is out of reach. The image now comes + from a registry and is pinned to its digest. + + + Packages Trezor's Evolu Relay, the quota manager it needs, and a PostgreSQL database, all on + your own machine. Built from source pinned to commit c03a204 of trezor/trezor-suite-sync. There is no image