# s2s-reasoning-engine: Node-RED 5.0 custom image

# Usa Node-RED 5.x ufficiale (immagine Alpine per dimensioni ridotte)
FROM nodered/node-red:5.0.3

# Porta di default di Node-RED (esposta in reti containerizzate)
EXPOSE 1880

# 1) Installa nodi aggiuntivi (a livello utente node-red nella cartella dati)
#    - node-red-contrib-openai: integrazione nativa Chat Completions / Embeddings
#    - node-red-contrib-http-logger: log HTTP opzionale
#    - node-red-contrib-cache: cache in-memory per dati Aquachile (opzionale)
#    - node-red-node-rbe: report-by-exception per deduplicare eventi
RUN cd /data && npm install --no-audit --no-fund \
    node-red-contrib-openai@0.11.0 \
    node-red-contrib-cache@1.1.1 \
    node-red-node-rbe@0.5.0

# 2) Copia file di configurazione e flows iniziali
COPY settings.js /data/settings.js
COPY flows.json /data/flows.json

# 3) Imposta Node-RED per caricare flows statici + disabilita progetto e auth
#    (per ambiente di sviluppo; in produzione abilitare adminAuth in settings.js)
ENV NODE_RED_FLOWS_FILE=/data/flows.json
ENV NODE_RED_CREDENTIAL_SECRET=s2s-reasoning-dev-secret
ENV FLOWS=/data/flows.json

# Avvio Node-RED
CMD ["npm", "start", "--", "--userDir", "/data", "--settings", "/data/settings.js"]
