From fd8ac296214288f69fa7c2c04203b21fe1052cbd Mon Sep 17 00:00:00 2001 From: librelad Date: Wed, 12 Aug 2026 23:13:47 +0100 Subject: [PATCH] feat(stalwart): auto-update patches, VERSION config for release moves MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reverses the manual default from 4ee2529, which was over-cautious once the tag pin is taken into account. Two things were conflated. Auto-update does not reinstall anything: it snapshots, `compose pull`, `up -d` — the container is recreated from the new image and the data volume is untouched. And because the image is pinned to v0.16, the updater compares the digest of THAT tag, so auto can only ever apply rebuilds of 0.16 (security/bug patches). It cannot jump to 0.17. That is the safe half of updating, and there is no good reason to withhold it. Adds CFG_STALWART_VERSION=v0.16, which drives the image tag through the existing #LIBREPORTAL|STALWART_VERSION_TAG| sentinel (verified: setting it to v0.17 rewrites the image line). Moving between releases is now a config change a user can make from the app's config page — the roadmap's config-first version identity, used for real. Net behaviour: patches land unattended inside the update window; a version jump stays a deliberate decision, which is what pre-1.0 software with a settling storage schema warrants. Co-Authored-By: Claude Opus 5 --- containers/stalwart/stalwart.config | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/containers/stalwart/stalwart.config b/containers/stalwart/stalwart.config index 32ff555..d876ce5 100644 --- a/containers/stalwart/stalwart.config +++ b/containers/stalwart/stalwart.config @@ -6,6 +6,15 @@ # COMPOSE_FILE = default for no app_name in docker-compose file name, app if there is # BACKUP = if true, include this application in backup operations # UPDATE_TYPE = auto: new image builds are applied automatically (a recovery snapshot is taken first), manual: only when you press Update +# VERSION = the Stalwart release line this install tracks; drives the image tag. +# The two settings do different jobs and are safe together: +# UPDATE_TYPE=auto picks up REBUILDS of the version below (security/bug +# patches) — snapshot, pull, recreate. Your data volume is untouched; +# nothing is reinstalled. +# Changing VERSION is how you move BETWEEN releases (v0.16 -> v0.17). +# So patches land on their own, while a version jump stays a decision you +# make — which matters while Stalwart is pre-1.0 and still settling its +# storage schema. # HEALTHCHECK = if true, default docker health checks for that container will be enabled # AUTHELIA = if true, use Authelia authentication, if false turned off. # HEADSCALE = options : false, local, remote (see general config). e.g false or local,remote @@ -17,7 +26,8 @@ CFG_STALWART_BACKUP=true # stop-snapshot-start costs seconds of queued delivery (senders retry — that is # what SMTP does) and buys a consistent store. CFG_STALWART_BACKUP_STRATEGY=stop-snapshot-start -CFG_STALWART_UPDATE_TYPE=manual +CFG_STALWART_UPDATE_TYPE=auto +CFG_STALWART_VERSION=v0.16 CFG_STALWART_COMPOSE_FILE=default CFG_STALWART_HEALTHCHECK=true CFG_STALWART_AUTHELIA=false