mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 23:42:07 +01:00
Merge pull request #1632 from rommapp/misc/nginx-templates
misc: Use nginx templates to allow for environment variable usage
This commit is contained in:
@@ -154,6 +154,7 @@ COPY ./backend /backend
|
||||
# Setup init script and config files
|
||||
COPY ./docker/init_scripts/* /
|
||||
COPY ./docker/nginx/js/ /etc/nginx/js/
|
||||
COPY ./docker/nginx/templates/ /etc/nginx/templates/
|
||||
COPY ./docker/nginx/default.conf /etc/nginx/nginx.conf
|
||||
|
||||
# User permissions
|
||||
|
||||
@@ -33,4 +33,7 @@ for var_name in $(printenv | cut -d= -f1 | grep "_FILE$" || true); do
|
||||
unset "${var_name}"
|
||||
done
|
||||
|
||||
# Replace environment variables used in nginx configuration templates.
|
||||
/docker-entrypoint.d/20-envsubst-on-templates.sh >/dev/null
|
||||
|
||||
exec "$@"
|
||||
|
||||
@@ -60,88 +60,9 @@ http {
|
||||
gzip_http_version 1.1;
|
||||
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
# include /etc/nginx/conf.d/*.conf;
|
||||
# include /etc/nginx/sites-enabled/*;
|
||||
|
||||
upstream wsgi_server {
|
||||
server unix:/tmp/gunicorn.sock;
|
||||
}
|
||||
|
||||
server {
|
||||
root /var/www/html;
|
||||
listen 8080;
|
||||
server_name localhost;
|
||||
|
||||
proxy_set_header Host $http_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 / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
proxy_redirect off;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
add_header Access-Control-Allow-Methods *;
|
||||
add_header Access-Control-Allow-Headers *;
|
||||
}
|
||||
|
||||
# Static files
|
||||
location /assets {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
# OpenAPI for swagger and redoc
|
||||
location /openapi.json {
|
||||
proxy_pass http://wsgi_server;
|
||||
}
|
||||
|
||||
# Backend api calls
|
||||
location /api {
|
||||
proxy_pass http://wsgi_server;
|
||||
proxy_request_buffering off;
|
||||
proxy_buffering off;
|
||||
}
|
||||
location /ws {
|
||||
proxy_pass http://wsgi_server;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# Internally redirect download requests
|
||||
location /library {
|
||||
internal;
|
||||
alias /romm/library;
|
||||
}
|
||||
|
||||
# This location, and the related server at port 8081, are used to serve files when
|
||||
# using the `mod_zip` module. This is because the `mod_zip` module does not support
|
||||
# calculating CRC-32 values when using subrequests pointing directly to internal
|
||||
# locations that access the filesystem.
|
||||
# TODO: If that gets fixed, this workaround can be removed, and the `/library` location
|
||||
# can be used directly (also removing the server at port 8081).
|
||||
# Related issue: https://github.com/evanmiller/mod_zip/issues/90
|
||||
location /library-zip {
|
||||
internal;
|
||||
rewrite ^/library-zip/(.*)$ /library/$1 break;
|
||||
proxy_pass http://localhost:8081;
|
||||
# Proxy buffering must be disabled, for the module to correctly calculate CRC-32 values.
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
# Internal decoding endpoint, used to decode base64 encoded data
|
||||
location /decode {
|
||||
internal;
|
||||
js_content decode.decodeBase64;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8081;
|
||||
server_name localhost;
|
||||
|
||||
location /library {
|
||||
alias /romm/library;
|
||||
}
|
||||
}
|
||||
include /etc/nginx/conf.d/*.conf;
|
||||
}
|
||||
|
||||
81
docker/nginx/templates/default.conf.template
Normal file
81
docker/nginx/templates/default.conf.template
Normal file
@@ -0,0 +1,81 @@
|
||||
# This template is used to generate the default.conf file for the nginx server,
|
||||
# by using `envsubst` to replace the environment variables in the template with
|
||||
# their actual values.
|
||||
|
||||
server {
|
||||
root /var/www/html;
|
||||
listen 8080;
|
||||
server_name localhost;
|
||||
|
||||
proxy_set_header Host $http_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 / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
proxy_redirect off;
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
add_header Access-Control-Allow-Methods *;
|
||||
add_header Access-Control-Allow-Headers *;
|
||||
}
|
||||
|
||||
# Static files
|
||||
location /assets {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
# OpenAPI for swagger and redoc
|
||||
location /openapi.json {
|
||||
proxy_pass http://wsgi_server;
|
||||
}
|
||||
|
||||
# Backend api calls
|
||||
location /api {
|
||||
proxy_pass http://wsgi_server;
|
||||
proxy_request_buffering off;
|
||||
proxy_buffering off;
|
||||
}
|
||||
location /ws {
|
||||
proxy_pass http://wsgi_server;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# Internally redirect download requests
|
||||
location /library {
|
||||
internal;
|
||||
alias /romm/library;
|
||||
}
|
||||
|
||||
# This location, and the related server at port 8081, are used to serve files when
|
||||
# using the `mod_zip` module. This is because the `mod_zip` module does not support
|
||||
# calculating CRC-32 values when using subrequests pointing directly to internal
|
||||
# locations that access the filesystem.
|
||||
# TODO: If that gets fixed, this workaround can be removed, and the `/library` location
|
||||
# can be used directly (also removing the server at port 8081).
|
||||
# Related issue: https://github.com/evanmiller/mod_zip/issues/90
|
||||
location /library-zip {
|
||||
internal;
|
||||
rewrite ^/library-zip/(.*)$ /library/$1 break;
|
||||
proxy_pass http://localhost:8081;
|
||||
# Proxy buffering must be disabled, for the module to correctly calculate CRC-32 values.
|
||||
proxy_buffering off;
|
||||
}
|
||||
|
||||
# Internal decoding endpoint, used to decode base64 encoded data
|
||||
location /decode {
|
||||
internal;
|
||||
js_content decode.decodeBase64;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8081;
|
||||
server_name localhost;
|
||||
|
||||
location /library {
|
||||
alias /romm/library;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user