mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-28 02:00:14 +01:00
e6465645b9
Stalwart v1.0.0 (26 Oct 2026) ships a new data store layout, so v0.16.x deployments cannot be upgraded in place. Data has to be copied into a new, empty v1 store with stalwartlabs/stalwart-migrate, which requires v0.16.27 as its source version and needs an interactive prepare step plus an offline final cutover. The update path pulled "latest" and would have swapped the binary for v1 on existing containers, leaving the mail server unable to start on its old store. Pin install and update to v0.16.27 instead and surface the reason through check_for_gh_release. Containers that already pulled v1.0.0 are put back on v0.16.27 by the next update run.
61 lines
2.2 KiB
Bash
61 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
|
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: MickLesk (CanbiZ)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://github.com/stalwartlabs/stalwart
|
|
|
|
APP="Stalwart"
|
|
var_tags="${var_tags:-mail;smtp;imap}"
|
|
var_cpu="${var_cpu:-2}"
|
|
var_ram="${var_ram:-4096}"
|
|
var_disk="${var_disk:-20}"
|
|
var_os="${var_os:-debian}"
|
|
var_version="${var_version:-13}"
|
|
#var_arm64="${var_arm64:-no}" # unset = ask the user; set yes/no only when verified
|
|
var_unprivileged="${var_unprivileged:-1}"
|
|
|
|
header_info "$APP"
|
|
variables
|
|
color
|
|
catch_errors
|
|
|
|
function update_script() {
|
|
header_info
|
|
check_container_storage
|
|
check_container_resources
|
|
|
|
if [[ ! -d /opt/stalwart ]]; then
|
|
msg_error "No ${APP} Installation Found!"
|
|
exit
|
|
fi
|
|
|
|
RELEASE="v0.16.27"
|
|
if check_for_gh_release "stalwart" "stalwartlabs/stalwart" "${RELEASE}" "Stalwart v1 changes the data store layout and requires an offline migration with stalwartlabs/stalwart-migrate; pinned until this script supports it"; then
|
|
msg_info "Stopping Service"
|
|
systemctl stop stalwart
|
|
msg_ok "Stopped Service"
|
|
|
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "stalwart" "stalwartlabs/stalwart" "prebuild" "${RELEASE}" "/opt/stalwart" "stalwart-$(arch_resolve x86_64 aarch64)-unknown-linux-gnu.tar.gz"
|
|
chmod +x /opt/stalwart/stalwart
|
|
|
|
msg_info "Starting Service"
|
|
systemctl start stalwart
|
|
msg_ok "Started Service"
|
|
msg_ok "Updated successfully!"
|
|
fi
|
|
exit
|
|
}
|
|
|
|
start
|
|
build_container
|
|
description
|
|
|
|
msg_ok "Completed Successfully!\n"
|
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
|
echo -e "${GATEWAY}${BGN}http://${IP}:8080/admin${CL}"
|
|
echo -e "${INFO}${YW}The bootstrap admin password was printed to the service log:${CL}"
|
|
echo -e "${TAB}${DEFAULT}${BGN}journalctl -u stalwart | grep -A8 'bootstrap mode'${CL}"
|