Files
MailBackup-sys/install.sh
Bram Prieshof 3fda003c05 Refactored PHP packagelist
Refactored PHP packagelist to set the PHP version form the `install.sh` instead of having it set in the pkglist
2025-01-09 23:12:17 +01:00

85 lines
3.2 KiB
Bash

#!/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
sed -i -e "s/phpPHPver/php$phpVer/g" Configs/php.pkglist
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
sed -i -e 's/PHPver/'$phpVer'/g' Configs/php.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
sed -i -e 's/PHPver/'$phpVer'/g' /etc/nginx/nginx.conf
service dovecot start
service nginx start
service php-fpm$phpVer start
fi