feat(docker): add ffmpeg and media env config

This commit is contained in:
zarazaex69
2026-05-17 20:55:42 +03:00
parent f1cad5d6a2
commit 6db5a53351
3 changed files with 69 additions and 3 deletions

View File

@@ -25,7 +25,7 @@ RUN --mount=type=cache,target=/go/pkg/mod \
FROM alpine:${ALPINE_VERSION} AS runtime FROM alpine:${ALPINE_VERSION} AS runtime
RUN apk add --no-cache ca-certificates tzdata && \ RUN apk add --no-cache ca-certificates ffmpeg tzdata && \
addgroup -S olcrtc && \ addgroup -S olcrtc && \
mkdir -p /usr/share/olcrtc /var/lib/olcrtc && \ mkdir -p /usr/share/olcrtc /var/lib/olcrtc && \
adduser -S -D -h /var/lib/olcrtc -s /sbin/nologin -G olcrtc olcrtc && \ adduser -S -D -h /var/lib/olcrtc -s /sbin/nologin -G olcrtc olcrtc && \
@@ -43,9 +43,13 @@ WORKDIR /var/lib/olcrtc
ENV OLCRTC_MODE=srv \ ENV OLCRTC_MODE=srv \
OLCRTC_CARRIER= \ OLCRTC_CARRIER= \
OLCRTC_TRANSPORT=datachannel \
OLCRTC_DATA_DIR=/usr/share/olcrtc \ OLCRTC_DATA_DIR=/usr/share/olcrtc \
OLCRTC_DNS=1.1.1.1:53 \ OLCRTC_DNS=1.1.1.1:53 \
OLCRTC_KEY_FILE=/var/lib/olcrtc/key.hex OLCRTC_KEY_FILE=/var/lib/olcrtc/key.hex \
OLCRTC_SOCKS_HOST=127.0.0.1 \
OLCRTC_SOCKS_PORT=8808 \
OLCRTC_FFMPEG=ffmpeg
VOLUME ["/var/lib/olcrtc"] VOLUME ["/var/lib/olcrtc"]

43
docker-compose.client.yml Normal file
View File

@@ -0,0 +1,43 @@
services:
olcrtc-client:
build:
context: .
image: olcrtc/client:local
container_name: olcrtc-client
restart: unless-stopped
network_mode: host
environment:
OLCRTC_MODE: cnc
OLCRTC_CARRIER: "${OLCRTC_CARRIER:?set OLCRTC_CARRIER (jitsi, telemost, jazz, wbstream, none)}"
OLCRTC_TRANSPORT: "${OLCRTC_TRANSPORT:-datachannel}"
OLCRTC_ROOM_ID: "${OLCRTC_ROOM_ID:?set OLCRTC_ROOM_ID to the server room}"
OLCRTC_KEY: "${OLCRTC_KEY:?set OLCRTC_KEY to the server encryption key}"
OLCRTC_KEY_FILE: "${OLCRTC_KEY_FILE:-/var/lib/olcrtc/key.hex}"
OLCRTC_DNS: "${OLCRTC_DNS:-1.1.1.1:53}"
OLCRTC_SOCKS_HOST: "${OLCRTC_SOCKS_HOST:-127.0.0.1}"
OLCRTC_SOCKS_PORT: "${OLCRTC_SOCKS_PORT:-8808}"
OLCRTC_SOCKS_USER: "${OLCRTC_SOCKS_USER:-}"
OLCRTC_SOCKS_PASS: "${OLCRTC_SOCKS_PASS:-}"
OLCRTC_VIDEO_W: "${OLCRTC_VIDEO_W:-0}"
OLCRTC_VIDEO_H: "${OLCRTC_VIDEO_H:-0}"
OLCRTC_VIDEO_FPS: "${OLCRTC_VIDEO_FPS:-0}"
OLCRTC_VIDEO_BITRATE: "${OLCRTC_VIDEO_BITRATE:-}"
OLCRTC_VIDEO_HW: "${OLCRTC_VIDEO_HW:-none}"
OLCRTC_VIDEO_CODEC: "${OLCRTC_VIDEO_CODEC:-qrcode}"
OLCRTC_VIDEO_QR_SIZE: "${OLCRTC_VIDEO_QR_SIZE:-0}"
OLCRTC_VIDEO_QR_RECOVERY: "${OLCRTC_VIDEO_QR_RECOVERY:-low}"
OLCRTC_VIDEO_TILE_MODULE: "${OLCRTC_VIDEO_TILE_MODULE:-0}"
OLCRTC_VIDEO_TILE_RS: "${OLCRTC_VIDEO_TILE_RS:-0}"
OLCRTC_VP8_FPS: "${OLCRTC_VP8_FPS:-0}"
OLCRTC_VP8_BATCH: "${OLCRTC_VP8_BATCH:-0}"
OLCRTC_SEI_FPS: "${OLCRTC_SEI_FPS:-0}"
OLCRTC_SEI_BATCH: "${OLCRTC_SEI_BATCH:-0}"
OLCRTC_SEI_FRAG: "${OLCRTC_SEI_FRAG:-0}"
OLCRTC_SEI_ACK: "${OLCRTC_SEI_ACK:-0}"
OLCRTC_DEBUG: "${OLCRTC_DEBUG:-false}"
volumes:
- olcrtc-client-state:/var/lib/olcrtc
init: true
volumes:
olcrtc-client-state:

View File

@@ -6,12 +6,31 @@ services:
container_name: olcrtc-server container_name: olcrtc-server
restart: unless-stopped restart: unless-stopped
environment: environment:
OLCRTC_AUTH: "${OLCRTC_AUTH:?set OLCRTC_AUTH (telemost, jazz, wbstream)}" OLCRTC_MODE: srv
OLCRTC_CARRIER: "${OLCRTC_CARRIER:?set OLCRTC_CARRIER (jitsi, telemost, jazz, wbstream, none)}"
OLCRTC_TRANSPORT: "${OLCRTC_TRANSPORT:-datachannel}"
OLCRTC_ROOM_ID: "${OLCRTC_ROOM_ID:-}" OLCRTC_ROOM_ID: "${OLCRTC_ROOM_ID:-}"
OLCRTC_KEY: "${OLCRTC_KEY:-}" OLCRTC_KEY: "${OLCRTC_KEY:-}"
OLCRTC_KEY_FILE: "${OLCRTC_KEY_FILE:-/var/lib/olcrtc/key.hex}"
OLCRTC_DNS: "${OLCRTC_DNS:-1.1.1.1:53}" OLCRTC_DNS: "${OLCRTC_DNS:-1.1.1.1:53}"
OLCRTC_SOCKS_PROXY: "${OLCRTC_SOCKS_PROXY:-}" OLCRTC_SOCKS_PROXY: "${OLCRTC_SOCKS_PROXY:-}"
OLCRTC_SOCKS_PROXY_PORT: "${OLCRTC_SOCKS_PROXY_PORT:-1080}" OLCRTC_SOCKS_PROXY_PORT: "${OLCRTC_SOCKS_PROXY_PORT:-1080}"
OLCRTC_VIDEO_W: "${OLCRTC_VIDEO_W:-0}"
OLCRTC_VIDEO_H: "${OLCRTC_VIDEO_H:-0}"
OLCRTC_VIDEO_FPS: "${OLCRTC_VIDEO_FPS:-0}"
OLCRTC_VIDEO_BITRATE: "${OLCRTC_VIDEO_BITRATE:-}"
OLCRTC_VIDEO_HW: "${OLCRTC_VIDEO_HW:-none}"
OLCRTC_VIDEO_CODEC: "${OLCRTC_VIDEO_CODEC:-qrcode}"
OLCRTC_VIDEO_QR_SIZE: "${OLCRTC_VIDEO_QR_SIZE:-0}"
OLCRTC_VIDEO_QR_RECOVERY: "${OLCRTC_VIDEO_QR_RECOVERY:-low}"
OLCRTC_VIDEO_TILE_MODULE: "${OLCRTC_VIDEO_TILE_MODULE:-0}"
OLCRTC_VIDEO_TILE_RS: "${OLCRTC_VIDEO_TILE_RS:-0}"
OLCRTC_VP8_FPS: "${OLCRTC_VP8_FPS:-0}"
OLCRTC_VP8_BATCH: "${OLCRTC_VP8_BATCH:-0}"
OLCRTC_SEI_FPS: "${OLCRTC_SEI_FPS:-0}"
OLCRTC_SEI_BATCH: "${OLCRTC_SEI_BATCH:-0}"
OLCRTC_SEI_FRAG: "${OLCRTC_SEI_FRAG:-0}"
OLCRTC_SEI_ACK: "${OLCRTC_SEI_ACK:-0}"
OLCRTC_DEBUG: "${OLCRTC_DEBUG:-false}" OLCRTC_DEBUG: "${OLCRTC_DEBUG:-false}"
volumes: volumes:
- olcrtc-state:/var/lib/olcrtc - olcrtc-state:/var/lib/olcrtc