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"