Updated nginx to toggle ssl
This commit is contained in:
3
.env
3
.env
@@ -1,7 +1,8 @@
|
|||||||
RUST_LOG=warn,api=info
|
RUST_LOG=warn,api=info
|
||||||
|
|
||||||
NGINX_HOST=localhost
|
NGINX_HOST=localhost
|
||||||
NGINX_PROTOCOL=https
|
NGINX_SSL_ENABLED=false
|
||||||
|
NGINX_PROTOCOL=http
|
||||||
NGINX_HTTP_PORT=8080
|
NGINX_HTTP_PORT=8080
|
||||||
NGINX_HTTPS_PORT=8443
|
NGINX_HTTPS_PORT=8443
|
||||||
NGINX_MINIO_HOST=host.docker.internal
|
NGINX_MINIO_HOST=host.docker.internal
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
SSL_CERT_PATH: /etc/nginx/ssl/localhost.crt
|
SSL_CERT_PATH: /etc/nginx/ssl/localhost.crt
|
||||||
SSL_CERT_KEY_PATH: /etc/nginx/ssl/localhost.key
|
SSL_CERT_KEY_PATH: /etc/nginx/ssl/localhost.key
|
||||||
NGINX_HOST: ${NGINX_HOST:-localhost}
|
|
||||||
ports:
|
ports:
|
||||||
- "${NGINX_HTTP_PORT:-8080}:80"
|
- "${NGINX_HTTP_PORT:-8080}:80"
|
||||||
- "${NGINX_HTTPS_PORT:-8443}:443"
|
- "${NGINX_HTTPS_PORT:-8443}:443"
|
||||||
@@ -126,7 +125,7 @@ services:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
env_file: *env
|
env_file: *env
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=${NODE_ENV:-development}
|
- VITE_NODE_ENV=${VITE_NODE_ENV:-development}
|
||||||
ports:
|
ports:
|
||||||
- "${UI_PORT:-3000}:3000"
|
- "${UI_PORT:-3000}:3000"
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
FROM nginx
|
FROM nginx
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY templates/ /etc/nginx/templates/
|
COPY templates/ /templates/
|
||||||
|
COPY scripts/01-configure_ssh.sh /docker-entrypoint.d/01-configure_ssh.sh
|
||||||
|
|
||||||
|
RUN chmod +x /docker-entrypoint.d/01-configure_ssh.sh
|
||||||
|
|||||||
12
nginx/scripts/01-configure_ssh.sh
Executable file
12
nginx/scripts/01-configure_ssh.sh
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mkdir -p /etc/nginx/templates
|
||||||
|
|
||||||
|
if [ "$NGINX_SSL_ENABLED" = "true" ]; then
|
||||||
|
echo "Using SSL configuration"
|
||||||
|
cp /templates/ssl.conf.template /etc/nginx/templates/default.conf.template
|
||||||
|
else
|
||||||
|
echo "Using non-SSL configuration"
|
||||||
|
cp /templates/nossl.conf.template /etc/nginx/templates/default.conf.template
|
||||||
|
fi
|
||||||
36
nginx/templates/nossl.conf.template
Normal file
36
nginx/templates/nossl.conf.template
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# HTTP server configuration
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name ${NGINX_HOST};
|
||||||
|
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass ${API_PROTOCOL}://${NGINX_API_HOST}:${API_PORT}/api/;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /minio/ {
|
||||||
|
proxy_pass ${MINIO_PROTOCOL}://${NGINX_MINIO_HOST}:${MINIO_PORT_INTERNAL}/;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reverse proxy for the UI and default catch-all
|
||||||
|
location / {
|
||||||
|
proxy_pass ${UI_PROTOCOL}://${NGINX_UI_HOST}:${UI_PORT}/;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,7 +22,7 @@ RUN \
|
|||||||
FROM base AS runner
|
FROM base AS runner
|
||||||
ARG PORT=3000
|
ARG PORT=3000
|
||||||
ENV PORT=${PORT}
|
ENV PORT=${PORT}
|
||||||
ENV NODE_ENV=production
|
ENV VITE_NODE_ENV=production
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY --chown=node --from=builder /builder /app
|
COPY --chown=node --from=builder /builder /app
|
||||||
|
|||||||
Reference in New Issue
Block a user