Merge pull request 'add LiveKit Egress and MinIO integration' (#32) from alex_chevski/eatvio-infra:add-livekit-egress into main

Reviewed-on: eatvio/eatvio-infra#32
Reviewed-by: Анатолий Полоз <t0ly.od@ya.ru>
This commit is contained in:
2026-03-13 13:05:51 +00:00
5 changed files with 65 additions and 4 deletions

View File

@@ -18,10 +18,16 @@ PROD_DB_HOST="10.nn.n.n"
PROD_DB_PORT="10nn"
MY_APP_GIT_URL="ssh://git@10.55.5.123:222/eatvio/eatvio.git"
LIVEKIT_URL="livekit.eatv.io"
LIVEKIT_WS_URL="livekit.eatv.io"
LIVEKIT_WS_URL=wss://livekit.eatv.io
LIVEKIT_TURN_DOMAIN="turn.eatv.io"
LIVEKIT_API_KEY=APITRajpYFYdtk9
LIVEKIT_API_SECRET=VKCfO954C3OU0IeeXxZ1fiUDx9ZmWtvNNp9fCHRfO2JH
LIVEKIT_API_KEY=
LIVEKIT_API_SECRET=
LIVEKIT_PORT=7880
LIVEKIT_RTC_TCP_PORT=7881
LIVEKIT_TURN_UDP_PORT=3478
# MinIO S3 Configuration
MINIO_PUBLIC_HOST=testing.eatv.io
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=minioadminpass
MINIO_BUCKET=eatvio-recordings

1
.gitignore vendored
View File

@@ -2,3 +2,4 @@
app/
mysql_data/
typesense-data/
minio_data/.minio.sys

View File

@@ -164,6 +164,28 @@ services:
labels:
- "traefik.enable=false"
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
TZ: Europe/Moscow
volumes:
- ./minio_data:/data
networks:
- ns-eatvio
- web
ports:
- "9010:9000" # S3 API
- "9011:9001" # Web-консоль MinIO (опционально)
labels:
- "traefik.docker.network=web"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:${MINIO_PUBLIC_HOST}"
- "traefik.port=9000"
- "traefik.protocol=http"
livekit:
image: livekit/livekit-server:latest
depends_on:
@@ -198,10 +220,30 @@ services:
labels:
- "traefik.docker.network=web"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:turn.eatv.io,livekit.eatv.io"
- "traefik.frontend.rule=Host:${LIVEKIT_TURN_DOMAIN},${LIVEKIT_URL}"
- "traefik.port=${LIVEKIT_PORT:-7880}"
- "traefik.protocol=http"
livekit-egress:
image: livekit/egress:latest
restart: always
depends_on:
- livekit
- livekit-redis
networks:
- ns-eatvio
environment:
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY}
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET}
LIVEKIT_WS_URL: ${LIVEKIT_WS_URL}
AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER}
AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD}
LIVEKIT_URL: ${LIVEKIT_URL}
REDIS_HOST: livekit-redis:6379
EGRESS_CONFIG_FILE: livekit_egress.yaml
volumes:
- ./livekit_egress.yaml:/config/egress.yaml:ro
networks:
web:
external: true

11
livekit_egress.yaml Normal file
View File

@@ -0,0 +1,11 @@
ws_url: ${LIVEKIT_WS_URL}
redis:
address: livekit-redis:6379
storage:
s3:
region: us-east-1
bucket: ${MINIO_BUCKET}
endpoint: https://${MINIO_PUBLIC_HOST}
force_path_style: true

View File

@@ -13,6 +13,7 @@ RUN apt-get update && \
php8.4-memcached \
php8.4-pgsql \
php8.4-xdebug \
php8.4-sodium \
python3-pkg-resources supervisor ffmpeg jpegoptim \
nodejs && npm install -g npm@latest \
apt-get clean; \