# Upstream sources — mattermost-lts | service | image | source repo | releases / changelog | |----------|-------------------------------------------|---------------------------------------------------|-------------------------------------------------------------------| | app | mattermost/mattermost-team-edition | https://github.com/mattermost/mattermost | https://docs.mattermost.com/about/mattermost-changelog.html | | postgres | postgres | https://github.com/postgres/postgres | https://www.postgresql.org/docs/release/ | ## Standing notes - mattermost-lts tracks the **11.7 ESR (Extended Support Release)** = Mattermost's LTS line. The "LTS" concept in Mattermost is **ESR**; there is NO "10.x LTS line". Release calendar (endoflife.date/mattermost): - **10.11** = previous ESR, security support **ends 2026-08-15** (~7 weeks) — migrated away 2026-06-19 - **11.7** = current ESR, supported through **2027-05-15** (~11 months); latest patch: **11.7.7** (2026-07-17) - **11.8.x** = innovation release (3-month lifecycle, EOL 2026-09-15) — do NOT target - **10.12** = innovation release, support **EXPIRED 2025-12-15** (do NOT target, despite abra listing 10.12.4) - Check the release lifecycle at https://endoflife.date/mattermost before each upgrade run. - Next ESR after 11.7 expected ~February 2027 (9-month cadence) The `release-11.7` Docker Hub floating tag always points to the latest 11.7.x patch. IMPORTANT: Do NOT use 11.7.0–11.7.2 — they have a schemeid migration bug in the `roles` table when upgrading from 10.11.17+; use 11.7.3 or later (current: 11.7.7). - **2026-07-24 re-check** (endoflife.date/api/mattermost.json; GitHub releases): **11.7.7** released 2026-07-17 is the newest 11.7.x ESR patch — bumped PR #2 `11.7.6 → 11.7.7` (ESR security patch, "Low to High severity security fixes", no migrations/breaking changes), `!testme` GREEN (drone run #1143). 11.7 ESR supported through 2027-05-15; 10.11 ESR security support ENDS 2026-08-15 (~3 weeks) — migrate away. 11.8.4 (innovation, EOL 2026-09-15) and 11.9.x remain innovation releases, NOT ESR — do NOT target. - **2026-07-13 re-check** (endoflife.date updated 09 Jul 2026): 11.7.6 is still the latest 11.7.x ESR patch (no newer 11.7.x released since 25 Jun 2026). abra lists 11.9.0 as the highest upgrade, but 11.9 is a brand-new innovation release NOT on endoflife.date yet — NOT ESR, do NOT target. 11.8 innovation latest is 11.8.3 (06 Jul 2026), EOL 15 Sep 2026. 10.11 ESR security support ends 15 Aug 2026 (~5 weeks). PR #2 re-verified GREEN with 11.7.6. - **2026-06-26 re-check** (endoflife.date/mattermost, data 2026-06-27): **11.7.6** released 2026-06-25 (Low–Medium security fixes, no breaking changes / no migrations) is the newest 11.7.x patch — REFRESH target from 11.7.5 → 11.7.6. 10.11 ESR security support ends 2026-08-15 (~7 weeks); 10.12 innovation ENDED 2025-12-15 (do NOT target, despite the survey listing 10.12.4); 11.8 innovation EOL 2026-09-15. GitHub release: https://github.com/mattermost/mattermost/releases/tag/v11.7.6 - **Survey-correction log:** the 2026-06-26 orchestrator survey claimed "10.x is LTS, target 10.12.4, 11.x is non-LTS". **That is incorrect** — Mattermost has no "10.x LTS line"; the LTS concept is ESR, the ESR line jumped 10.11 → 11.7 in May 2026, and 10.12 is an EXPIRED innovation release. Both the 2026-06-19 and 2026-06-22 runs correctly identified 11.7 ESR as the LTS target; this run re-confirms it. The survey's recommendation would have regressed the recipe onto an unsupported branch — DO NOT follow it. - postgres: stay on **15-alpine** for now. The upgrade to 16-alpine requires a major-version migration (pg_upgrade or dump/restore with operator involvement) because the stack runs with a persistent postgres_data volume. A 16 container against pg15 PGDATA crashes on startup. Major pg bump is a separate operator-guided step. - Backup format (as of PR #2 / upcoming 3.0.0+11.7.5 release): `pg_backup.sh` Docker config on the postgres service. Backup: `pg_dump | gzip → backup.sql`. Restore: terminate connections, FORCE-drop, recreate DB, reimport dump. `DROP DATABASE WITH (FORCE)` requires PostgreSQL 13+ — safe on postgres:15-alpine. The previous inline-label approach (no restore hook) was a defect: raw PGDATA restore without a reload was a silent no-op. Fixed in PR #2 (restore fix cherry-picked from PR #1 ci/pg-restore).