diff --git a/.metadata b/.metadata index 5024a26..313f677 100644 Binary files a/.metadata and b/.metadata differ diff --git a/.templates/nginx/nginx.conf b/.templates/nginx/nginx.conf index 9e93c54..2a94ef2 100644 --- a/.templates/nginx/nginx.conf +++ b/.templates/nginx/nginx.conf @@ -2,7 +2,7 @@ # Uses https://github.com/acmesh-official/acme.sh to manage SSL certificates. # Flags the non 2xx or non 3xx (probably error) responses. -map $status $errorlog { ~^[23] 0; default 1; } +map $status $errorlog_$PAR_PROXYPORT { ~^[23] 0; default 1; } # Virtualhost's configuration follows. server { @@ -12,12 +12,12 @@ server { server_name_in_redirect on; server_name $PAR_SERVERNAME; - set $server_admin webmaster@$server_name; + set $server_admin $PAR_WEBMASTER; # access log and error log. # Any requests getting a non 2xx or non 3xx response will go to the error log as well. access_log $PAR_SERVICE/logs/web/access.log combined; - access_log $PAR_SERVICE/logs/web/error.log combined if=$errorlog; + access_log $PAR_SERVICE/logs/web/error.log combined if=$errorlog_$PAR_PROXYPORT; # Let's Encrypt (acme.sh) support. location /.well-known/ { @@ -62,11 +62,13 @@ server { "Sorry something went wrong. Try again a bit later.
You may report this at $server_admin.
"; } - - # No static service. + # No static service, but we may provide the OPTIONS for a potential DAV client. # location / { -# default_type text/html; -# return 404 "Sorry try $scheme://$server_name/$PAR_LOCATION instead."; +# default_type text/html; +## dav_ext_methods OPTIONS; +# if ($request_method != OPTIONS) { +# return 404 "Sorry try $scheme://$server_name/$PAR_LOCATION instead."; +## return 302 $scheme://$server_name/$PAR_LOCATION; # } ################################################################################## diff --git a/tools/backup.d/configs_backup.sh b/tools/backup.d/configs_backup.sh index 96c3395..fa19fda 100755 --- a/tools/backup.d/configs_backup.sh +++ b/tools/backup.d/configs_backup.sh @@ -3,8 +3,10 @@ # Backups the configuration files of this docker-composed service. # This is a general purpose worker script, doesn't requires customization. # -# Author: Kovács Zoltán +# Author: Kovács Zoltán # License: GNU/GPL v3+ (https://www.gnu.org/licenses/gpl-3.0.en.html) +# 2024-03-07 v0.2 +# fix: tar now dereferences the symlinks (if any). # 2021-09-03 v0.1 Initial release # Accepted environment variables and their defaults. @@ -69,7 +71,7 @@ BACKUPDIR="${PAR_BACKUPDIR:-$BASE_DIR/$BACKUPDIR}" if [ -w "$BACKUPDIR" ]; then BACKUP_NAME="configs.$("$DATE" '+%Y%m%d_%H%M%S').$("$HOSTNAME")" ( cd "$BASE_DIR" - "$TAR" czf "$BACKUPDIR/$BACKUP_NAME.tgz" \ + "$TAR" czhf "$BACKUPDIR/$BACKUP_NAME.tgz" \ "$YMLFILE" configs docker \ 2>>"$BACKUPDIR/$BACKUP_NAME.log" ) diff --git a/tools/customize_nginx.sh b/tools/customize_nginx.sh index b2c746d..7efd503 100644 --- a/tools/customize_nginx.sh +++ b/tools/customize_nginx.sh @@ -1,20 +1,27 @@ #!/bin/bash -# -# Set the variables below then run this script to generate the config/nginx.conf -# (the webserver configuration file for this service). Take a revision then -# symlink it into the instances/.nginx folder and reload the webserver to activate. + +PAR_SERVICENAME= +PAR_PROXYHOST="localhost" +PAR_PROXYPORT="8201" +PAR_SERVERNAME="myservice.example.com" +PAR_LOCATION= +PAR_WEBMASTER="webmaster@example.com" # Valid support email address + +################################################################################ +# There is nothing to change below this line (I hope) +################################################################################ PAR_ACMEHOST="localhost" PAR_ACMEPORT="8100" -PAR_SERVICE="$HOME/services/servicename" -PAR_PROXYHOST="localhost" -PAR_PROXYPORT="8201" -PAR_SERVERNAME="www.example.com" -PAR_LOCATION="" +PAR_SERVICE="$HOME/services/$PAR_SERVICENAME" -# Do not change anything below. -PARAMETERS='$PAR_ACMEHOST:$PAR_ACMEPORT:$PAR_SERVICE:$PAR_PROXYHOST:$PAR_PROXYPORT:$PAR_SERVERNAME:$PAR_LOCATION' +PARAMETERS='$PAR_ACMEHOST:$PAR_ACMEPORT:$PAR_SERVICE:$PAR_PROXYHOST:$PAR_PROXYPORT:$PAR_SERVERNAME:$PAR_LOCATION:$PAR_WEBMASTER' for parameter in $(echo "$PARAMETERS" | tr ":" "\n") do export ${parameter:1}; done cat "$PAR_SERVICE/.templates/nginx/nginx.conf" | envsubst "$PARAMETERS" \ > "$PAR_SERVICE/configs/nginx.conf" + +touch $PAR_SERVICE/logs/web/access.log $PAR_SERVICE/logs/web/error.log +chmod 660 $PAR_SERVICE/logs/web/access.log $PAR_SERVICE/logs/web/error.log +[[ ! -a "$PAR_SERVICE/../.nginx/$PAR_SERVICENAME.conf" ]] \ +&& ln -s "../$PAR_SERVICENAME/configs/nginx.conf" "$PAR_SERVICE/../.nginx/$PAR_SERVICENAME.conf"