#!/bin/bash HTTPS_CONFIG='' if [ "${NGINX_HTTPS_ENABLED}" = "true" ]; then # Check if the certificate and key files for the specified domain exist if [ -n "${CERTBOT_DOMAIN}" ] && \ [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}" ] && \ [ -f "/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}" ]; then SSL_CERTIFICATE_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_FILENAME}" SSL_CERTIFICATE_KEY_PATH="/etc/letsencrypt/live/${CERTBOT_DOMAIN}/${NGINX_SSL_CERT_KEY_FILENAME}" else SSL_CERTIFICATE_PATH="/etc/ssl/${NGINX_SSL_CERT_FILENAME}" SSL_CERTIFICATE_KEY_PATH="/etc/ssl/${NGINX_SSL_CERT_KEY_FILENAME}" fi export SSL_CERTIFICATE_PATH export SSL_CERTIFICATE_KEY_PATH # set the HTTPS_CONFIG environment variable to the content of the https.conf.template HTTPS_CONFIG=$(envsubst < /etc/nginx/https.conf.template) export HTTPS_CONFIG # Substitute the HTTPS_CONFIG in the default.conf.template with content from https.conf.template envsubst '${HTTPS_CONFIG}' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf fi export HTTPS_CONFIG if [ "${NGINX_ENABLE_CERTBOT_CHALLENGE}" = "true" ]; then ACME_CHALLENGE_LOCATION='location /.well-known/acme-challenge/ { root /var/www/html; }' else ACME_CHALLENGE_LOCATION='' fi export ACME_CHALLENGE_LOCATION if [ "${NGINX_CHATBOT_BASIC_AUTH_ENABLED}" = "true" ]; then # install apache2-utils to get htpasswd if command -v htpasswd >/dev/null 2>&1; then echo "htpasswd is installed." else echo "htpasswd is not installed." apt update apt install -y apache2-utils fi # create htpassword file for basic auth htpasswd -bc /etc/nginx/conf.d/.htpasswd "${NGINX_CHATBOT_BASIC_AUTH_USER}" "${NGINX_CHATBOT_BASIC_AUTH_PASSWORD}" CHATBOT_BASIC_AUTH_CONFIG='location /chat { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/conf.d/.htpasswd; proxy_pass http://web:3000; include proxy.conf; } ' else CHATBOT_BASIC_AUTH_CONFIG='' fi export CHATBOT_BASIC_AUTH_CONFIG env_vars=$(printenv | cut -d= -f1 | sed 's/^/$/g' | paste -sd, -) envsubst "$env_vars" < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf envsubst "$env_vars" < /etc/nginx/proxy.conf.template > /etc/nginx/proxy.conf envsubst "$env_vars" < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf # Start Nginx using the default entrypoint exec nginx -g 'daemon off;'