diff --git a/openvidu-server/deployments/ce/docker-compose/docker-compose.yml b/openvidu-server/deployments/ce/docker-compose/docker-compose.yml index d4e48f5e..34ca1c58 100644 --- a/openvidu-server/deployments/ce/docker-compose/docker-compose.yml +++ b/openvidu-server/deployments/ce/docker-compose/docker-compose.yml @@ -103,6 +103,7 @@ services: - ./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} diff --git a/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh b/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh index c77ccf31..1770f622 100755 --- a/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh +++ b/openvidu-server/deployments/ce/docker-compose/install_openvidu.sh @@ -60,6 +60,10 @@ new_ov_installation() { printf "\n => Creating folder 'custom-nginx-vhosts'..." mkdir "${OPENVIDU_FOLDER}/custom-nginx-vhosts" || fatal_error "Error while creating the folder 'custom-nginx-vhosts'" + # Create vhost nginx folder + printf "\n => Creating folder 'custom-nginx-locations'..." + mkdir "${OPENVIDU_FOLDER}/custom-nginx-locations" || fatal_error "Error while creating the folder 'custom-nginx-locations'" + # Ready to use printf '\n' printf '\n' @@ -200,6 +204,11 @@ upgrade_ov() { printf '\n - custom-nginx-vhosts' fi + if [ -d "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" ]; then + mv "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous directory 'custom-nginx-locations'" + printf '\n - custom-nginx-locations' + fi + # Move tmp files to Openvidu printf '\n => Updating files:' diff --git a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh index 91aba6ea..841c1369 100755 --- a/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh +++ b/openvidu-server/deployments/enterprise/master-node/install_openvidu_enterprise_master_node.sh @@ -109,6 +109,10 @@ new_ov_installation() { printf "\n => Creating folder 'custom-nginx-vhosts'..." mkdir "${OPENVIDU_FOLDER}/custom-nginx-vhosts" || fatal_error "Error while creating the folder 'custom-nginx-vhosts'" + # Create vhost nginx folder + printf "\n => Creating folder 'custom-nginx-locations'..." + mkdir "${OPENVIDU_FOLDER}/custom-nginx-locations" || fatal_error "Error while creating the folder 'custom-nginx-locations'" + # Ready to use printf '\n' printf '\n' @@ -291,6 +295,11 @@ upgrade_ov() { printf '\n - custom-nginx-vhosts' fi + if [ -d "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" ]; then + mv "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous directory 'custom-nginx-locations'" + printf '\n - custom-nginx-locations' + fi + # Move tmp files to Openvidu printf '\n => Updating files:' diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml index 660e42c5..1a442dcd 100644 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/docker-compose.yml @@ -93,6 +93,7 @@ services: - ./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} diff --git a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh index 4979435b..64daa14b 100755 --- a/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh +++ b/openvidu-server/deployments/pro/docker-compose/openvidu-server-pro/install_openvidu_pro.sh @@ -109,6 +109,10 @@ new_ov_installation() { printf "\n => Creating folder 'custom-nginx-vhosts'..." mkdir "${OPENVIDU_FOLDER}/custom-nginx-vhosts" || fatal_error "Error while creating the folder 'custom-nginx-vhosts'" + # Create vhost nginx folder + printf "\n => Creating folder 'custom-nginx-locations'..." + mkdir "${OPENVIDU_FOLDER}/custom-nginx-locations" || fatal_error "Error while creating the folder 'custom-nginx-locations'" + # Ready to use printf '\n' printf '\n' @@ -291,6 +295,11 @@ upgrade_ov() { printf '\n - custom-nginx-vhosts' fi + if [ -d "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" ]; then + mv "${OPENVIDU_PREVIOUS_FOLDER}/custom-nginx-locations" "${ROLL_BACK_FOLDER}" || fatal_error "Error while moving previous directory 'custom-nginx-locations'" + printf '\n - custom-nginx-locations' + fi + # Move tmp files to Openvidu printf '\n => Updating files:' diff --git a/openvidu-server/docker/openvidu-proxy/default_nginx_conf/ce/default.conf b/openvidu-server/docker/openvidu-proxy/default_nginx_conf/ce/default.conf index 6b8fbea8..6927a859 100644 --- a/openvidu-server/docker/openvidu-proxy/default_nginx_conf/ce/default.conf +++ b/openvidu-server/docker/openvidu-proxy/default_nginx_conf/ce/default.conf @@ -55,4 +55,6 @@ server { root /var/www/certbot; try_files $uri $uri/ =404; } + + {custom_locations} } diff --git a/openvidu-server/docker/openvidu-proxy/default_nginx_conf/pro/default.conf b/openvidu-server/docker/openvidu-proxy/default_nginx_conf/pro/default.conf index a2eb5914..ea6f4884 100644 --- a/openvidu-server/docker/openvidu-proxy/default_nginx_conf/pro/default.conf +++ b/openvidu-server/docker/openvidu-proxy/default_nginx_conf/pro/default.conf @@ -80,4 +80,6 @@ server { root /var/www/certbot; try_files $uri $uri/ =404; } + + {custom_locations} } diff --git a/openvidu-server/docker/openvidu-proxy/entrypoint.sh b/openvidu-server/docker/openvidu-proxy/entrypoint.sh index 39bd14af..94663924 100755 --- a/openvidu-server/docker/openvidu-proxy/entrypoint.sh +++ b/openvidu-server/docker/openvidu-proxy/entrypoint.sh @@ -262,6 +262,27 @@ sed -e '/{ssl_config}/{r default_nginx_conf/global/ssl_config.conf' -e 'd}' -i / sed -e '/{proxy_config}/{r default_nginx_conf/global/proxy_config.conf' -e 'd}' -i /etc/nginx/conf.d/* sed -i "s/{domain_name}/${DOMAIN_OR_PUBLIC_IP}/g" /etc/nginx/conf.d/* +# Read custom locations and apply them in configuration +if [[ -d /custom-nginx-locations ]]; then + TMP_PARSED_CUSTOM_LOCATIONS="$(mktemp)" + { + for CUSTOM_LOCATION in /custom-nginx-locations/*.conf; do + [ -f "${CUSTOM_LOCATION}" ] || break + echo " # Custom location loaded from: ${CUSTOM_LOCATION}" + while read -r ; do + echo " ${REPLY}" + done < "${CUSTOM_LOCATION}" + echo + done + } > "${TMP_PARSED_CUSTOM_LOCATIONS}" + if [[ -n $(cat "${TMP_PARSED_CUSTOM_LOCATIONS}") ]]; then + sed -e "/{custom_locations}/{r ${TMP_PARSED_CUSTOM_LOCATIONS}" -e 'd}' -i /etc/nginx/conf.d/* + fi + rm "${TMP_PARSED_CUSTOM_LOCATIONS}" +fi +# Delete custom_locations if not replaced +sed -i '/{custom_locations}/d' /etc/nginx/conf.d/* + # IPv6 listening (RFC 6540) if [ ! -f /proc/net/if_inet6 ]; then sed -i '/\[::\]:{http_port}/d' /etc/nginx/conf.d/*