diff --git a/.env.sample b/.env.sample index cea333b..56d14a6 100644 --- a/.env.sample +++ b/.env.sample @@ -14,3 +14,12 @@ COMPOSE_FILE="compose.yml" #COMPOSE_FILE="$COMPOSE_FILE:compose.git-pull.yml" #GIT_REPO_URL="https://git.coopcloud.tech/dalmationer/hexbomb.gay" #CRON_SCHEDULE="*/1 * * * *" + +# Optionally redirect the entire domain or a sub-path: +# path under which you want to redirect all URLs (with trailing slash): +#REDIRECT_FROM_PATH=/ +# full URL of target domain (and optionally path) with trailing slash: +#REDIRECT_TO_URL=https://coopcloud.tech/ +# temporary or permanent redirect? (uncomment one) +#REDIRECT_TYPE=redirect +#REDIRECT_TYPE=permanent diff --git a/abra.sh b/abra.sh index d35163d..50df95c 100644 --- a/abra.sh +++ b/abra.sh @@ -1,2 +1,2 @@ -export NGINX_DEFAULT_CONF_VERSION=v1 +export NGINX_DEFAULT_CONF_VERSION=v5 export ENTRYPOINT_CONF_VERSION=v3 diff --git a/compose.yml b/compose.yml index 602e91f..3f81da5 100644 --- a/compose.yml +++ b/compose.yml @@ -23,7 +23,10 @@ services: - "backupbot.backup=true" - "backupbot.backup.path=/usr/share/nginx/html" environment: - DEFAULT_CONF_FILE: /etc/nginx/conf.d/default.conf + - DEFAULT_CONF_FILE=/etc/nginx/conf.d/default.conf + - REDIRECT_FROM_PATH + - REDIRECT_TO_URL + - REDIRECT_TYPE volumes: - content:/usr/share/nginx/html configs: @@ -42,7 +45,8 @@ volumes: configs: nginx_default_conf: name: ${STACK_NAME}_nginx_default_conf_${NGINX_DEFAULT_CONF_VERSION} - file: default.conf + file: default.conf.tmpl + template_driver: golang networks: proxy: diff --git a/default.conf b/default.conf.tmpl similarity index 76% rename from default.conf rename to default.conf.tmpl index 39de0d8..70e1f01 100644 --- a/default.conf +++ b/default.conf.tmpl @@ -10,10 +10,18 @@ server { location / { root /usr/share/nginx/html; index index.html index.htm; - try_files $uri $uri/ $uri.html; + + {{ if env "REDIRECT_TO_URL" }} + rewrite ^{{ env "REDIRECT_FROM_PATH" }}(.*)$ {{ env "REDIRECT_TO_URL" }}$1 {{ env "REDIRECT_TYPE" }}; + {{ end }} + + try_files $uri $uri/ $uri.html =404; } - #error_page 404 /404.html; + error_page 404 /404.html; + location = /404.html { + root /usr/share/nginx/html; + } # redirect server error pages to the static page /50x.html #