Gate 0.1.0: eigen image, het command-blok is een script, de app-map is leeg
Plan Eigenimage, fase 1 tot en met 3. De vier templates verhuizen naar tools/electrum-gate/ zonder extensie; daarnaast Dockerfile (nginx:1.30-alpine plus python3), entrypoint.sh (het command-blok van de compose, zonder $$) en build.sh naar het voorbeeld van Evolu Relay. Een image voor beide containers, gebouwd op de Umbrel; open punt 2 en 3 daarmee beslist. Inhoudelijk anders dan alleen verplaatst: het log_format staat in stream.conf zelf, het backend-adres komt via twee plaatshouders zonder dollarteken uit de omgeving (ook in de server-service), en de pagina haalt versie en adres uit status.json via GATE_APP_VERSION. Tests mee verhuisd en uitgebreid: entrypoint.sh en Dockerfile in plaats van het command-blok, en de tag in de compose gelijk aan VERSION in build.sh voor elke eigen image. Mutatie-getest met drie ingrepen. Nog niet gebouwd: er is hier geen Docker. De tag staat ongepind tot de eerste push; dat is fase 4 en die is van de gebruiker. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
7b3804df89
commit
973b24a23f
@@ -10,11 +10,13 @@
|
||||
//
|
||||
// ── Waarom dit bestaat ───────────────────────────────────────────────────────
|
||||
//
|
||||
// Een `index.html.template` is niet te openen. Twee dingen staan in de weg, en ze
|
||||
// Een statuspagina is niet zomaar te openen. Twee dingen staan in de weg, en ze
|
||||
// zijn allebei fundamenteel en niet op te lossen door er anders naar te kijken:
|
||||
//
|
||||
// 1. er staan accolade-variabelen in die umbreld invult. Onopgelost staat er
|
||||
// letterlijk "v${APP_VERSION}" in de kop;
|
||||
// 1. in een `index.html.template` staan accolade-variabelen die umbreld invult.
|
||||
// Onopgelost staat er letterlijk "v${APP_VERSION}" in de kop. Een pagina die
|
||||
// in een eigen image zit heeft dit niet meer, maar haalt de versie dan uit
|
||||
// status.json, dus zonder agent staat er niets;
|
||||
// 2. de pagina haalt al zijn gegevens bij een agent die alleen in de app bestaat.
|
||||
// Zonder die agent zie je één foutmelding en verder een pagina vol "unknown":
|
||||
// geen lijsten, geen teller, geen knoppen.
|
||||
@@ -44,10 +46,18 @@ const REPO = join(HIER, '..');
|
||||
const UIT = join(REPO, 'voorbeeld');
|
||||
|
||||
const app = process.argv[2] || 'whatsnext-evolu-relay';
|
||||
const bron = join(REPO, app, 'index.html.template');
|
||||
|
||||
// De pagina staat op een van twee plekken: als *.template in de app-map, of als
|
||||
// gewoon bestand in het bouwrecept onder tools/ als hij in een eigen image zit.
|
||||
// Electrum Gate is sinds 0.1.0 het tweede geval. Alleen de eerste gaat door
|
||||
// envsubst; voor de tweede is de invulling hieronder een lege stap.
|
||||
const template = join(REPO, app, 'index.html.template');
|
||||
const kort = app.includes('-') ? app.slice(app.indexOf('-') + 1) : app;
|
||||
const inImage = join(REPO, 'tools', kort, 'index.html');
|
||||
const bron = existsSync(template) ? template : inImage;
|
||||
|
||||
if (!existsSync(bron)) {
|
||||
console.error(`FOUT: ${bron} bestaat niet`);
|
||||
console.error(`FOUT: geen pagina gevonden op ${template} of ${inImage}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user