openvidu/openvidu-server/deployments/enterprise-ha/docker-compose/base-services/docker-compose.yml

134 lines
4.9 KiB
YAML
Raw Normal View History

# ------------------------------------------------------------------------------
#
# 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
#
# Openvidu Version: 2.29.0
#
# Installation Mode: On Premises
#
# ------------------------------------------------------------------------------
version: '3.1'
services:
loadbalancer:
image: openvidu/openvidu-proxy:2.29.0
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}"