multistreaming: scenes/composition, installer build support, service updates
- multistreaming (new): RTMP ingest + multi-platform fan-out with pluggable providers (Twitch/YouTube/Kick/custom), zero-knowledge key vaults, Authelia OIDC auth, shared rooms with editor/streamer roles, single-use invites, per-account streaming grants, and scenes & composition (grid/PiP layouts, text/image overlays, per-output audio routing). - installer: support Dockerfile build in metadata (not just image) and RSA key generation for the Authelia OIDC JWKS. - authelia: add OIDC provider with portainer + multistreaming clients (public + PKCE). - services: remove allprox; add nginx-proxy-manager and portainer; update lldap; regenerate catalog.
This commit is contained in:
parent
bb754cdd8c
commit
187379de4e
106 changed files with 21391 additions and 286 deletions
45
services/multistreaming/Dockerfile
Normal file
45
services/multistreaming/Dockerfile
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# multistreaming — ingest one RTMP feed and restream it to many targets.
|
||||
# Build: docker build -t multistreaming .
|
||||
# Run: docker run -p 1935:1935 -p 8080:8080 -v ms_data:/data multistreaming
|
||||
|
||||
# ---- frontend build stage ------------------------------------------------
|
||||
FROM node:22-alpine AS web
|
||||
WORKDIR /web
|
||||
COPY web/package.json web/package-lock.json ./
|
||||
RUN npm ci
|
||||
COPY web/ ./
|
||||
RUN npm run build
|
||||
|
||||
# ---- backend deps stage --------------------------------------------------
|
||||
FROM node:22-alpine AS deps
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm ci --omit=dev
|
||||
|
||||
# ---- runtime stage --------------------------------------------------------
|
||||
FROM node:22-alpine
|
||||
WORKDIR /app
|
||||
|
||||
# FFmpeg does the actual fan-out (remux passthrough, or re-encode for scenes).
|
||||
# font-dejavu is a hard runtime dependency of the drawtext text overlay filter.
|
||||
RUN apk add --no-cache ffmpeg font-dejavu
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY src ./src
|
||||
COPY --from=web /web/dist ./web/dist
|
||||
|
||||
# Persistent state (vaults, rooms, accounts, feeds) lives here; mount a volume.
|
||||
# Pre-create it and hand ownership to the runtime user so a fresh named
|
||||
# volume is writable without root.
|
||||
RUN mkdir -p /data && chown node:node /data
|
||||
VOLUME ["/data"]
|
||||
ENV DATA_DIR=/data \
|
||||
RTMP_PORT=1935 \
|
||||
HTTP_PORT=8080
|
||||
|
||||
EXPOSE 1935 8080
|
||||
|
||||
USER node
|
||||
CMD ["node", "src/index.js"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue