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.
36 lines
1.0 KiB
YAML
36 lines
1.0 KiB
YAML
# Fluksio in one container. From a clone of this repository:
|
|
#
|
|
# docker compose up -d
|
|
# docker compose logs fluksio # the admin password, printed once
|
|
#
|
|
# then open http://localhost:8080. Change the left side of `ports` to use
|
|
# another host port. The operator stack under docker/ is a different file.
|
|
name: fluksio
|
|
|
|
services:
|
|
fluksio:
|
|
build:
|
|
context: .
|
|
dockerfile: backend/Dockerfile
|
|
args:
|
|
# Optional features, comma separated: mqtt, influx, email, sentry, ml,
|
|
# or server for all of them. Rebuild after a change: `docker compose up -d --build`.
|
|
EXTRAS: ""
|
|
image: fluksio:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8000"
|
|
volumes:
|
|
- data:/data
|
|
environment:
|
|
# The address people and devices reach this instance at. Panel links and
|
|
# mails are built from it.
|
|
FRONTEND_HOST: http://localhost:8080
|
|
# Schedules run in this timezone, such as Europe/Berlin.
|
|
TZ: UTC
|
|
# Where frames a flow only shows live are held.
|
|
shm_size: 128mb
|
|
|
|
volumes:
|
|
data:
|