# ------------------------------------------------------------------------------ # # DO NOT MODIFY THIS FILE !!! # # Configuration properties should be specified in .env file # # Application based on OpenVidu should be specified in # docker-compose.override.yml file # # This docker-compose file coordinates all services of OpenVidu Pro Platform # # This file will be overridden when update OpenVidu Platform # # Openvidu Version: 2.30.0 # # Installation Mode: OpenVidu PRO On Premises - Mono Node # # ------------------------------------------------------------------------------ version: '3.1' services: openvidu-server: image: openvidu/openvidu-server-pro:2.30.0 restart: on-failure network_mode: host entrypoint: ['/usr/local/bin/entrypoint.sh'] volumes: - ./coturn:/run/secrets/coturn - /var/run/docker.sock:/var/run/docker.sock - ${OPENVIDU_RECORDING_PATH}:${OPENVIDU_RECORDING_PATH} - ${OPENVIDU_RECORDING_CUSTOM_LAYOUT}:${OPENVIDU_RECORDING_CUSTOM_LAYOUT} - ${OPENVIDU_CDR_PATH}:${OPENVIDU_CDR_PATH} - ./cluster:/opt/openvidu/cluster - .env:${PWD}/.env env_file: - .env environment: - SERVER_SSL_ENABLED=false - SERVER_PORT=5443 - KMS_URIS=[] - COTURN_IP=${COTURN_IP:-auto-ipv4} - COTURN_PORT=${COTURN_PORT:-3478} - OPENVIDU_PRO_CLUSTER=true - OPENVIDU_PRO_ELASTICSEARCH=${OPENVIDU_PRO_ELASTICSEARCH:-true} - OPENVIDU_PRO_KIBANA_HOST=${OPENVIDU_PRO_KIBANA_HOST:-http://127.0.0.1/kibana} - OPENVIDU_PRO_ELASTICSEARCH_HOST=${OPENVIDU_PRO_ELASTICSEARCH_HOST:-http://127.0.0.1:9200} - WAIT_KIBANA_URL=${OPENVIDU_PRO_KIBANA_HOST:-http://127.0.0.1/kibana} - DOTENV_PATH=${PWD} - OPENVIDU_PRO_COTURN_IN_MEDIA_NODES=${OPENVIDU_PRO_COTURN_IN_MEDIA_NODES:-false} - OPENVIDU_PRO_COTURN_PORT_MEDIA_NODES=${OPENVIDU_PRO_COTURN_PORT_MEDIA_NODES:-443} - OPENVIDU_PRO_MEDIA_NODE_PUBLIC_IP_AUTODISCOVER=${OPENVIDU_PRO_MEDIA_NODE_PUBLIC_IP_AUTODISCOVER:-auto-ipv4} - COTURN_INTERNAL_RELAY=true - KMS_URIS=["ws://127.0.0.1:8888/kurento"] logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" coturn: image: openvidu/openvidu-coturn:2.30.0 restart: on-failure env_file: - .env ports: - 3478:3478/tcp - 3478:3478/udp environment: - COTURN_INTERNAL_RELAY=${COTURN_INTERNAL_RELAY:-true} volumes: - ./coturn:/run/secrets/coturn command: - --log-file=stdout - --external-ip=$$(detect-external-ip) - --listening-port=${COTURN_PORT:-3478} - --fingerprint - --min-port=${COTURN_MIN_PORT:-40000} - --max-port=${COTURN_MAX_PORT:-65535} - --realm=openvidu - --verbose - --use-auth-secret - --static-auth-secret=$${COTURN_SHARED_SECRET_KEY} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" nginx: image: openvidu/openvidu-proxy:2.30.0 restart: always network_mode: host volumes: - ./certificates:/etc/letsencrypt - ./owncert:/owncert - ./custom-nginx-vhosts:/etc/nginx/vhost.d/ - ./custom-nginx-locations:/custom-nginx-locations - ${OPENVIDU_RECORDING_CUSTOM_LAYOUT}:/opt/openvidu/custom-layout environment: - DOMAIN_OR_PUBLIC_IP=${DOMAIN_OR_PUBLIC_IP} - CERTIFICATE_TYPE=${CERTIFICATE_TYPE} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} - PROXY_HTTP_PORT=${HTTP_PORT:-} - PROXY_HTTPS_PORT=${HTTPS_PORT:-} - PROXY_HTTPS_PROTOCOLS=${HTTPS_PROTOCOLS:-} - PROXY_HTTPS_CIPHERS=${HTTPS_CIPHERS:-} - PROXY_HTTPS_HSTS=${HTTPS_HSTS:-} - ALLOWED_ACCESS_TO_DASHBOARD=${ALLOWED_ACCESS_TO_DASHBOARD:-} - ALLOWED_ACCESS_TO_RESTAPI=${ALLOWED_ACCESS_TO_RESTAPI:-} - PROXY_MODE=PRO - WITH_APP=true - SUPPORT_DEPRECATED_API=${SUPPORT_DEPRECATED_API:-false} - REDIRECT_WWW=${REDIRECT_WWW:-false} - WORKER_CONNECTIONS=${WORKER_CONNECTIONS:-10240} - PUBLIC_IP=${PROXY_PUBLIC_IP:-auto-ipv4} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" elasticsearch: image: openvidu/openvidu-elasticsearch:7.8.0 restart: always environment: - discovery.type=single-node - xpack.security.enabled=true - "ES_JAVA_OPTS=${ES_JAVA_OPTS:--Xms2g -Xmx2g}" ports: - 9200:9200 volumes: - ./elasticsearch:/usr/share/elasticsearch/data command: > /bin/bash -c "elasticsearch-users useradd ${ELASTICSEARCH_USERNAME} -p ${ELASTICSEARCH_PASSWORD} -r superuser; elasticsearch-users passwd ${ELASTICSEARCH_USERNAME} -p ${ELASTICSEARCH_PASSWORD}; docker-entrypoint.sh" logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" kibana: image: docker.elastic.co/kibana/kibana:7.8.0 restart: always environment: - SERVER_BASEPATH="/kibana" - xpack.security.enabled=true - ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME} - ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD} ports: - 5601:5601 logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" media-node-controller: image: openvidu/media-node-controller:2.30.0 restart: always ulimits: core: -1 environment: - MEDIA_NODE_CONTROLLER_RECORDINGS_PATH=/opt/openvidu/mncontroller/recordings - KMS_IMAGE=kurento/kurento-media-server:7.1.1 - MEDIASOUP_IMAGE=openvidu/mediasoup-controller:2.30.0 - METRICBEAT_IMAGE=docker.elastic.co/beats/metricbeat-oss:7.8.0 - FILEBEAT_IMAGE=docker.elastic.co/beats/filebeat-oss:7.8.0 - OPENVIDU_RECORDING_IMAGE=openvidu/openvidu-recording:2.30.0 - SPEECH_TO_TEXT_IMAGE=openvidu/speech-to-text-service:2.30.0 - COTURN_IMAGE=openvidu/openvidu-coturn:2.30.0 - NO_COLOR=true ports: - 3000:3000 volumes: - /opt/openvidu/mncontroller/recordings:/opt/openvidu/mncontroller/recordings - /opt/openvidu/beats:/opt/openvidu/beats - /var/run/docker.sock:/var/run/docker.sock - /opt/openvidu/kurento-logs:/opt/openvidu/kurento-logs - ./beats:/beats logging: options: max-size: "100M"