2023-05-22 16:22:06 +02:00
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# DO NOT MODIFY THIS FILE !!!
|
|
|
|
#
|
|
|
|
# Configuration properties should be specified in .env file
|
|
|
|
#
|
|
|
|
# This docker-compose file coordinates all needed services by OpenVidu Enterprise HA
|
|
|
|
#
|
|
|
|
# This file will be overridden when updating OpenVidu Enterprise HA
|
|
|
|
#
|
2025-01-14 19:12:35 +01:00
|
|
|
# Openvidu Version: 2.31.0
|
2023-05-22 16:22:06 +02:00
|
|
|
#
|
|
|
|
# Installation Mode: On Premises
|
|
|
|
#
|
|
|
|
# ------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
version: '3.1'
|
|
|
|
|
|
|
|
services:
|
|
|
|
loadbalancer:
|
2025-01-14 19:12:35 +01:00
|
|
|
image: openvidu/openvidu-proxy:2.31.0
|
2023-05-22 16:22:06 +02:00
|
|
|
restart: always
|
|
|
|
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}:/opt/openvidu/custom-layout
|
|
|
|
ports:
|
|
|
|
# Nginx letsencrypt port
|
|
|
|
- "${HTTP_PORT:-80}:${HTTP_PORT:-80}"
|
|
|
|
# External Load Balancer port
|
|
|
|
- "${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
|
|
|
|
# Internal Load Balancer port
|
|
|
|
- 5443:5443
|
|
|
|
environment:
|
|
|
|
- DOMAIN_OR_PUBLIC_IP=${DOMAIN_OR_PUBLIC_IP}
|
|
|
|
- CERTIFICATE_TYPE=${CERTIFICATE_TYPE}
|
|
|
|
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
|
|
|
- OPENVIDU_ENTERPRISE_HA_NODE_IPS=${OPENVIDU_ENTERPRISE_HA_NODE_IPS}
|
|
|
|
- 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=ENTERPRISE_HA
|
|
|
|
- WITH_APP=true
|
|
|
|
- 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}"
|
|
|
|
|
|
|
|
minio-s3:
|
|
|
|
image: minio/minio:RELEASE.2023-01-06T18-11-18Z
|
|
|
|
restart: always
|
|
|
|
environment:
|
|
|
|
- MINIO_ACCESS_KEY=${OPENVIDU_ENTERPRISE_HA_S3_CONFIG_ACCESS_KEY}
|
|
|
|
- MINIO_SECRET_KEY=${OPENVIDU_ENTERPRISE_HA_S3_CONFIG_SECRET_KEY}
|
|
|
|
- MINIO_BROWSER_REDIRECT_URL=https://${DOMAIN_OR_PUBLIC_IP}:${HTTPS_PORT:-443}/minio/
|
|
|
|
- CONSOLE_SUBPATH=/minio/
|
|
|
|
volumes:
|
|
|
|
- ./minio-s3:/data
|
|
|
|
ports:
|
|
|
|
- "9000:9000"
|
|
|
|
- "9001:9001"
|
|
|
|
command: server --console-address ":9001" /data
|
|
|
|
logging:
|
|
|
|
options:
|
|
|
|
max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}"
|
|
|
|
|
|
|
|
createbuckets:
|
|
|
|
image: minio/mc:RELEASE.2022-12-24T15-21-38Z
|
|
|
|
depends_on:
|
|
|
|
- minio-s3
|
|
|
|
entrypoint: >
|
|
|
|
/bin/sh -c "
|
|
|
|
/usr/bin/mc config host add openvidu-minio \
|
|
|
|
http://minio-s3:9000 \
|
|
|
|
'${OPENVIDU_ENTERPRISE_HA_S3_CONFIG_ACCESS_KEY}' \
|
|
|
|
'${OPENVIDU_ENTERPRISE_HA_S3_CONFIG_SECRET_KEY}';
|
|
|
|
/usr/bin/mc mb 'openvidu-minio/${OPENVIDU_ENTERPRISE_HA_S3_CONFIG_BUCKET}';
|
|
|
|
exit 0;
|
|
|
|
"
|
|
|
|
|
|
|
|
redis:
|
|
|
|
image: redis:7.0.8-alpine
|
|
|
|
restart: always
|
|
|
|
ports:
|
|
|
|
- "${OPENVIDU_ENTERPRISE_HA_REDIS_PORT:-6379}:${OPENVIDU_ENTERPRISE_HA_REDIS_PORT:-6379}"
|
|
|
|
command: /bin/sh -c "redis-server
|
|
|
|
--bind 0.0.0.0
|
|
|
|
--port ${OPENVIDU_ENTERPRISE_HA_REDIS_PORT:-6379}
|
|
|
|
--requirepass ${OPENVIDU_ENTERPRISE_HA_REDIS_PASSWORD}"
|
|
|
|
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}"
|