96565085a5d73b7c61912d3e3ad162ea7b0d1d2f
4
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
96565085a5 |
umbreld pullt buiten compose om, dus pull_policy kon nooit werken
De installatie faalde, en de foutmelding was voorspelbaar maar de oorzaak niet:
pull access denied for whatsnext/evolu-relay
at /opt/umbreld/node_modules/docker-modem/lib/modem.js:382:17
Die stacktrace is het punt. De pull komt uit docker-modem, de Docker-client van
umbreld zelf, dus rechtstreeks op de Docker Engine API. Compose komt er niet aan
te pas en de compose wordt alleen gelezen om te zien welke images erin staan.
pull_policy is een sleutel van de Compose-specificatie en wordt dus nooit
bekeken. Mijn reparatie van de vorige commit kon per definitie niet werken; hij
is eruit, want een sleutel die niets doet met een commentaar dat beweert van wel
is erger dan geen sleutel.
Waar die fout vandaan kwam: ik las in app-script dat install een
`compose "${app}" pull` doet en nam aan dat dat het pad was. Dat bestand is de
legacy-compat-laag en niet wat umbrelOS 1.x loopt bij een installatie vanuit de
interface. Dat staat nu als waarschuwing in de naslag, want het is precies het
soort bron dat overtuigend leest en het verkeerde antwoord geeft.
De echte regel, nu op het apparaat vastgesteld in plaats van uit code afgeleid:
elke image in de compose van een app moet anoniem uit een register te halen zijn.
Een lokaal gebouwde tag werkt niet, hoe goed docker compose up er ook mee overweg
zou kunnen.
Het image-veld staat er nog en wijst nog steeds naar de lokale tag. Dat is
bewust: het commentaar erboven zegt nu dat het zo niet werkt en wat er moet
komen. Weghalen zou de app-map stiller maar niet beter maken, en de keuze voor
een register is aan de gebruiker.
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>
|
||
|
|
8004acfae9 |
pull_policy: never, anders faalt de installatie op een image die nergens staat
De image is gebouwd op de Umbrel en staat alleen in de lokale Docker-opslag: er
is geen register. Dat leek te werken omdat `docker compose up` niets ophaalt zolang
de image lokaal bestaat. Bij het nakijken van app-script in umbreld bleek dat niet
het pad dat een installatie loopt.
umbreld draait `compose "${app}" pull` bij install, bij update en bij
post-patch-update. Die zou whatsnext/evolu-relay:c03a204 op Docker Hub zoeken,
waar hij niet bestaat, en dan faalt de installatie voordat er iets gestart is. Met
pull_policy: never slaat compose die twee services over bij het ophalen. Postgres
houdt de standaard, want die komt wél uit een register.
Bijkomend voordeel dat het houdt zodra er ooit een register is: ontbreekt de image,
dan is de fout "niet gevonden" en die wijst naar de overgeslagen bouwstap, in plaats
van een mislukte netwerkpoging die naar het register wijst.
Uit hetzelfde bestand meegenomen naar de naslag: starten gaat met
`up --detach --build`, dus umbreld zou een build:-blok wél uitvoeren. Toch blijft
bouwen-in-de-app een slecht idee, en nu met een tweede reden naast de whitelist: de
installatie hangt dan tijdens het bouwen. Op deze machine duurde dat 50 seconden.
Geen versieverhoging: deze app is nog nooit geïnstalleerd, dus er is geen manifest
op een apparaat om tegen te vergelijken.
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>
|
||
|
|
1a87a45685 |
De bovenstroomse repo gelezen, en twee aannames sneuvelden
De gebruiker wil de Evolu Relay-app meteen pakketteren. Daarvoor moest fase 1 van Proefopstelling eerst af, want een compose schrijven op aannames is precies wat dat plan moet voorkomen. Upstream-evolu-relay.md gaat daarmee van vooronderzoek naar nagetrokken, met een bron-URL per feit. De quota-manager is in de praktijk verplicht, en om een andere reden dan gedacht. Niet omdat de relay hem aanroept: er is geen HTTP-koppeling en geen URL in de configuratie, ze delen alleen de Postgres. Maar isOwnerAllowed() eist een rij in de limietentabel en de quota-manager maakt die rijen. Zonder hem is de relay dus niet open maar dicht voor iedereen. Dat maakt de tweede weg interessant, want een rij is ook met de hand te zetten; de prijs daarvan is schrijven in andermans schema. Er is geen publieke image. Trezor bouwt er wel een maar duwt hem naar een eigen Amazon ECR, en op Docker Hub staat niets. Zelf bouwen en publiceren, of geen app, en dat is een doorlopende verplichting. Bijvangst die een risico wegneemt: datzelfde werkproces bouwt amd64 en arm64, dus de Dockerfile is bovenstrooms bewezen op een Pi. Nieuw risico dat ervoor terugkomt: LICENSE.md is door GitHub geclassificeerd als "other", en zodra je een image publiceert distribueer je hun software. Twee kleinere correcties. De compose van Trezor draait de relay niet, er staan alleen Postgres en Prometheus in; het is een ontwikkelopstelling en wat zij uitrollen staat in .k8s/. En alle processen komen uit één image met per service een ander command, dus het worden geen drie images. Eén tegenspraak blijft staan en is expres niet weggeschreven als feit: .env.sample zegt dat SERVER_ENV=prod authenticatie aanzet, maar in de code die ik las bepaalt die vlag alleen het logniveau en staan de controles onvoorwaardelijk aan. Eén van de twee is achterhaald. Dat is met één keer starten te meten en het staat als taak in fase 2. Tests: niet gedraaid, dit raakt alleen documentatie. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|
|
67ed9b603b |
Eén app store, twee apps
umbrelOS leest per store één repo, dus twee apps in twee repo's kan niet. Deze repo is de store en bevat vanaf nu Electrum Gate en het werk aan Evolu Relay. Opgezet als verse repo op verzoek van de gebruiker: de historie van ElectrumTLS en van EvoluRelay komt niet mee. Dat heeft één gevolg dat verder gaat dan opruimen. In de historie van ElectrumTLS staat het domein van de gebruiker en het certificaatpad, van vóór de opschoning van 19-08. Die komt hier niet in. Zolang die repo op de Git-server blijft staan verandert dat niets, dus het weghalen ervan is het laatste stuk van open punt 3 van het plan Appstore, en geen bijzaak. De store zelf hoefde niet te veranderen: store-id whatsnext, en dus blijft het app-id whatsnext-electrum-gate. Dat hangt aan het store-id en niet aan de URL, dus voor umbrelOS is dit dezelfde app in een andere store. Dat de store op 19-08 naar de maker genoemd werd in plaats van naar deze ene app, betaalt zich hier uit. Wat de documentatie betreft is dit één wortel voor beide apps, en dat was de reden om samen te voegen en niet de prijs ervan: de appstore-spec, het pinnen van images en de werkwijze golden al voor allebei en stonden in twee repo's naast elkaar. De kruisverwijzing die daarvoor nodig was (Referenties/Umbrel-appstore.md in de oude EvoluRelay-repo) is verdwenen; wat daarin stond over de plekken waar de relay een ander geval is, staat nu als ontwerp in het masterplan Umbrelapp §4. Botsende namen kregen een achtervoegsel met de app, en alleen die: Publicatie werd Publicatie-Gate en Publicatie-Relay, CHANGELOG.md werd CHANGELOG-electrum-gate.md. Proefopstelling kreeg 007, tussen de twee bestaande nummers, zodat de bovenkant van de reeks op tier-orde blijft staan. CONTINUE_HERE.md heeft een kolom App, maar de tiers lopen over beide apps heen: er is één volgorde van werken. Electrum Gate gaat naar 0.0.15, want website, repo, support, submission en icon wijzen nu naar UmbrelApps en zonder versieverhoging rolt dat niet uit. De release notes leggen aan de gebruiker uit dat hij de store opnieuw moet toevoegen. Of een geïnstalleerde app een wisseling van store-URL overleeft is nog steeds niet uitgezocht; dat blijkt bij het omzetten. Twee dingen in de plannen van Electrum Gate waren door deze verhuizing niet meer waar en zijn bijgewerkt: de taak "de repo hernoemen" in fase 7 is afgevinkt, en de repo-vorm in PLAN.md §4a toonde nog de store-id electrumtls, die al sinds fase 7 achterhaald was. Tests: 39 goed 0 fout en 54 goed 0 fout, niets overgeslagen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |