diff --git a/setup/00_install_global_functions_variables.sh b/setup/00_install_global_functions_variables.sh old mode 100644 new mode 100755 index ad70dd82..0a74fa11 --- a/setup/00_install_global_functions_variables.sh +++ b/setup/00_install_global_functions_variables.sh @@ -253,3 +253,35 @@ sudo $SYSTEMCTL_PATH restart $1 || echo \"Failed restarting service\"" > "/var/o chmod +x "/var/opt/$1.git/hooks/update" } export -f hook_script_bower + +function log_script { + +SERVICE_NAME=$1 + +# Ensure required files and permissions +echo "d /var/log/${SERVICE_NAME} 0750 syslog adm" > /etc/tmpfiles.d/${SERVICE_NAME}-log.conf + +# Redirect MongoDB log output from syslog to mongodb log file +echo "if ( \$programname startswith \"$SERVICE_NAME\" ) then { + action(type=\"omfile\" file=\"/var/log/${SERVICE_NAME}/${SERVICE_NAME}.log\") + stop +}" > /etc/rsyslog.d/25-${SERVICE_NAME}.conf + +# Setup log rotate +echo "/var/log/${SERVICE_NAME}/${SERVICE_NAME}.log { + daily + ifempty + missingok + rotate 7 + compress + create 640 syslog adm + su root root + sharedscripts + postrotate + systemctl kill --signal=SIGHUP --kill-who=main rsyslog.service 2>/dev/null || true + endscript +}" > /etc/logrotate.d/${SERVICE_NAME} + +} + +export -f log_script \ No newline at end of file diff --git a/setup/01_install_commits.sh b/setup/01_install_commits.sh old mode 100644 new mode 100755 diff --git a/setup/02_install_prerequisites.sh b/setup/02_install_prerequisites.sh old mode 100644 new mode 100755 diff --git a/setup/03_install_check_running_services.sh b/setup/03_install_check_running_services.sh old mode 100644 new mode 100755 diff --git a/setup/04_install_import_keys.sh b/setup/04_install_import_keys.sh old mode 100644 new mode 100755 diff --git a/setup/05_install_packages.sh b/setup/05_install_packages.sh old mode 100644 new mode 100755 diff --git a/setup/06_install_enable_services.sh b/setup/06_install_enable_services.sh old mode 100644 new mode 100755 diff --git a/setup/07_install_wildduck.sh b/setup/07_install_wildduck.sh old mode 100644 new mode 100755 index faf02bec..a92a466a --- a/setup/07_install_wildduck.sh +++ b/setup/07_install_wildduck.sh @@ -60,6 +60,10 @@ npm install --unsafe-perm --production chown -R deploy:deploy /var/opt/wildduck.git chown -R deploy:deploy /opt/wildduck +echo "d /opt/wildduck 0755 deploy deploy +d /etc/wildduck 0755 wildduck wildduck" > /etc/tmpfiles.d/zone-mta.conf +log_script "wildduck-server" + echo "[Unit] Description=WildDuck Mail Server Conflicts=cyrus.service dovecot.service diff --git a/setup/08_install_haraka.sh b/setup/08_install_haraka.sh old mode 100644 new mode 100755 index d72cacb4..d03a7954 --- a/setup/08_install_haraka.sh +++ b/setup/08_install_haraka.sh @@ -101,6 +101,10 @@ error=false' > config/clamd.ini cp plugins/wildduck/config/wildduck.yaml config/wildduck.yaml sed -i -e "s/secret value/$SRS_SECRET/g" config/wildduck.yaml +# Ensure required files and permissions +echo "d /opt/haraka 0755 deploy deploy" > /etc/tmpfiles.d/haraka.conf +log_script "haraka" + echo '[Unit] Description=Haraka MX Server After=mongod.service redis.service diff --git a/setup/09_install_zone_mta.sh b/setup/09_install_zone_mta.sh old mode 100644 new mode 100755 index 85726656..d73b2a22 --- a/setup/09_install_zone_mta.sh +++ b/setup/09_install_zone_mta.sh @@ -111,6 +111,12 @@ npm install --unsafe-perm --production chown -R deploy:deploy /var/opt/zone-mta.git chown -R deploy:deploy /var/opt/zonemta-wildduck.git chown -R deploy:deploy /opt/zone-mta +chown -R wildduck:wildduck /etc/zone-mta + +# Ensure required files and permissions +echo "d /opt/zone-mta 0755 deploy deploy +d /etc/zone-mta 0755 wildduck wildduck" > /etc/tmpfiles.d/zone-mta.conf +log_script "zone-mta" echo '[Unit] Description=Zone Mail Transport Agent diff --git a/setup/10_install_wildduck_webmail.sh b/setup/10_install_wildduck_webmail.sh old mode 100644 new mode 100755 index 36d3ffe2..6e5f3c79 --- a/setup/10_install_wildduck_webmail.sh +++ b/setup/10_install_wildduck_webmail.sh @@ -43,6 +43,10 @@ chown -R deploy:deploy /opt/wildduck-webmail HOME=/home/deploy sudo -u deploy npm install HOME=/home/deploy sudo -u deploy npm run bowerdeps + +echo "d /opt/wildduck-webmail 0755 deploy deploy" > /etc/tmpfiles.d/zone-mta.conf +log_script "wildduck-www" + echo '[Unit] Description=Wildduck Webmail After=wildduck.service diff --git a/setup/11_install_nginx.sh b/setup/11_install_nginx.sh old mode 100644 new mode 100755 diff --git a/setup/12_install_ufw_rules.sh b/setup/12_install_ufw_rules.sh old mode 100644 new mode 100755 diff --git a/setup/13_install_ssl_certs.sh b/setup/13_install_ssl_certs.sh old mode 100644 new mode 100755 diff --git a/setup/14_install_start_services.sh b/setup/14_install_start_services.sh old mode 100644 new mode 100755 index edb5785f..e71c2a5d --- a/setup/14_install_start_services.sh +++ b/setup/14_install_start_services.sh @@ -4,6 +4,12 @@ OURNAME=14_install_start_services.sh echo -e "\n-- Executing ${ORANGE}${OURNAME}${NC} subscript --" +# Run tmpfiles definitions to ensure required directories/files +systemd-tmpfiles --create --remove + +# Restart rsyslog for the changes to take effect +systemctl restart rsyslog + # update reload script for future updates echo "#!/bin/bash $SYSTEMCTL_PATH reload nginx diff --git a/setup/15_install_deploy.sh b/setup/15_install_deploy.sh old mode 100644 new mode 100755 diff --git a/setup/get_install.sh b/setup/get_install.sh old mode 100644 new mode 100755 index cdb28370..062e9dac --- a/setup/get_install.sh +++ b/setup/get_install.sh @@ -1,7 +1,9 @@ #! /bin/bash +BRANCH="${1:-master}" + # This script downloads all the installation files. -BASEURL="https://raw.githubusercontent.com/nodemailer/wildduck/master/setup/" +BASEURL="https://raw.githubusercontent.com/nodemailer/wildduck/$BRANCH/setup/" ## declare an array declare -a arr=(