vimbadmin() {
echo "${info} Installing Vimbadmin..." | awk '{ print strftime("[%H:%M:%S] |"), $0 }'
mysql --defaults-file=/etc/mysql/debian.cnf -e "CREATE DATABASE vimbadmin; GRANT ALL ON vimbadmin.* TO 'vimbadmin'@'localhost' IDENTIFIED BY '${VIMB_MYSQL_PASS}'; FLUSH PRIVILEGES;"
apt-get -q -y --force-yes install git curl
cd ~/sources
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
composer create-project opensolutions/vimbadmin /srv/vimbadmin -s dev -n --keep-vcs
chown -R www-data: /srv/vimbadmin/public
chown -R www-data: /srv/vimbadmin/var
ln -s /srv/vimbadmin/public/ /etc/nginx/html/${MYDOMAIN}/vma
cp /srv/vimbadmin/application/configs/application.ini.dist /srv/vimbadmin/application/configs/application.ini
sed -i "s/xxx/${VIMB_MYSQL_PASS}/g" /srv/vimbadmin/application/configs/application.ini
sed -i 's/defaults.mailbox.uid = 2000/defaults.mailbox.uid = 5000/g' /srv/vimbadmin/application/configs/application.ini
#sed -i 's/defaults.mailbox.gid = 2000/defaults.mailbox.uid = 5000/g' /srv/vimbadmin/application/configs/application.ini
echo -e 'defaults.mailbox.uid = 5000' >> /srv/vimbadmin/application/configs/application.ini
sed -i 's/defaults.mailbox.maildir = "maildir:\/srv\/vmail\/%d\/%u\/mail:LAYOUT=fs"/defaults.mailbox.maildir = "maildir:\/var\/vmail\/%d\/%u\/Maildir:LAYOUT=fs"/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/defaults.mailbox.homedir = "\/srv\/vmail\/%d\/%u"/defaults.mailbox.homedir = "\/var\/vmail\/%d\/%u"/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/defaults.mailbox.password_scheme = "dovecot:BLF-CRYPT"/defaults.mailbox.password_scheme = "dovecot:SHA512-CRYPT"/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/mailbox_deletion_fs_enabled = false/mailbox_deletion_fs_enabled = true/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/server.smtp.port = "465"/server.smtp.port = "587"/g' /srv/vimbadmin/application/configs/application.ini
#sed -i 's/server.smtp.crypt = "SSL"/server.imap.crypt = "TLS"/g' /srv/vimbadmin/application/configs/application.ini
echo -e 'server.imap.crypt = "TLS"' >> /srv/vimbadmin/application/configs/application.ini
sed -i 's/server.imap.host = "gpo.%d"/server.imap.host = "mail.%d"/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/server.imap.port = "993"/server.imap.port = "143"/g' /srv/vimbadmin/application/configs/application.ini
sed -i 's/server.imap.crypt = "SSL"/server.imap.crypt = "TLS"/g' /srv/vimbadmin/application/configs/application.ini
sed -i "s/server.webmail.host = \"https:\/\/webmail.%d\"/server.webmail.host = \"https:\/\/mail.%d\/webmail\"/g" /srv/vimbadmin/application/configs/application.ini
sed -i "s/server.pop3.enabled = 1/server.pop3.enabled = 0/g" /srv/vimbadmin/application/configs/application.ini
sed -i "s/defaults.domain.transport = \"virtual\"\/defaults.domain.transport = \"lmtps:unix:private\/dovecot-lmtp\"/g" /srv/vimbadmin/application/configs/application.ini
sed -i "s/example.com/${MYDOMAIN}/g" /srv/vimbadmin/application/configs/application.ini
mkdir -p /srv/archives
cp /srv/vimbadmin/public/.htaccess.dist /srv/vimbadmin/public/.htaccess
cd /srv/vimbadmin/
./bin/doctrine2-cli.php orm:schema-tool:create
(crontab -l && echo "# Die 10. Minute jeder 2. Stunde") | crontab -
(crontab -l && echo "10 */2 * * * /srv/vimbadmin/bin/vimbtool.php -a archive.cli-archive-pendings") | crontab -
(crontab -l && echo "# Die 30. Minute jeder 2. Stunde") | crontab -
(crontab -l && echo "30 */2 * * * /srv/vimbadmin/bin/vimbtool.php -a archive.cli-restore-pendings") | crontab -
(crontab -l && echo "# Die 50. Minute jeder 2. Stunde") | crontab -
(crontab -l && echo "50 */2 * * * /srv/vimbadmin/bin/vimbtool.php -a archive.cli-delete-pendings") | crontab -
(crontab -l && echo "# 3:15 AM") | crontab -
(crontab -l && echo "15 3 * * * /srv/vimbadmin/bin/vimbtool.php -a mailbox.cli-delete-pending") | crontab -
cat > /etc/nginx/sites-custom/vimbadmin.conf <<END
location ~ ^/vma {
alias /srv/vimbadmin/public;
location ~ ^/vma/(.*\.(js|css|gif|jpg|png|ico))$ {
alias /srv/vimbadmin/public/$1;
}
rewrite ^/vma(.*)$ /vma/index.php last;
location ~ ^/vma(.+\.php)$ {
alias /srv/vimbadmin/public$1;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
fastcgi_index index.php;
charset utf8;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT /usr/local/vimbadmin/public;
}
}
END
if [ ${USE_PHP7} == '1' ]; then
systemctl restart {dovecot,postfix,amavis,spamassassin,clamav-daemon,nginx,php7.0-fpm,mysql}
fi
}