diff --git a/CHANGELOG.md b/CHANGELOG.md
index 94d92b6..e3472ec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,15 @@
- Added mxl-avsync (now released) and more complementary projects (MXL
docs and awesome-mxl, EASY MXL, mxl-k8s, BCP-007-03).
- States that this is an independent community project.
-- The Compose examples are unchanged (same pinned images as 0.2.0).
+- Compose examples: current releases. mxl-test-player 1.3.1, mxl-scopes 1.2.1,
+ mxl-audio-mixer 1.6.0, mxl-replay 1.8.7, mxl-browser-source 1.4.0,
+ mxl-srt-gateway 1.5.1, mxl-fabrics-agent 1.7.4 (the others are unchanged).
+ The single-host set was run together on one host with an NVIDIA GPU, every
+ function routed over IS-05. The two-host example passes `docker compose
+ config` only.
+- Single host: the replay could not open its database, because its image runs
+ as uid 1000 and the named volumes for `/config` and `/data/replay` were
+ owned by root. `volume-owner` now hands them to uid 1000 as well.
## 0.2.0 - 2026-10-24
diff --git a/README.md b/README.md
index 2ea106b..100e058 100644
--- a/README.md
+++ b/README.md
@@ -67,6 +67,15 @@ flowchart LR
- Browser previews are low-rate H.264 published to MediaMTX and played over
WebRTC (WHEP).
+
+
+
+
+
+
+The single-host example running: multiviewer, FlowXer vision mixer and audio
+mixer. Every function README has a screenshot of its web UI.
+
## What you can build
Examples of chains made from these functions. Each arrow is an IS-05
diff --git a/compose/multi-host-rdma/fabrics-agent.yaml b/compose/multi-host-rdma/fabrics-agent.yaml
index db23aad..f1ce407 100644
--- a/compose/multi-host-rdma/fabrics-agent.yaml
+++ b/compose/multi-host-rdma/fabrics-agent.yaml
@@ -3,7 +3,7 @@
# when a local NMOS receiver is connected (IS-05) to a flow of the other host.
services:
fabrics-agent:
- image: ghcr.io/leeo86/mxl-fabrics-agent:1.7.3
+ image: ghcr.io/leeo86/mxl-fabrics-agent:1.7.4
network_mode: host # RDMA and the fabric addresses need the host network
pid: host # mirror cleanup checks /proc//maps of every reader
cap_add:
diff --git a/compose/multi-host-rdma/host-a/compose.yaml b/compose/multi-host-rdma/host-a/compose.yaml
index 42b187a..f1b64b8 100644
--- a/compose/multi-host-rdma/host-a/compose.yaml
+++ b/compose/multi-host-rdma/host-a/compose.yaml
@@ -48,7 +48,7 @@ services:
restart: unless-stopped
test-player:
- image: ghcr.io/leeo86/mxl-test-player:1.2.4
+ image: ghcr.io/leeo86/mxl-test-player:1.3.1
network_mode: host
user: "1000:1000"
depends_on: [registry]
diff --git a/compose/single-host/compose.yaml b/compose/single-host/compose.yaml
index d9b5124..5060ba7 100644
--- a/compose/single-host/compose.yaml
+++ b/compose/single-host/compose.yaml
@@ -89,7 +89,7 @@ services:
restart: unless-stopped
test-player:
- image: ghcr.io/leeo86/mxl-test-player:1.2.4
+ image: ghcr.io/leeo86/mxl-test-player:1.3.1
network_mode: host
user: "1000:1000"
depends_on: [registry]
@@ -137,7 +137,7 @@ services:
restart: unless-stopped
scopes:
- image: ghcr.io/leeo86/mxl-scopes:1.1.0
+ image: ghcr.io/leeo86/mxl-scopes:1.2.1
network_mode: host
user: "1000:1000"
depends_on: [registry, mediamtx]
@@ -157,7 +157,7 @@ services:
restart: unless-stopped
audio-mixer:
- image: ghcr.io/leeo86/mxl-audio-mixer:1.4.3
+ image: ghcr.io/leeo86/mxl-audio-mixer:1.6.0
network_mode: host
user: "1000:1000"
depends_on: [registry, mediamtx]
@@ -182,9 +182,15 @@ services:
restart: unless-stopped
replay:
- image: ghcr.io/leeo86/mxl-replay:1.8.1
+ image: ghcr.io/leeo86/mxl-replay:1.8.7
network_mode: host
- depends_on: [registry, mediamtx]
+ depends_on:
+ registry:
+ condition: service_started
+ mediamtx:
+ condition: service_started
+ volume-owner: # the image runs as uid 1000 and has no /config or /data
+ condition: service_completed_successfully
environment:
<<: [*nmos, *preview]
NMOS_SEED: ${STACK_ID:-stack}-replay
@@ -210,7 +216,7 @@ services:
restart: unless-stopped
browser-source:
- image: ghcr.io/leeo86/mxl-browser-source:1.3.3
+ image: ghcr.io/leeo86/mxl-browser-source:1.4.0
network_mode: host
user: "1000:1000"
depends_on: [registry]
@@ -237,9 +243,11 @@ services:
volume-owner:
image: ghcr.io/leeo86/mxl-webrtc-monitor:1.4.2
user: "0:0"
- entrypoint: ["chown", "1000:1000", "/v/monitor-config", "/v/flowxer-storage", "/v/flowxer-config"]
+ entrypoint: ["chown", "1000:1000", "/v/monitor-config", "/v/flowxer-storage", "/v/flowxer-config", "/v/replay-data", "/v/replay-config"]
volumes:
- monitor-config:/v/monitor-config
+ - replay-data:/v/replay-data
+ - replay-config:/v/replay-config
- flowxer-storage:/v/flowxer-storage
- flowxer-config:/v/flowxer-config
@@ -344,7 +352,7 @@ services:
srt-gateway:
profiles: [extras]
- image: ghcr.io/leeo86/mxl-srt-gateway:1.4.4
+ image: ghcr.io/leeo86/mxl-srt-gateway:1.5.1
network_mode: host
depends_on: [registry]
environment:
diff --git a/docs/images/audio-mixer.png b/docs/images/audio-mixer.png
new file mode 100644
index 0000000..7429e1a
Binary files /dev/null and b/docs/images/audio-mixer.png differ
diff --git a/docs/images/flowxer.png b/docs/images/flowxer.png
new file mode 100644
index 0000000..3f82181
Binary files /dev/null and b/docs/images/flowxer.png differ
diff --git a/docs/images/multiviewer.png b/docs/images/multiviewer.png
new file mode 100644
index 0000000..ac6f622
Binary files /dev/null and b/docs/images/multiviewer.png differ