Plan Eigenimage, fase 5, op keuze van de gebruiker: een image met de relay erbij en geen tweede recept. agent.py, nginx.conf en index.html verhuizen naar tools/evolu-relay/ naast src/; de Dockerfile blijft op node:24-slim en haalt nginx en python3 uit apt. Drie containers uit een image: de relay als node via de compose, de agent en nginx als root. Anders dan alleen verplaatst: user www-data in nginx.conf (Debian heeft geen gebruiker nginx), geen USER meer in de image, de versie in de kop via api/status met RELAY_APP_VERSION. VERSION 0.6.0, manifest 0.6.0, drie keer dezelfde tag in de compose, ongepind tot de eerste push. Tests mee verhuisd; de vormtest toetst de drie tags tegen VERSION. Niet gebouwd: er is hier geen Docker. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
66 lines
2.8 KiB
Nginx Configuration File
66 lines
2.8 KiB
Nginx Configuration File
# 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 bestand zit in de image (tools/evolu-relay/Dockerfile) als
|
|
# /etc/nginx/nginx.conf. Tot 0.5.6 was het een *.template in de app-map die
|
|
# umbreld bij elke start door envsubst haalde, en daarom mocht er toen geen
|
|
# nginx-variabele met een dollarteken in staan. Die beperking is weg. Dat de
|
|
# access_log nog steeds uit staat is een keuze en geen restant: de pagina hangt
|
|
# achter de app_proxy en wat die opvraagt is niet interessant.
|
|
|
|
# www-data en niet nginx: deze nginx komt uit Debian (de image is node:24-slim
|
|
# met nginx uit apt), en Debian heeft geen gebruiker nginx. Bij Electrum Gate
|
|
# staat hier wél nginx, want die image is de officiële nginx-image.
|
|
user www-data;
|
|
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: 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;
|
|
}
|
|
}
|
|
}
|