Files
app/docker/compose.local.yml
T
stroblmeandClaude Opus 5.5 48aac3855b One image for the whole app: engine, API and dashboard on one port
The backend image now builds the SPA and serves it on the API's own origin
(fluksio/spa.py), so an instance is a single container with no proxy, DNS,
port 80 or .env: `docker compose up -d` with the new compose.yml runs it on
localhost:8080. It starts on fluksio serve (persisted secret key, first
admin printed once) and brings its own Redis when REDIS_HOST is unset.

Slimmer: python:3.13-slim, no dev group, uv once, fastapi without the cloud
CLI. Optional features are per-feature extras (mqtt, influx, email, sentry,
ml, server for all) picked with the EXTRAS build argument; numpy moved to
`ml`. ffmpeg left the image for imageio-ffmpeg via the Modules screen.

The operator stack runs the same image with app. and api. routed to it; the
nginx frontend service, the LAN nginx proxy and DOMAIN in the backend are
gone, and the MCP issuer is FRONTEND_HOST.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 11:40:02 +02:00

40 lines
1.2 KiB
YAML

# Integrated local stack — layered on top of compose.yml + compose.dev.yml by
# the root `make dev`. Reattaches this stack's Traefik to the shared external
# `proxy` network so it also routes the website stack's containers, and serves
# everything over plain http on *.${DOMAIN} (default *.localhost).
# Everything here is reachable through Traefik on *.${DOMAIN}, so the host ports
# compose.dev.yml publishes are dropped: they add nothing and make the whole
# stack fail to start whenever something else on the host already holds one.
services:
proxy:
networks:
- proxy
- default
ports: !override
- "80:80"
db:
ports: !reset []
adminer:
ports: !reset []
mailcatcher:
ports: !reset []
backend:
ports: !reset []
environment:
- ENVIRONMENT=local
- FRONTEND_HOST=http://app.${DOMAIN:-localhost}
# Last entry: the standalone Vite dev server (`make dev-frontend`), which
# talks to this backend rather than running one of its own.
- BACKEND_CORS_ORIGINS=http://${DOMAIN:-localhost},http://app.${DOMAIN:-localhost},http://localhost:5173
networks:
# Shared with the website stack; created by the root scripts/setup.sh.
proxy:
external: true