You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.5 KiB
95 lines
2.5 KiB
#!/usr/bin/env miaou-recipe
|
|
|
|
# CONSTANTS
|
|
|
|
FORCE=${FORCE:-false}
|
|
|
|
# FUNCTIONS
|
|
|
|
function install_postfix {
|
|
if $FORCE || ! systemctl is-active postfix.service --quiet; then
|
|
debconf-set-selections <<EOF
|
|
postfix postfix/mailname string $(hostname -f)
|
|
postfix postfix/main_mailer_type string 'Internet Site'
|
|
postfix postfix/mynetworks string '127.0.0.0/8'
|
|
EOF
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y postfix postgresql nginx fcgiwrap perl-doc micro debconf-utils
|
|
postconf -e "inet_protocols = ipv4"
|
|
systemctl restart postfix
|
|
echo postfix installed successfully!
|
|
else
|
|
echo postfix already installed!
|
|
fi
|
|
}
|
|
|
|
function alter_sympa_postgres_password_to {
|
|
password="$1"
|
|
/opt/miaou-bash/tools/append_or_replace '^db_passwd.*' "db_passwd\tsympa" /etc/sympa/sympa/sympa.conf
|
|
sudo -u postgres -- psql -c "ALTER USER sympa PASSWORD '$password'"
|
|
systemctl restart wwsympa.service
|
|
}
|
|
|
|
function install_sympa {
|
|
if $FORCE || ! systemctl is-active wwsympa.service --quiet; then
|
|
listmasters="pvincent@artcode.re,jnoel@mithril.re"
|
|
[[ $(hostname -d) == *.* ]] && listmasters+=",listmaster@$(hostname -d)" || true
|
|
debconf-set-selections <<EOF
|
|
sympa wwsympa/webserver_type select 'Other'
|
|
sympa sympa/database-type string pgsql
|
|
sympa sympa/db_host string localhost
|
|
sympa sympa/db_name string sympa
|
|
sympa sympa/db_user string sympa
|
|
sympa sympa/language select fr
|
|
sympa sympa/listmaster string $listmasters
|
|
EOF
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y sympa
|
|
systemctl disable sympasoap.{socket,service}
|
|
systemctl stop sympasoap.{socket,service}
|
|
|
|
alter_sympa_postgres_password_to sympa
|
|
echo sympa.service installed successfully!
|
|
else
|
|
echo sympa.service already installed!
|
|
fi
|
|
}
|
|
|
|
function install_nginx_host {
|
|
if $FORCE || [[ ! -f /etc/nginx/sites-available/sympa.conf ]]; then
|
|
cat <<EOF >/etc/nginx/sites-available/sympa.conf
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
rewrite ^/$ /wws permanent;
|
|
|
|
location /wws {
|
|
include fastcgi_params;
|
|
fastcgi_param SERVER_NAME $(hostname -f);
|
|
fastcgi_pass unix:/run/sympa/wwsympa.socket;
|
|
}
|
|
|
|
location /static-sympa {
|
|
alias /usr/share/sympa/static_content;
|
|
}
|
|
|
|
location /css-sympa {
|
|
alias /var/lib/sympa/css;
|
|
}
|
|
|
|
location /pictures-sympa {
|
|
alias /var/lib/sympa/pictures;
|
|
}
|
|
}
|
|
EOF
|
|
cd /etc/nginx/sites-enabled && rm -f default && ln -sf ../sites-available/sympa.conf && cd
|
|
systemctl reload nginx
|
|
echo host for nginx installed successfully!
|
|
else
|
|
echo host for nginx already installed!
|
|
fi
|
|
}
|
|
|
|
# MAIN
|
|
|
|
install_postfix
|
|
install_sympa
|
|
install_nginx_host
|