#!/bin/ash ##Installer for MailBackup-sys on Alpine Linux #Goto ProjectRoot cd "$( dirname "$0" )" #Intergration check if [ -z ${DistoBuilderINT+x} ]; then ResourceFolder=/tmp phpVer=83 #Install required software apk add dovecot sudo curl openssl cat Configs/php.pkglist | xargs apk add #Install Nginx and Nginx Repo wget https://nginx.org/keys/nginx_signing.rsa.pub -O /etc/apk/keys/nginx_signing.rsa.pub echo "@nginx http://nginx.org/packages/mainline/alpine/v$(egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release)/main" >> /etc/apk/repositories curl -L https://nginx.org/keys/nginx_signing.rsa.pub -o /etc/apk/keys/nginx_signing.rsa.pub apk add nginx@nginx ##Install OfflineIMAP3 for alpine 3.19 and lower #echo @CommunityEdge http://dl-4.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories #apk add offlineimap@CommunityEdge ##Install OfflineIMAP3 for alpine 3.20 and higher apk add offlineimap #Configure Php-fpm echo ";Placeholder" > /etc/php$phpVer/php-fpm.d/www.conf mv Configs/php.conf /etc/php$phpVer/php-fpm.d/mailbackup.conf printf "[Date]\ndate.timezone = Europe/Amsterdam" >/etc/php$phpVer/conf.d/04_date_timezone.ini rc-update add php-fpm$phpVer fi #Download Resources SnappyMailVer=$(curl -s https://api.github.com/repos/the-djmaze/snappymail/releases/latest | grep 'tag_name.*' | cut -d : -f 2,3 | tr -d \" |tr -d , |tr -d " "| tr -d : ) echo "$SnappyMailVer" > /opt/SnappyMail-installed curl -L https://github.com/the-djmaze/snappymail/releases/download/$SnappyMailVer/snappymail-${SnappyMailVer//v}.tar.gz -o /tmp/smc.tar.gz || exit 1 #Configure Nginx rm -rf /etc/nginx/conf.d/* mv Configs/nginx.conf /etc/nginx/nginx.conf mkdir /var/www mv Resources/Custom-index.html /var/www/index.html #Configure Dovecot rm -rf /etc/dovecot/* mv Configs/dovecot.conf /etc/dovecot/dovecot.conf mkdir /mail chmod 777 /mail #Install Webmail mkdir -p /opt/webmail/data/_data_/_default_/configs /opt/webmail/data/_data_/_default_/domains tar -C /opt/webmail -xzf /tmp/smc.tar.gz #Configure Webmail touch /opt/webmail/data/_data_/_default_/domains/disabled mv Configs/SnappyMail-application.ini /opt/webmail/data/_data_/_default_/configs/application.ini mv Configs/SnappyMail-Domain-localhost.ini /opt/webmail/data/_data_/_default_/domains/localhost.ini chown -R nginx:nginx /opt/webmail find /opt/webmail -type d -exec chmod 755 {} \; find /opt/webmail -type f -exec chmod 644 {} \; #Add OfflineIMAP config to user skeleton folder mkdir /etc/skel mv Configs/offlineimaprc /etc/skel/.offlineimaprc touch /opt/mailsync.sh echo '30 2 * * 4 ash /opt/mailsync.sh > /dev/null' >> /etc/crontabs/root #Add tool update scripts mv Resources/UpdateSnappyMail.sh /opt/UpdateSnappyMail.sh mv Resources/AddMailBox.sh /opt/AddMailBox.sh #Cleanup rm -f /tmp/olim3.tar.gz /tmp/smc.tar.gz #Start and enable service rc-update add dovecot rc-update add nginx if [ -z ${DistoBuilderINT+x} ]; then service dovecot start service nginx start service php-fpm$phpVer start fi