Alle apps van umbrelOS delen een Docker-netwerk, dus een servicenaam als 'agent' is daar niet uniek. Electrum Gate heeft er een op poort 8000 en Evolu Relay sinds vandaag ook, en Docker verdeelde de naam netjes over allebei. Gemeten op het apparaat: van tien verzoeken vanuit de nginx-container kwamen er vijf bij de verkeerde app uit, met een 404 tot gevolg. Op de statuspagina zag dat eruit als een status die wisselde tussen "running" en "agent unreachable". Dit raakte twee apps, en de tweede is de vervelende: de pagina van Electrum Gate proxyde ook naar http://agent:8000 en werkte alleen omdat die app tot vandaag de enige met die naam was. Het installeren van Evolu Relay heeft die pagina dus kapotgemaakt. Beide gaan nu naar <app-id>_agent_1, en beide manifesten gaan omhoog, want zonder verhoging bereikt een gewijzigde template geen bestaande installatie. Dezelfde les stond al in de compose van Electrum Gate, over de servicenaam 'server', en die is bij het schrijven van de nginx-config genegeerd. Daarom nu een toets erop: test_appstore_vorm controleert voor elke app dat een proxy_pass en elke *_HOST-variabele een naam gebruiken die met het app-id begint. Muteertest gedaan, de toets viel om op precies de korte naam. Bijgewerkt in build.sh: VERSION daar is het etiket op de image, en `version` in het manifest is een ander nummer dat erop vooruit mag lopen. Ze lopen uiteen zodra er een reparatie in de app-map zit zonder dat de image wijzigt, en dat is nu het geval. Tests: alle vier groen (34, 54, 39 en 60 goed, 0 fout). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
66 lines
2.8 KiB
Plaintext
66 lines
2.8 KiB
Plaintext
# nginx-configuratie voor Evolu Relay.
|
|
#
|
|
# Dit bestand serveert alleen de statuspagina. De relay zelf zit er niet achter:
|
|
# die publiceert zijn eigen poort in docker-compose.yml, waar Zoraxy met TLS
|
|
# naartoe wijst. Dat is de omkering ten opzichte van het pakket van 25-08-2026,
|
|
# waar de relay achter de app-proxy stond en de inlog dus uit moest; zie het plan
|
|
# Umbrelapp, PLAN.md §4h.
|
|
#
|
|
# Dit is een template, en dat is bewust: umbrelOS ververst bij een update alleen
|
|
# een whitelist van bestanden, en *.template staat daarin. Bij elke start vult
|
|
# umbrelOS de omgevingsvariabelen in en schrijft het resultaat weg als nginx.conf.
|
|
#
|
|
# Let op bij het wijzigen: gebruik hier geen nginx-variabelen met een dollarteken,
|
|
# zoals de gebruikelijke in een log_format. De invulling vervangt elke
|
|
# accolade-variabele en zou die stilzwijgend leegmaken. Daarom staat access_log
|
|
# uit.
|
|
|
|
user nginx;
|
|
worker_processes auto;
|
|
error_log /var/log/nginx/error.log notice;
|
|
pid /var/run/nginx.pid;
|
|
|
|
events {
|
|
worker_connections 1024;
|
|
}
|
|
|
|
http {
|
|
include /etc/nginx/mime.types;
|
|
default_type application/octet-stream;
|
|
access_log off;
|
|
sendfile on;
|
|
|
|
server {
|
|
listen 80;
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
# De API van de agent: de status lezen en een opdracht in de postbus
|
|
# leggen. Dit is het enige pad waarlangs iets van buiten de instellingen
|
|
# van de app raakt.
|
|
#
|
|
# Waarom dat hier te verantwoorden is: dit pad hangt achter de app_proxy
|
|
# van umbrelOS, die er zijn eigen inlog voor zet. De relay staat op een
|
|
# andere poort en is hierlangs niet te bereiken. En het ergste wat een
|
|
# geslaagde aanroep doet is de leerstand omzetten of een eigenaar
|
|
# blokkeren, en dat is precies waar de pagina voor is.
|
|
#
|
|
# Geen proxy_set_header, en dat is geen vergetelheid: die zouden een
|
|
# nginx-variabele vragen en die haalt de template-invulling weg. De agent
|
|
# heeft ze niet nodig.
|
|
# De volledige containernaam en niet de servicenaam 'agent'. Dat stond er
|
|
# eerst, en op het apparaat gaf het een 404 bij ongeveer elke tweede
|
|
# aanroep (28-08-2026): Electrum Gate heeft óók een service 'agent' op
|
|
# poort 8000, beide apps zitten op hetzelfde Docker-netwerk, en de korte
|
|
# naam kan dus naar de verkeerde container wijzen. De vorm
|
|
# <app-id>_<service>_1 is uniek per app. Dezelfde les stond al in de
|
|
# compose van Electrum Gate, over de servicenaam 'server'.
|
|
location /api/ {
|
|
proxy_pass http://whatsnext-evolu-relay_agent_1:8000;
|
|
# Een opdracht is een handvol bytes. De agent kapt zelf ook af, op
|
|
# 4k; dit is de eerste zeef en niet de enige.
|
|
client_max_body_size 4k;
|
|
}
|
|
}
|
|
}
|