diff --git a/README.md b/README.md index 8eea5e4..61c32b8 100644 --- a/README.md +++ b/README.md @@ -65,13 +65,8 @@ git clone https://github.com/simatec/piler-docker.git cd /opt/piler-docker ``` -* configure your Piler settings -``` -nano piler.conf -``` - -* after config start the Install +* start the Install ``` bash install-piler.sh @@ -144,6 +139,9 @@ To leave the container on the console you have to execute 2x `exit`. ## Changelog +### 0.8.0 (17.01.2023) +* (simatec) Config-Menu for Installer added + ### 0.7.0 (15.01.2023) * (simatec) New Volumes added * (simatec) Fix Installer diff --git a/install-piler.sh b/install-piler.sh index cc58a5a..3b441f2 100644 --- a/install-piler.sh +++ b/install-piler.sh @@ -49,6 +49,8 @@ BLA::stop_loading_animation() { } ####################################################################################### + +# Path-Settings installPth="/opt/piler-docker" configPth="/opt/piler-docker/config" etcPth="/var/lib/docker/volumes/piler-docker_piler_etc/_data" @@ -56,6 +58,132 @@ etcPth="/var/lib/docker/volumes/piler-docker_piler_etc/_data" # Load config . ./piler.conf +############################## Installer Settings ####################################### + +# Piler-Domain +read -ep "Please set your Piler-Domain (Enter for default: piler.example.com): " pilerDomain +pilerDomain=${pilerDomain:=piler.example.com} +sed -i 's/PILER_DOMAIN=.*/PILER_DOMAIN="'$pilerDomain'"/g' ./piler.conf + +# Piler-Admin-Mail +read -ep "Please set your Mailserver Admin Mail (Enter for default: admin@example.com): " pilerAdminMail +pilerAdminMail=${pilerAdminMail:=admin@example.com} +sed -i 's/SUPPORT_MAIL=.*/SUPPORT_MAIL="'$pilerAdminMail'"/g' ./piler.conf + +# retention Days +read -ep "Please set retention days (Enter for default: 2555 Days ~ 7 Years): " retentionDays +retentionDays=${retentionDays:=2555} +sed -i 's/DEFAULT_RETENTION_DAYS=.*/DEFAULT_RETENTION_DAYS="'$retentionDays'"/g' ./piler.conf + +# Smarthost +read -ep "Please set your Smarthost (Enter for default: 127.0.0.1). Default settings can be used here!!: " pilerSmartHost +pilerSmartHost=${pilerSmartHost:=127.0.0.1} +sed -i 's/SMARTHOST=.*/SMARTHOST="'$pilerSmartHost'"/g' ./piler.conf + +# IMAP Server +read -ep "Please set your IMAP Server (Enter for default: imap.example.com): " imapServer +imapServer=${imapServer:=imap.example.com} +sed -i 's/IMAP_SERVER=.*/IMAP_SERVER="'$imapServer'"/g' ./piler.conf + +# Timezone +read -ep "Please set your Timezone (Enter for default: Europe/Berlin): " timeZone +timeZone=${timeZone:=Europe/Berlin} +timeZone="${timeZone////\\/}" +sed -i 's/TIME_ZONE=.*/TIME_ZONE="'$timeZone'"/g' ./piler.conf + +# MySql Database +read -ep "Please set your MySql Database (Enter for default: piler): " pilerDataBase +pilerDataBase=${pilerDataBase:=piler} +sed -i 's/MYSQL_DATABASE=.*/MYSQL_DATABASE="'$pilerDataBase'"/g' ./piler.conf + +# MySql User +read -ep "Please set your MySql User (Enter for default: piler): " pilerUser +pilerUser=${pilerUser:=piler} +sed -i 's/MYSQL_USER=.*/MYSQL_USER="'$pilerUser'"/g' ./piler.conf + +# MySql Password +read -sp "Please set your MySql Password: " pilerPassword +pilerPassword=$pilerPassword +sed -i 's/MYSQL_PASSWORD=.*/MYSQL_PASSWORD="'$pilerPassword'"/g' ./piler.conf +echo + +# use Let's Encrypt +while true; do + read -ep "Enabled / Disabled (yes/no) Let's Encrypt? For local Run disabled / Y|N: " jn + case $jn in + [Yy]* ) sed -i 's/USE_LETSENCRYPT=.*/USE_LETSENCRYPT="yes"/g' ./piler.conf; break;; + [Nn]* ) sed -i 's/USE_LETSENCRYPT=.*/USE_LETSENCRYPT="no"/g' ./piler.conf; break;; + * ) echo -e "${red} Please confirm with Y or N.";; + esac +done + +# reload config +. ./piler.conf + +# Let's Encrypt registration contact information +if [ "$USE_LETSENCRYPT" = "yes" ]; then + read -ep "Please set Let's Encrypt registration contact information (Enter for default: admin@example.com): " acmeContact + acmeContact=${acmeContact:=admin@example.com} + sed -i 's/LETSENCRYPT_EMAIL=.*/LETSENCRYPT_EMAIL="'$acmeContact'"/g' ./piler.conf +fi + +# use Mailcow +while true; do + read -ep "If Use Mailcow API Options (yes/no)? / Y|N: " jn + case $jn in + [Yy]* ) sed -i 's/USE_MAILCOW=.*/USE_MAILCOW=true/g' ./piler.conf; break;; + [Nn]* ) sed -i 's/USE_MAILCOW=.*/USE_MAILCOW=false/g' ./piler.conf; break;; + * ) echo -e "${red} Please confirm with Y or N.";; + esac +done + +# reload config +. ./piler.conf + +if [ "$USE_MAILCOW" = true ]; then + # Mailcow API-Key + read -ep "Please set your Mailcow API-Key: " apiKey + apiKey=$apiKey + sed -i 's/MAILCOW_APIKEY=.*/MAILCOW_APIKEY="'$apiKey'"/g' ./piler.conf + + # Mailcow Host Domain + read -ep "Please set your Mailcow Host Domain (Enter for default: $imapServer): " mailcowHost + mailcowHost=${mailcowHost:=$imapServer} + sed -i 's/MAILCOW_HOST=.*/MAILCOW_HOST="'$mailcowHost'"/g' ./piler.conf +fi + +echo +echo "${blue}${HLINE}" +echo "All settings were saved in the piler.conf file" +echo "and can be adjusted there at any time." +echo "${blue}${HLINE}${normal}" +echo + +# uninstall Postfix +while true; do + read -ep "Postfix must be uninstalled prior to installation. Do you want to uninstall Postfix now? (y/n): " yn + case $yn in + [Yy]* ) apt purge postfix -y; break;; + [Nn]* ) echo -e "${redBold} The installation process is aborted because Postfix has not been uninstalled.!! ${normal}"; exit;; + * ) echo -e "${red} Please confirm with y or n.";; + esac +done + +# start piler install +while true; do + read -ep "Do you want to start the Piler installation now? / Y|N: " yn + case $yn in + [Yy]* ) echo -e "${greenBold}Piler install started!! ${normal}"; break;; + [Nn]* ) echo -e "${redBold}Aborting the Piler installation!! ${normal}"; exit;; + * ) echo -e "${red} Please confirm with Y or N.";; + esac +done + +######################################################################################### + +# reload config +. ./piler.conf + if [ ! -f $installPth/.env ]; then ln -s ./piler.conf .env fi @@ -70,15 +198,6 @@ else cp $configPth/piler-default.yml $installPth/docker-compose.yml fi -while true; do - read -ep "Postfix must be uninstalled prior to installation. Do you want to uninstall Postfix now? (y/n): " yn - case $yn in - [Yy]* ) apt purge postfix -y; break;; - [Nn]* ) echo -e "${redBold} The installation process is aborted because Postfix has not been uninstalled.!! ${normal}"; exit;; - * ) echo -e "${red} Please confirm with y or n.";; - esac -done - # old docker stop cd $installPth docker-compose down