mirror of
https://github.com/BetterCorp/BetterFrame.git
synced 2026-05-26 15:46:35 +00:00
Route backend, kiosk ingest, kiosk dashboards, and public Node-RED HTTP-in separately. Keep Node-RED editor under admin auth and attach kiosk auth when kiosk loads protected dashboard URLs.
66 lines
1.5 KiB
YAML
66 lines
1.5 KiB
YAML
# BetterFrame stack: server + Angie proxy + Node-RED.
|
|
# Kiosk runs on the Pi natively (not in Docker, needs Wayland/HDMI).
|
|
#
|
|
# Usage:
|
|
# docker compose -f deploy/docker/docker-compose.yml up -d --build
|
|
#
|
|
# Volumes:
|
|
# betterframe-data: sqlite DB + secret.key
|
|
# nodered-data: Node-RED flows
|
|
#
|
|
# Only 0.0.0.0:80 is published on the host. Backend services and Node-RED
|
|
# are reachable only from within the Docker network.
|
|
version: "3.8"
|
|
|
|
services:
|
|
server:
|
|
build:
|
|
context: ../..
|
|
dockerfile: deploy/docker/Dockerfile.server
|
|
container_name: betterframe-server
|
|
restart: unless-stopped
|
|
volumes:
|
|
- betterframe-data:/var/lib/betterframe
|
|
- ./sec-config.yaml:/app/server/sec-config.yaml:ro
|
|
expose:
|
|
- "18080"
|
|
- "18081"
|
|
- "18082"
|
|
networks:
|
|
- betterframe
|
|
|
|
angie:
|
|
image: nginx:alpine
|
|
container_name: betterframe-angie
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- server
|
|
- nodered
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ../angie/betterframe.docker.conf:/etc/nginx/conf.d/default.conf:ro
|
|
networks:
|
|
- betterframe
|
|
|
|
nodered:
|
|
image: nodered/node-red:latest
|
|
container_name: betterframe-nodered
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=UTC
|
|
volumes:
|
|
- nodered-data:/data
|
|
- ./nodered-settings.js:/data/settings.js:ro
|
|
expose:
|
|
- "1880"
|
|
networks:
|
|
- betterframe
|
|
|
|
volumes:
|
|
betterframe-data:
|
|
nodered-data:
|
|
|
|
networks:
|
|
betterframe:
|
|
driver: bridge
|