openvidu/openvidu-deployment/pro/local-meet/docker-compose.yaml

319 lines
10 KiB
YAML
Raw Normal View History

2025-08-27 18:51:24 +02:00
services:
caddy-proxy:
image: docker.io/openvidu/openvidu-caddy-local:main
platform: linux/amd64
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
environment:
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey}
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-secret}
- DASHBOARD_ADMIN_USERNAME=${DASHBOARD_ADMIN_USERNAME:-admin}
- DASHBOARD_ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-admin}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-minioadmin}
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-minioadmin}
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-secret}
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-admin}
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-admin}
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-meet-api-key}
2025-08-27 18:51:24 +02:00
volumes:
- scripts:/scripts
entrypoint: /bin/sh /scripts/entrypoint_caddy.sh
ports:
- 5443:5443
- 6443:6443
- 7443:7443
- 7880:7880
- 9443:9443
depends_on:
setup:
condition: service_completed_successfully
redis:
image: docker.io/redis:7.4.4-alpine
platform: linux/amd64
restart: unless-stopped
ports:
- 6379:6379
volumes:
- redis:/data
command: >
redis-server
--bind 0.0.0.0
--requirepass ${REDIS_PASSWORD:-redispassword}
2025-08-27 18:51:24 +02:00
depends_on:
setup:
condition: service_completed_successfully
minio:
image: docker.io/openvidu/minio:2025.5.24-debian-12-r1
2025-08-27 18:51:24 +02:00
platform: linux/amd64
restart: unless-stopped
ports:
- 9000:9000
environment:
- MINIO_ROOT_USER=${MINIO_ACCESS_KEY:-minioadmin}
- MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY:-minioadmin}
2025-08-27 18:51:24 +02:00
- MINIO_DEFAULT_BUCKETS=openvidu-appdata
- MINIO_CONSOLE_SUBPATH=/minio-console
- MINIO_BROWSER_REDIRECT_URL=http://localhost:7880/minio-console
volumes:
- minio-data:/bitnami/minio/data
- minio-certs:/certs
depends_on:
setup:
condition: service_completed_successfully
mongo:
image: docker.io/openvidu/mongodb:8.0.9
2025-08-27 18:51:24 +02:00
platform: linux/amd64
restart: unless-stopped
ports:
- 27017:27017
volumes:
- mongo-data:/bitnami/mongodb
environment:
- MONGODB_ROOT_USER=${MONGO_ADMIN_USERNAME:-mongoadmin}
- MONGODB_ROOT_PASSWORD=${MONGO_ADMIN_PASSWORD:-mongoadmin}
2025-08-27 18:51:24 +02:00
- MONGODB_ADVERTISED_HOSTNAME=mongo
- MONGODB_REPLICA_SET_MODE=primary
- MONGODB_REPLICA_SET_NAME=rs0
- MONGODB_REPLICA_SET_KEY=devreplicasetkey
- EXPERIMENTAL_DOCKER_DESKTOP_FORCE_QEMU=1
depends_on:
setup:
condition: service_completed_successfully
dashboard:
image: docker.io/openvidu/openvidu-dashboard:main
platform: linux/amd64
restart: unless-stopped
environment:
- SERVER_PORT=5000
- ADMIN_USERNAME=${DASHBOARD_ADMIN_USERNAME:-admin}
- ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-admin}
- DATABASE_URL=mongodb://${MONGO_ADMIN_USERNAME:-mongoadmin}:${MONGO_ADMIN_PASSWORD:-mongoadmin}@mongo:27017/?replicaSet=rs0&readPreference=primaryPreferred
2025-08-27 18:51:24 +02:00
depends_on:
setup:
condition: service_completed_successfully
openvidu:
image: docker.io/openvidu/openvidu-server-pro:main
platform: linux/amd64
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
environment:
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
- OPENVIDU_DEPLOYMENT_TYPE=local
- OPENVIDU_ENVIRONMENT=on_premise
ports:
- 3478:3478/udp
- 7881:7881/tcp
- 7900-7999:7900-7999/udp
entrypoint: /bin/sh /scripts/entrypoint_openvidu.sh
command: --config /config/livekit.yaml
volumes:
- scripts:/scripts
- config:/config
depends_on:
setup:
condition: service_completed_successfully
ingress:
image: docker.io/openvidu/ingress:main
platform: linux/amd64
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
ports:
- 1935:1935
- 8085:8085
- 7895:7895/udp
environment:
- INGRESS_CONFIG_FILE=/config/ingress.yaml
volumes:
- config:/config
depends_on:
setup:
condition: service_completed_successfully
egress:
image: docker.io/livekit/egress:v1.10.0
2025-08-27 18:51:24 +02:00
platform: linux/amd64
restart: unless-stopped
extra_hosts:
- host.docker.internal:host-gateway
environment:
- EGRESS_CONFIG_FILE=/config/egress.yaml
volumes:
- config:/config
- egress-data:/home/egress/tmp
depends_on:
setup:
condition: service_completed_successfully
operator:
image: docker.io/openvidu/openvidu-operator:main
platform: linux/amd64
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- agents-config:/agents-config
- operator-deployment:/deployment
environment:
- PLATFORM=linux/amd64
- MODE=agent-manager-local
- DEPLOYMENT_FILES_DIR=/deployment
- AGENTS_CONFIG_DIR=/agents-config
- NETWORK_NAME=openvidu-community
- AGENTS_CONFIG_VOLUME=openvidu-agents-config
- LIVEKIT_URL=ws://openvidu:7880/
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey}
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-secret}
- REDIS_ADDRESS=redis:6379
- REDIS_PASSWORD=${REDIS_PASSWORD:-redispassword}
depends_on:
setup:
condition: service_completed_successfully
2025-08-27 18:51:24 +02:00
openvidu-meet:
image: docker.io/openvidu/openvidu-meet:main
platform: linux/amd64
restart: on-failure
ports:
- 9080:6080
extra_hosts:
- host.docker.internal:host-gateway
environment:
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
- SERVER_PORT=6080
- MEET_LOG_LEVEL=info
- MEET_NAME_ID=openviduMeet-LOCAL
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-meet-api-key}
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-admin}
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-admin}
2025-08-27 18:51:24 +02:00
- MEET_COOKIE_SECURE=false
- MEET_INITIAL_WEBHOOK_ENABLED=true
- MEET_INITIAL_WEBHOOK_URL=http://host.docker.internal:5080/webhook
- LIVEKIT_URL_PRIVATE=ws://openvidu:7880/
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey}
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-secret}
2025-08-27 18:51:24 +02:00
- MEET_S3_BUCKET=openvidu-appdata
- MEET_S3_SUBBUCKET=openvidu-meet
- MEET_S3_SERVICE_ENDPOINT=http://minio:9000
- MEET_S3_ACCESS_KEY=${MINIO_ACCESS_KEY:-minioadmin}
- MEET_S3_SECRET_KEY=${MINIO_SECRET_KEY:-minioadmin}
2025-08-27 18:51:24 +02:00
- MEET_AWS_REGION=us-east-1
- MEET_S3_WITH_PATH_STYLE_ACCESS=true
- MEET_REDIS_HOST=redis
- MEET_REDIS_PORT=6379
- MEET_REDIS_PASSWORD=${REDIS_PASSWORD:-redispassword}
2025-08-27 18:51:24 +02:00
- MEET_REDIS_DB=0
volumes:
- scripts:/scripts
entrypoint: /bin/sh /scripts/entrypoint_openvidu_meet.sh
depends_on:
setup:
condition: service_completed_successfully
openvidu-v2compatibility:
image: docker.io/openvidu/openvidu-v2compatibility:main
platform: linux/amd64
restart: unless-stopped
entrypoint: /bin/sh /scripts/entrypoint_openvidu_v2_compat.sh
extra_hosts:
- host.docker.internal:host-gateway
ports:
- 4443:4443
environment:
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
- V2COMPAT_OPENVIDU_SHIM_PORT=4443
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-secret}
2025-08-27 18:51:24 +02:00
- V2COMPAT_LIVEKIT_URL_PRIVATE=ws://openvidu:7880
- V2COMPAT_LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey}
- V2COMPAT_LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-secret}
2025-08-27 18:51:24 +02:00
- V2COMPAT_OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings
- V2COMPAT_OPENVIDU_PRO_RECORDING_STORAGE=local
- V2COMPAT_OPENVIDU_PRO_AWS_S3_BUCKET=openvidu-appdata
- V2COMPAT_OPENVIDU_PRO_AWS_S3_SERVICE_ENDPOINT=http://minio:9000
- V2COMPAT_OPENVIDU_PRO_AWS_REGION=us-east-1
- V2COMPAT_OPENVIDU_PRO_AWS_ACCESS_KEY=${MINIO_ACCESS_KEY:-minioadmin}
- V2COMPAT_OPENVIDU_PRO_AWS_SECRET_KEY=${MINIO_SECRET_KEY:-minioadmin}
2025-08-27 18:51:24 +02:00
- V2COMPAT_REDIS_HOST=redis
- V2COMPAT_REDIS_PORT=6379
- V2COMPAT_REDIS_PASSWORD=${REDIS_PASSWORD:-redispassword}
2025-08-27 18:51:24 +02:00
- V2COMPAT_REDIS_DB=0
- V2COMPAT_OPENVIDU_WEBHOOK=false
- V2COMPAT_OPENVIDU_WEBHOOK_ENDPOINT=http://host.docker.internal:7777/webhook
- OPENVIDU_DEPLOYMENT_TYPE=local
volumes:
- v2compat-recordings:/opt/openvidu/recordings
- scripts:/scripts
depends_on:
setup:
condition: service_completed_successfully
openvidu-meet-init:
2025-08-27 18:51:24 +02:00
image: docker.io/openvidu/openvidu-operator:main
platform: linux/amd64
restart: on-failure
environment:
- MODE=local-ready-check
- OPENVIDU_ENVIRONMENT=local-meet
2025-08-27 18:51:24 +02:00
- LAN_PRIVATE_IP=${LAN_PRIVATE_IP:-}
- DASHBOARD_ADMIN_USERNAME=${DASHBOARD_ADMIN_USERNAME:-admin}
- DASHBOARD_ADMIN_PASSWORD=${DASHBOARD_ADMIN_PASSWORD:-admin}
- MINIO_ACCESS_KEY=${MINIO_ACCESS_KEY:-minioadmin}
- MINIO_SECRET_KEY=${MINIO_SECRET_KEY:-minioadmin}
- LIVEKIT_API_KEY=${LIVEKIT_API_KEY:-devkey}
- LIVEKIT_API_SECRET=${LIVEKIT_API_SECRET:-secret}
- V2COMPAT_OPENVIDU_SECRET=${LIVEKIT_API_SECRET:-secret}
- MEET_INITIAL_ADMIN_USER=${MEET_INITIAL_ADMIN_USER:-admin}
- MEET_INITIAL_ADMIN_PASSWORD=${MEET_INITIAL_ADMIN_PASSWORD:-admin}
- MEET_INITIAL_API_KEY=${MEET_INITIAL_API_KEY:-meet-api-key}
2025-08-27 18:51:24 +02:00
volumes:
- scripts:/scripts
entrypoint: /bin/sh /scripts/entrypoint_ready_check.sh
depends_on:
- caddy-proxy
- redis
- minio
- mongo
- dashboard
2025-08-27 18:51:24 +02:00
- openvidu
- ingress
- egress
- operator
- openvidu-meet
- openvidu-v2compatibility
2025-08-27 18:51:24 +02:00
volumes:
scripts:
name: openvidu-pro-scripts
config:
name: openvidu-pro-config
agents-config:
name: openvidu-pro-agents-config
minio-certs:
name: openvidu-pro-minio-certs
mongodb-config:
name: openvidu-pro-mongodb-config
redis:
name: openvidu-pro-redis
minio-data:
name: openvidu-pro-minio-data
mongo-data:
name: openvidu-pro-mongo-data
egress-data:
name: openvidu-pro-egress-data
operator-deployment:
name: openvidu-pro-operator-deployment
2025-08-27 18:51:24 +02:00
v2compat-recordings:
name: openvidu-pro-v2compat-recordings
networks:
default:
name: openvidu-pro