forked from eatvio/eatvio-infra
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:
@@ -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
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
app/
|
||||
mysql_data/
|
||||
typesense-data/
|
||||
minio_data/.minio.sys
|
||||
|
||||
@@ -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
11
livekit_egress.yaml
Normal 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
|
||||
@@ -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; \
|
||||
|
||||
Reference in New Issue
Block a user