diff --git a/Dockerfile.railway b/Dockerfile.railway index 0e5659d3..c36fecc9 100644 --- a/Dockerfile.railway +++ b/Dockerfile.railway @@ -66,7 +66,7 @@ RUN npm run build FROM alpine:${ALPINE_VERSION} RUN apk update && apk add --no-cache \ - ca-certificates tzdata sqlite nginx supervisor openssl + ca-certificates tzdata sqlite nginx supervisor openssl gettext # Copy TA-Lib COPY --from=ta-lib-builder /usr/local /usr/local @@ -78,8 +78,12 @@ COPY --from=backend-builder /app/nofx . # Copy frontend build COPY --from=frontend-builder /build/dist /usr/share/nginx/html -# Copy Railway-specific nginx config -COPY railway/nginx.conf /etc/nginx/http.d/default.conf +# Copy Railway-specific nginx config template +COPY railway/nginx.conf.template /etc/nginx/nginx.conf.template + +# Copy nginx startup wrapper +COPY railway/start-nginx.sh /app/start-nginx.sh +RUN chmod +x /app/start-nginx.sh # Copy supervisor config COPY railway/supervisord.conf /etc/supervisord.conf diff --git a/railway/nginx.conf b/railway/nginx.conf.template similarity index 98% rename from railway/nginx.conf rename to railway/nginx.conf.template index 7a58ff94..c30c8062 100644 --- a/railway/nginx.conf +++ b/railway/nginx.conf.template @@ -2,7 +2,7 @@ # Frontend static files + API proxy to backend server { - listen 8080; + listen ${PORT}; server_name _; root /usr/share/nginx/html; diff --git a/railway/start-nginx.sh b/railway/start-nginx.sh new file mode 100644 index 00000000..6112493b --- /dev/null +++ b/railway/start-nginx.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# Nginx startup wrapper - substitutes PORT environment variable + +# Default PORT to 8080 if not set +export PORT=${PORT:-8080} + +echo "🌐 Starting nginx on port $PORT..." + +# Generate nginx config from template +envsubst '${PORT}' < /etc/nginx/nginx.conf.template > /etc/nginx/http.d/default.conf + +# Start nginx +exec nginx -g "daemon off;" diff --git a/railway/supervisord.conf b/railway/supervisord.conf index e4f198da..d971dbc1 100644 --- a/railway/supervisord.conf +++ b/railway/supervisord.conf @@ -16,7 +16,7 @@ stderr_logfile_maxbytes=0 environment=API_SERVER_PORT="8081",DB_PATH="/app/data/data.db" [program:nginx] -command=nginx -g "daemon off;" +command=/app/start-nginx.sh autostart=true autorestart=true stdout_logfile=/dev/stdout