2026-08-25 17:18:22 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
|
# Bouwt de image voor de app whatsnext-evolu-relay.
|
|
|
|
|
#
|
|
|
|
|
# Waarom dit bestand bestaat: Trezor publiceert geen image. Hun werkproces duwt
|
|
|
|
|
# naar een eigen Amazon ECR en op Docker Hub staat niets, dus er is geen
|
|
|
|
|
# `docker pull` die iets oplevert. De broncode is wel publiek, met een Dockerfile
|
|
|
|
|
# erin. Dit script is de brug: het haalt de broncode op een vastgezette commit en
|
|
|
|
|
# bouwt hún Dockerfile.
|
|
|
|
|
#
|
|
|
|
|
# Waarom het NIET in de app-map staat: umbreld kopieert de hele app-map naar het
|
|
|
|
|
# apparaat, en bij een update wordt alleen een whitelist ververst waar een
|
|
|
|
|
# Dockerfile niet in zit. Bouwen tijdens het starten van de app zou de installatie
|
|
|
|
|
# bovendien minuten laten hangen. Het recept hoort dus in de repo en het resultaat
|
|
|
|
|
# in een register of in de lokale Docker-opslag; de app verwijst alleen naar de tag.
|
|
|
|
|
#
|
|
|
|
|
# Waarom we hun Dockerfile gebruiken en geen eigen: dan hoeven we hun bouwstappen
|
|
|
|
|
# niet na te bouwen en niet bij te houden. Wat wij toevoegen is uitsluitend de pin.
|
|
|
|
|
#
|
|
|
|
|
# Draaien: sh build.sh
|
|
|
|
|
# Vereist: docker en git op de machine waar je bouwt.
|
|
|
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
|
|
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
|
|
# ── De pin ────────────────────────────────────────────────────────────────────
|
|
|
|
|
# Dit is het enige wat je aanpast als je een nieuwere versie wil. Verhoog daarna
|
|
|
|
|
# ook `version` in whatsnext-evolu-relay/umbrel-app.yml, anders rolt umbrelOS de
|
|
|
|
|
# wijziging niet uit.
|
|
|
|
|
UPSTREAM_REPO="https://github.com/trezor/trezor-suite-sync.git"
|
|
|
|
|
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.
|
2026-08-25 18:31:20 +02:00
|
|
|
#
|
|
|
|
|
# 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"
|
2026-08-25 17:18:22 +02:00
|
|
|
|
|
|
|
|
# ── Bouwen ────────────────────────────────────────────────────────────────────
|
|
|
|
|
WORKDIR="$(mktemp -d)"
|
|
|
|
|
cleanup() { rm -rf "$WORKDIR"; }
|
|
|
|
|
trap cleanup EXIT INT TERM
|
|
|
|
|
|
|
|
|
|
echo "Broncode ophalen op ${UPSTREAM_COMMIT}"
|
|
|
|
|
|
|
|
|
|
# Niet `clone --branch`: dat pint op een naam die meebeweegt. Een fetch van één
|
|
|
|
|
# commit haalt precies deze toestand op en niets anders. GitHub staat het ophalen
|
|
|
|
|
# van een losse commit-sha toe; een Git-server die dat niet doet, geeft hier een
|
|
|
|
|
# foutmelding in plaats van stil een andere versie te bouwen.
|
|
|
|
|
git init --quiet "$WORKDIR"
|
|
|
|
|
git -C "$WORKDIR" remote add origin "$UPSTREAM_REPO"
|
|
|
|
|
git -C "$WORKDIR" fetch --quiet --depth 1 origin "$UPSTREAM_COMMIT"
|
|
|
|
|
git -C "$WORKDIR" checkout --quiet FETCH_HEAD
|
|
|
|
|
|
|
|
|
|
# Controle dat we hebben wat we dachten. Zonder deze regel bouwt het script bij
|
|
|
|
|
# een gewijzigde afspraak over sha's stil de verkeerde toestand.
|
|
|
|
|
GEVONDEN="$(git -C "$WORKDIR" rev-parse HEAD)"
|
|
|
|
|
if [ "$GEVONDEN" != "$UPSTREAM_COMMIT" ]; then
|
|
|
|
|
echo "FOUT: opgehaald ${GEVONDEN}, verwacht ${UPSTREAM_COMMIT}" >&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Bouwen als ${IMAGE}"
|
|
|
|
|
docker build --tag "$IMAGE" "$WORKDIR"
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
echo "Klaar. De app verwijst naar deze tag:"
|
|
|
|
|
docker image inspect --format '{{.RepoTags}} {{.Id}}' "$IMAGE"
|
|
|
|
|
echo
|
2026-08-25 18:31:20 +02:00
|
|
|
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}"
|