diff --git a/deploy/funkwhale_proxy.conf b/deploy/funkwhale_proxy.conf index 1b1dd0d20..312986f43 100644 --- a/deploy/funkwhale_proxy.conf +++ b/deploy/funkwhale_proxy.conf @@ -3,8 +3,8 @@ 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; -proxy_set_header X-Forwarded-Host $host:$server_port; -proxy_set_header X-Forwarded-Port $server_port; +proxy_set_header X-Forwarded-Host $host:$server_port; +proxy_set_header X-Forwarded-Port $server_port; proxy_redirect off; # websocket support diff --git a/dev.yml b/dev.yml index 19234f0f6..825233663 100644 --- a/dev.yml +++ b/dev.yml @@ -72,15 +72,20 @@ services: - redis nginx: + command: /entrypoint.sh env_file: - .env.dev - .env image: nginx + environment: + - "WEBPACK_DEVSERVER_PORT=${WEBPACK_DEVSERVER_PORT-8080}" links: - api - front volumes: - ./docker/nginx/conf.dev:/etc/nginx/nginx.conf + - ./docker/nginx/entrypoint.sh:/entrypoint.sh:ro + - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf.template:ro - ./api/funkwhale_api/media:/protected/media ports: - "0.0.0.0:6001:6001" diff --git a/docker/nginx/conf.dev b/docker/nginx/conf.dev index 9847c2dcb..e832a5ae3 100644 --- a/docker/nginx/conf.dev +++ b/docker/nginx/conf.dev @@ -37,19 +37,7 @@ http { listen 6001; charset utf-8; client_max_body_size 20M; - - # global proxy pass config - 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; - proxy_set_header X-Forwarded-Host localhost:8080; - proxy_set_header X-Forwarded-Port 8080; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - proxy_redirect off; - + include /etc/nginx/funkwhale_proxy.conf; location /_protected/media { internal; alias /protected/media; @@ -63,8 +51,7 @@ http { if ($request_uri ~* "[^\?]+\?(.*)$") { set $query $1; } - proxy_set_header X-Forwarded-Host localhost:8080; - proxy_set_header X-Forwarded-Port 8080; + include /etc/nginx/funkwhale_proxy.conf; proxy_pass http://api:12081/api/v1/trackfiles/viewable/?$query; proxy_pass_request_body off; proxy_set_header Content-Length ""; @@ -78,6 +65,7 @@ http { if ($args ~ (.*)jwt=[^&]*(.*)) { set $cleaned_args $1$2; } + include /etc/nginx/funkwhale_proxy.conf; proxy_cache_key "$scheme$request_method$host$uri$is_args$cleaned_args"; proxy_cache transcode; proxy_cache_valid 200 7d; @@ -87,6 +75,7 @@ http { proxy_pass http://api:12081; } location / { + include /etc/nginx/funkwhale_proxy.conf; proxy_pass http://api:12081/; } } diff --git a/docker/nginx/entrypoint.sh b/docker/nginx/entrypoint.sh new file mode 100755 index 000000000..93b4a0533 --- /dev/null +++ b/docker/nginx/entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/bash -eux + +echo "Copying template file..." +cp /etc/nginx/funkwhale_proxy.conf{.template,} +sed -i "s/X-Forwarded-Host \$host:\$server_port/X-Forwarded-Host localhost:${WEBPACK_DEVSERVER_PORT}/" /etc/nginx/funkwhale_proxy.conf +sed -i "s/proxy_set_header X-Forwarded-Port \$server_port/proxy_set_header X-Forwarded-Port ${WEBPACK_DEVSERVER_PORT}/" /etc/nginx/funkwhale_proxy.conf + +cat /etc/nginx/funkwhale_proxy.conf +nginx -g "daemon off;"