public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
Add switch to legacy version
b77ff2f5
data/web/templates/base.twig | 8 ++++++++
generate_config.sh | 8 ++++++++
update.sh | 37 +++++++++++++++++++++++++++++++++++--
3 files changed, 51 insertions(+), 2 deletions(-)
Diff
diff --git a/data/web/templates/base.twig b/data/web/templates/base.twig
index 4d0a3025..87bdddab 100644
--- a/data/web/templates/base.twig
+++ b/data/web/templates/base.twig
@@ -569,6 +569,14 @@ function recursiveBase64StrToArrayBuffer(obj) {
<span style="text-align:right;display:block;">Build: {{ mailcow_info.git_commit_date }}</span>
</span>
{% endif %}
+ {% if mailcow_cc_username and mailcow_info.mailcow_branch|lower == "legacy" and mailcow_info.version_tag|default %}
+ <span class="version">
+ 🛠️🐮 + 🐋 = 💕
+ Legacy: <a href="{{ mailcow_info.git_project_url }}/commit/{{ mailcow_info.git_commit }}" target="_blank">{{ mailcow_info.version_tag }}
+ </a><br>
+ <span style="text-align:right;display:block;">Build: {{ mailcow_info.git_commit_date }}</span>
+ </span>
+ {% endif %}
</div>
</body>
</html>
diff --git a/generate_config.sh b/generate_config.sh
index 052764a6..e9a82ff5 100755
--- a/generate_config.sh
+++ b/generate_config.sh
@@ -181,11 +181,15 @@ if [[ ${SKIP_BRANCH} != y ]]; then
echo "Available Branches:"
echo "- master branch (stable updates) | default, recommended [1]"
echo "- nightly branch (unstable updates, testing) | not-production ready [2]"
+ echo "- legacy branch (supported until February 2026) | deprecated, security updates only [3]"
sleep 1
while [ -z "${MAILCOW_BRANCH}" ]; do
read -r -p "Choose the Branch with it's number [1/2] " branch
case $branch in
+ [3])
+ MAILCOW_BRANCH="legacy"
+ ;;
[2])
MAILCOW_BRANCH="nightly"
;;
@@ -534,6 +538,10 @@ case ${git_branch} in
mailcow_git_version=$(git rev-parse --short $(git rev-parse @{upstream}))
mailcow_last_git_version=""
;;
+ legacy)
+ mailcow_git_version=$(git rev-parse --short $(git rev-parse @{upstream}))
+ mailcow_last_git_version=""
+ ;;
*)
mailcow_git_version=$(git rev-parse --short HEAD)
mailcow_last_git_version=""
diff --git a/update.sh b/update.sh
index c11179c5..985d2cd1 100755
--- a/update.sh
+++ b/update.sh
@@ -845,8 +845,12 @@ while (($#)); do
echo -e "\e[32mRunning in Developer mode...\e[0m"
DEV=y
;;
+ --legacy)
+ CURRENT_BRANCH="$(cd "${SCRIPT_DIR}"; git rev-parse --abbrev-ref HEAD)"
+ NEW_BRANCH="legacy"
+ ;;
--help|-h)
- echo './update.sh [-c|--check, --check-tags, --ours, --gc, --nightly, --prefetch, --skip-start, --skip-ping-check, --stable, -f|--force, -d|--dev, -h|--help]
+ echo './update.sh [-c|--check, --check-tags, --ours, --gc, --nightly, --prefetch, --skip-start, --skip-ping-check, --stable, --legacy, -f|--force, -d|--dev, -h|--help]
-c|--check - Check for updates and exit (exit codes => 0: update available, 3: no updates)
--check-tags - Check for newer tags and exit (exit codes => 0: newer tag available, 3: no newer tag)
@@ -856,7 +860,8 @@ while (($#)); do
--prefetch - Only prefetch new images and exit (useful to prepare updates)
--skip-start - Do not start mailcow after update
--skip-ping-check - Skip ICMP Check to public DNS resolvers (Use it only if you'\''ve blocked any ICMP Connections to your mailcow machine)
- --stable - Switch your mailcow updates to the stable (master) branch. Default unless you changed it with --nightly.
+ --stable - Switch your mailcow updates to the stable (master) branch. Default unless you changed it with --nightly or --legacy.
+ --legacy - Switch your mailcow updates to the legacy branch. The legacy branch will only recieve security updates until February 2026.
-f|--force - Force update, do not ask questions
-d|--dev - Enables Developer Mode (No Checkout of update.sh for tests)
'
@@ -1262,6 +1267,11 @@ if ! [ "$NEW_BRANCH" ]; then
sleep 1
echo -e "\e[33mTo change that run the update.sh Script one time with the --stable parameter to switch to stable builds.\e[0m"
+ elif [ "${BRANCH}" == "legcy" ]; then
+ echo -e "\e[31mYou are receiving legacy updates. The legacy branch will only recieve security updates until February 2026.\e[0m"
+ sleep 1
+ echo -e "\e[33mTo change that run the update.sh Script one time with the --stable parameter to switch to stable builds.\e[0m"
+
else
echo -e "\e[33mYou are receiving updates from an unsupported branch.\e[0m"
sleep 1
@@ -1324,6 +1334,29 @@ elif [ "$NEW_BRANCH" == "nightly" ] && [ "$CURRENT_BRANCH" != "nightly" ]; then
fi
git fetch origin
git checkout -f "${BRANCH}"
+elif [ "$NEW_BRANCH" == "legacy" ] && [ "$CURRENT_BRANCH" != "legacy" ]; then
+ echo -e "\e[33mYou are about to switch your mailcow Updates to the legacy branch.\e[0m"
+ sleep 1
+ echo -e "\e[33mBefore you do: Please take a backup of all components to ensure that no Data is lost...\e[0m"
+ sleep 1
+ echo -e "\e[31mWARNING: A switch to stable or nightly is possible any time.\e[0m"
+ read -r -p "Are you sure you that want to continue upgrading to the legacy branch? [y/N] " response
+ if [[ ! "${response}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
+ echo "OK. If you prepared yourself for that please run the update.sh Script with the --legacy parameter again to trigger this process here."
+ exit 0
+ fi
+ BRANCH=$NEW_BRANCH
+ DIFF_DIRECTORY=update_diffs
+ DIFF_FILE=${DIFF_DIRECTORY}/diff_before_upgrade_to_legacy_$(date +"%Y-%m-%d-%H-%M-%S")
+ mv diff_before_upgrade* ${DIFF_DIRECTORY}/ 2> /dev/null
+ if ! git diff-index --quiet HEAD; then
+ echo -e "\e[32mSaving diff to ${DIFF_FILE}...\e[0m"
+ mkdir -p ${DIFF_DIRECTORY}
+ git diff "${BRANCH}" --stat > "${DIFF_FILE}"
+ git diff "${BRANCH}" >> "${DIFF_FILE}"
+ fi
+ git fetch origin
+ git checkout -f "${BRANCH}"
fi
if [ ! "$DEV" ]; then