mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2025-12-14 10:26:01 +00:00
96 lines
3.6 KiB
Bash
96 lines
3.6 KiB
Bash
#!/usr/bin/env bash
|
|
# _modules/scripts/migrate_options.sh
|
|
# THIS SCRIPT IS DESIGNED TO BE RUNNING BY MAILCOW SCRIPTS ONLY!
|
|
# DO NOT, AGAIN, NOT TRY TO RUN THIS SCRIPT STANDALONE!!!!!!
|
|
|
|
migrate_config_options() {
|
|
|
|
sed -i --follow-symlinks '$a\' mailcow.conf
|
|
|
|
KEYS=(
|
|
SOLR_HEAP
|
|
SKIP_SOLR
|
|
SOLR_PORT
|
|
FLATCURVE_EXPERIMENTAL
|
|
DISABLE_IPv6
|
|
ACME_CONTACT
|
|
)
|
|
|
|
for key in "${KEYS[@]}"; do
|
|
if grep -q "${key}" mailcow.conf; then
|
|
case "${key}" in
|
|
SOLR_HEAP)
|
|
echo "Removing ${key} in mailcow.conf"
|
|
sed -i '/# Solr heap size in MB\b/d' mailcow.conf
|
|
sed -i '/# Solr is a prone to run\b/d' mailcow.conf
|
|
sed -i '/SOLR_HEAP\b/d' mailcow.conf
|
|
;;
|
|
SKIP_SOLR)
|
|
echo "Removing ${key} in mailcow.conf"
|
|
sed -i '/\bSkip Solr on low-memory\b/d' mailcow.conf
|
|
sed -i '/\bSolr is disabled by default\b/d' mailcow.conf
|
|
sed -i '/\bDisable Solr or\b/d' mailcow.conf
|
|
sed -i '/\bSKIP_SOLR\b/d' mailcow.conf
|
|
;;
|
|
SOLR_PORT)
|
|
echo "Removing ${key} in mailcow.conf"
|
|
sed -i '/\bSOLR_PORT\b/d' mailcow.conf
|
|
;;
|
|
FLATCURVE_EXPERIMENTAL)
|
|
echo "Removing ${key} in mailcow.conf"
|
|
sed -i '/\bFLATCURVE_EXPERIMENTAL\b/d' mailcow.conf
|
|
;;
|
|
DISABLE_IPv6)
|
|
echo "Migrating ${key} to ENABLE_IPv6 in mailcow.conf"
|
|
local old=$(grep '^DISABLE_IPv6=' "mailcow.conf" | cut -d'=' -f2)
|
|
local new
|
|
if [[ "$old" == "y" ]]; then
|
|
new="false"
|
|
else
|
|
new="true"
|
|
fi
|
|
sed -i '/^DISABLE_IPv6=/d' "mailcow.conf"
|
|
echo "ENABLE_IPV6=$new" >> "mailcow.conf"
|
|
;;
|
|
ACME_CONTACT)
|
|
echo "Deleting obsoleted ${key} in mailcow.conf"
|
|
sed -i '/^# Lets Encrypt registration contact information/d' mailcow.conf
|
|
sed -i '/^# Optional: Leave empty for none/d' mailcow.conf
|
|
sed -i '/^# This value is only used on first order!/d' mailcow.conf
|
|
sed -i '/^# Setting it at a later point will require the following steps:/d' mailcow.conf
|
|
sed -i '/^# https:\/\/docs.mailcow.email\/troubleshooting\/debug-reset_tls\//d' mailcow.conf
|
|
sed -i '/^ACME_CONTACT=.*/d' mailcow.conf
|
|
sed -i '/^#ACME_CONTACT=.*/d' mailcow.conf
|
|
;;
|
|
esac
|
|
fi
|
|
done
|
|
|
|
solr_volume=$(docker volume ls -qf name=^${COMPOSE_PROJECT_NAME}_solr-vol-1)
|
|
if [[ -n $solr_volume ]]; then
|
|
echo -e "\e[34mSolr has been replaced within mailcow since 2025-01.\nThe volume $solr_volume is unused.\e[0m"
|
|
sleep 1
|
|
if [ ! "$FORCE" ]; then
|
|
read -r -p "Remove $solr_volume? [y/N] " response
|
|
if [[ "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
|
|
echo -e "\e[33mRemoving $solr_volume...\e[0m"
|
|
docker volume rm $solr_volume || echo -e "\e[31mFailed to remove. Remove it manually!\e[0m"
|
|
echo -e "\e[32mSuccessfully removed $solr_volume!\e[0m"
|
|
else
|
|
echo -e "Not removing $solr_volume. Run \`docker volume rm $solr_volume\` manually if needed."
|
|
fi
|
|
else
|
|
echo -e "\e[33mForce removing $solr_volume...\e[0m"
|
|
docker volume rm $solr_volume || echo -e "\e[31mFailed to remove. Remove it manually!\e[0m"
|
|
echo -e "\e[32mSuccessfully removed $solr_volume!\e[0m"
|
|
fi
|
|
fi
|
|
|
|
# Delete old fts.conf before forced switch to flatcurve to ensure update is working properly
|
|
FTS_CONF_PATH="${SCRIPT_DIR}/data/conf/dovecot/conf.d/fts.conf"
|
|
if [[ -f "$FTS_CONF_PATH" ]]; then
|
|
if grep -q "Autogenerated by mailcow" "$FTS_CONF_PATH"; then
|
|
rm -rf $FTS_CONF_PATH
|
|
fi
|
|
fi
|
|
} |