#!/bin/bash # This installation script works on CentOS 7 # Run as root! if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi set -e SCRIPT_PATH=$(dirname $(realpath -s $0)) cd $SCRIPT_PATH/.. #Help function function HELP { cat << EOF Basic usage: install-centos7.sh Installs Mailtrain 2 on CentOS 7. Command line options. The following switches are recognized. --with-httpd-proxy -- URL of the ssio-template GIT repository (default: git@gitlab.sathyasai.org:webs/ssio-template.git) --db-name ... -- Name of DB and user in the DB (defaults to id with - -> _ substitution) --aliases ... -- Server aliases divided by spaces (e.g. "www.esse-institute.org www.esse-institut.de") --cert-domains ... -- Domains for which to get certs via letsencrypt (e.g. "www.esse-institute.org www.esse-institut.de") --dont-push -- Don't push the website to gitlab. It stops after creating a directory, setting the remote and doing commit Example (local installation): install-centos7.sh http://localhost:3000 http://localhost:3003 http://localhost:3004 Example (installation behind HTTPD proxy - see mailtrain-apache-sample.conf): install-centos7.sh https://mailtrain.example.com https://sbox.mailtrain.example.com https://mail.example.com EOF exit 1 } if [ $# -lt 3 ]; then echo "Error: incorrect number of parameters." HELP fi URL_BASE_TRUSTED="$1" URL_BASE_SANDBOX="$2" URL_BASE_PUBLIC="$3" yum -y install epel-release curl --silent --location https://rpm.nodesource.com/setup_11.x | bash - cat > /etc/yum.repos.d/mongodb-org.repo < server/config/production.yaml <> server/services/workers/reports/config/production.yaml < /etc/logrotate.d/mailtrain /var/log/mailtrain.log { daily rotate 12 compress delaycompress missingok notifempty copytruncate nomail } EOM # Set up systemd service script cp setup/mailtrain-centos7.service /etc/systemd/system/mailtrain.service systemctl enable mailtrain.service # Start the service systemctl daemon-reload systemctl start mailtrain.service echo "Success! Open http://$HOSTNAME/ and log in as admin:test";