De image in het eigen register, gepind op digest

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 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-08-25 18:31:20 +02:00
co-authored by Claude Opus 5
parent 96565085a5
commit 730621d850
3 changed files with 45 additions and 23 deletions
+21 -5
View File
@@ -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}"
+15 -15
View File
@@ -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:
+9 -3
View File
@@ -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