diff --git a/deploy/docker-entrypoint.sh b/deploy/docker-entrypoint.sh index f69adbd..472d156 100644 --- a/deploy/docker-entrypoint.sh +++ b/deploy/docker-entrypoint.sh @@ -1,31 +1,41 @@ #!/bin/sh set -e +# Ensure SERVER_NAME is set +if [ -z "$SERVER_NAME" ]; then + echo "[entrypoint] SERVER_NAME is not set. Using default value: localhost" + SERVER_NAME="localhost" +else + echo "[entrypoint] Using SERVER_NAME=$SERVER_NAME" +fi + # Render vhost ONLY into http.d so it's inside http{} context if [ -f /etc/nginx/templates/default.conf.template ]; then - if [ "$ENABLE_BASIC_AUTH" = "true" ]; then - echo "[entrypoint] Enabling basic authentication..." - if [ -f /etc/nginx/htpasswd ]; then - envsubst '$SERVER_NAME' < /etc/nginx/templates/default.conf.template | \ - sed '/location \/ {/a \\t\tauth_basic "Restricted Content";\n\t\tauth_basic_user_file /etc/nginx/htpasswd;' \ - > /etc/nginx/http.d/default.conf - else - echo "[entrypoint] ERROR: htpasswd file not found at /etc/nginx/htpasswd" >&2 - exit 1 - fi - else - echo "[entrypoint] Basic authentication is disabled." - envsubst '$SERVER_NAME' < /etc/nginx/templates/default.conf.template > /etc/nginx/http.d/default.conf - fi + envsubst '$SERVER_NAME' < /etc/nginx/templates/default.conf.template > /etc/nginx/http.d/default.conf else echo "[entrypoint] ERROR: missing /etc/nginx/templates/default.conf.template" >&2 exit 1 fi -echo "[entrypoint] Using SERVER_NAME=$SERVER_NAME" +# Add basic authentication if enabled +if [ "$ENABLE_BASIC_AUTH" = "true" ]; then + echo "[entrypoint] Enabling basic authentication..." + if [ -f /etc/nginx/htpasswd ]; then + sed -i '/location \/ {/a \\t\tauth_basic "Restricted Content";\n\t\tauth_basic_user_file /etc/nginx/htpasswd;' /etc/nginx/http.d/default.conf + else + echo "[entrypoint] ERROR: htpasswd file not found at /etc/nginx/htpasswd" >&2 + exit 1 + fi +else + echo "[entrypoint] Basic authentication is disabled." +fi + +# Test nginx configuration nginx -t || { echo "[entrypoint] nginx config test failed" >&2; cat /var/log/nginx/error.log || true; exit 1; } +# Clear Laravel caches php artisan config:clear php artisan cache:clear +# Start supervisord exec /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf \ No newline at end of file