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>
This commit is contained in:
+6
-5
@@ -144,6 +144,7 @@ import subprocess
|
||||
import tempfile
|
||||
|
||||
import fluksio
|
||||
import imageio_ffmpeg
|
||||
|
||||
# H.264 Constrained Baseline, at most 640x360 and 15 fps, mono AAC.
|
||||
PANEL = [
|
||||
@@ -157,10 +158,11 @@ PANEL = [
|
||||
|
||||
def process(clip):
|
||||
source = fluksio.load_artifact(clip)
|
||||
ffmpeg = imageio_ffmpeg.get_ffmpeg_exe()
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
target = os.path.join(tmp, "panel.mp4")
|
||||
subprocess.run(
|
||||
["ffmpeg", "-nostdin", "-loglevel", "error", "-i", source, *PANEL, target],
|
||||
[ffmpeg, "-nostdin", "-loglevel", "error", "-i", source, *PANEL, target],
|
||||
check=True,
|
||||
timeout=600,
|
||||
)
|
||||
@@ -169,10 +171,9 @@ def process(clip):
|
||||
```
|
||||
|
||||
Use it only for clips headed for such a panel. Browsers play the originals,
|
||||
and the result plays there too, just smaller. The node needs `ffmpeg` on the
|
||||
`PATH`. The Docker image includes it only when built with
|
||||
[`WITH_FFMPEG=true`](../reference/configuration.md#image-options) in `.env`.
|
||||
Otherwise run the node on a [remote worker](workers.md) that has it.
|
||||
and the result plays there too, just smaller. Add `imageio-ffmpeg` on the
|
||||
**Modules** screen first. It brings a static `ffmpeg` build for Linux on x86
|
||||
and ARM, so nothing has to be installed into the image.
|
||||
|
||||
### Speech to and from a panel
|
||||
|
||||
|
||||
Reference in New Issue
Block a user