mirror of
https://github.com/BetterCorp/BetterFrame.git
synced 2026-05-26 21:26:33 +00:00
Deployment (deploy/): - systemd units for server (system) and kiosk (user session) - Angie/nginx proxy config — routes admin, api, ws, node-red - Dockerfile + docker-compose for containerized deployment - deploy/README.md with install instructions Auth: - /api/admin/_check endpoint for proxy auth_request subrequest - Returns 200 if admin session valid, 401/403 otherwise - Sets X-BetterFrame-User header for upstream CEC (Pi5 HDMI control): - kiosk/src/cec.rs wraps cec-ctl subprocess - Standby/wake/active-source commands - WS message types "standby" / "wake" dispatched to CEC - Admin UI: Wake/Standby buttons on kiosk edit page - Server sendToKiosk via coordinator
65 lines
1.4 KiB
YAML
65 lines
1.4 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
|
|
#
|
|
# Volumes:
|
|
# betterframe-data — sqlite DB + secret.key
|
|
# nodered-data — Node-RED flows
|
|
#
|
|
# Bind 0.0.0.0:80 on the host (Angie). Backend services only reachable
|
|
# 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/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.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
|
|
expose:
|
|
- "1880"
|
|
networks:
|
|
- betterframe
|
|
|
|
volumes:
|
|
betterframe-data:
|
|
nodered-data:
|
|
|
|
networks:
|
|
betterframe:
|
|
driver: bridge
|