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

#!/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