From 06375f9b0077131fc2948e25ac42b51c8489a121 Mon Sep 17 00:00:00 2001 From: meliurwen Date: Sat, 29 Aug 2020 14:36:12 +0200 Subject: [PATCH] Backported some edits from Funkwhale repo merge request --- .env.example | 10 +++++----- docker-compose.yml | 6 +++++- nginx/funkwhale.template | 14 +++++++------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.env.example b/.env.example index da7f9e5..811dac6 100644 --- a/.env.example +++ b/.env.example @@ -5,9 +5,9 @@ HOST_CACHE_DIR=/srv/funkwhale/redis/data HOST_MUSIC_DIRECTORY_PATH=/srv/funkwhale/media/music # Where media files (such as album covers or audio tracks) should be stored HOST_MEDIA_ROOT=/srv/funkwhale/media/media -# Where static files (such as API css or icons) should be compiled +# Where Django static files (such as API css or icons) should be compiled HOST_STATIC_ROOT=/srv/funkwhale/api/static -# Why this exists? +# Where the Funkwhale webapp static files are located HOST_FUNKWHALE_FRONTEND_PATH=/srv/funkwhale/api/frontend # Replace this by the definitive, public domain you will use for # your instance. It cannot be changed after initial deployment @@ -19,15 +19,15 @@ FUNKWHALE_HOSTNAME= FUNKWHALE_VERSION= # Networks -# Name of the external network of the reverse proxy -REVERSE_PROXY_NETWORK=webservices +# Name of the main reverse proxy network +REVERSE_PROXY_NETWORK= # Networks (optional) # Restrict internet access to the whole Funkwhale app # Note: It will be normally reachable from the web (via the reverse-proxy), but # the containers cannot make external calls on their own, thus no # federation or anything that may require internet from the server side. -NO_INTERNET_ACC=true +NO_INTERNET_ACC= # postgres (optional) DB_IMG= diff --git a/docker-compose.yml b/docker-compose.yml index b63c6a7..903a985 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -100,6 +100,10 @@ services: - nginx.env environment: - FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME} + - MEDIA_ROOT=/srv/wwww/media + - MUSIC_DIRECTORY_PATH=/srv/wwww/music + - STATIC_ROOT=/srv/wwww/static + - FUNKWHALE_FRONTEND_PATH=/srv/wwww/frontend command: > sh -c "envsubst \"`env | awk -F = '{printf \" $$%s\", $$1}'`\" < /etc/nginx/conf.d/funkwhale.template @@ -111,7 +115,7 @@ networks: default: internal: true internet-access: - internal: ${NO_INTERNET_ACC} + internal: ${NO_INTERNET_ACC:-false} main-webservices: external: name: ${REVERSE_PROXY_NETWORK} diff --git a/nginx/funkwhale.template b/nginx/funkwhale.template index a06cebc..ed21f6d 100644 --- a/nginx/funkwhale.template +++ b/nginx/funkwhale.template @@ -21,7 +21,7 @@ server { # have a look here for let's encrypt configuration: # https://certbot.eff.org/all-instructions/#debian-9-stretch-nginx - root /srv/wwww/frontend; + root ${FUNKWHALE_FRONTEND_PATH}; # If you are using S3 to host your files, remember to add your S3 URL to the # media-src and img-src headers (e.g. img-src 'self' https:// data:) @@ -42,7 +42,7 @@ server { add_header Referrer-Policy "strict-origin-when-cross-origin"; add_header Service-Worker-Allowed "/"; add_header X-Frame-Options "ALLOW"; - alias /srv/wwww/frontend/; + alias ${FUNKWHALE_FRONTEND_PATH}/; expires 30d; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; @@ -53,7 +53,7 @@ server { add_header Referrer-Policy "strict-origin-when-cross-origin"; add_header X-Frame-Options "ALLOW"; - alias /srv/wwww/frontend/embed.html; + alias ${FUNKWHALE_FRONTEND_PATH}/embed.html; expires 30d; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; @@ -76,7 +76,7 @@ server { } location /media/ { - alias /srv/wwww/media/; + alias ${MEDIA_ROOT}/; } # this is an internal location that is used to serve @@ -84,7 +84,7 @@ server { # has been checked on API side location /_protected/media { internal; - alias /srv/wwww/media; + alias ${MEDIA_ROOT}; } # Comment the previous location and uncomment this one if you're storing @@ -102,11 +102,11 @@ server { # has been checked on API side # Set this to the same value as your MUSIC_DIRECTORY_PATH setting internal; - alias /srv/wwww/music; + alias ${MUSIC_DIRECTORY_PATH}; } location /staticfiles/ { # django static files - alias /srv/wwww/static/; + alias ${STATIC_ROOT}/; } }