mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2025-10-06 00:03:39 -04:00
* ipv6: added ipv6 detection + removed ip6 nat container * nginx: renamed DISABLE_IPv6 to ENABLE_IPV6 to align * initial commit for script overhauls * rewrite to scripts after testing (improved error handling) * fixed missing fi in update.sh * fixed/added comments for modules * fix broken EXIT_CODE var handling * added jq as dependancy * fixed docker version check for daemon * improved _modules handling while running * reintegrated module loading (update.sh) * added error handling for blank daemon.json * adapted removal of ACME_CONTACT for nightly * move detect_major_update func to core submodule * removed unnecessary message on every call of function * Update _modules/scripts/new_options.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update _modules/scripts/core.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * improve ENABLE_IPV6 check in nginx bootstrap * improve detection of ENABLE_IPV6 * ip6_controller: moved docker major detection upwards * Update _modules/scripts/new_options.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update _modules/scripts/new_options.sh Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * reuse DOCKER_MAJOR Variable in ip6_controller * fix some smaller typos in update.sh * smaller bugfixes in submodules * completely remove ACME_CONTACT Variable --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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
|
|
} |