Mattermost: self-hosted team chat with channels and threads. Signed; SBOM and SLSA v1 provenance.
8.0K
readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2
Source, recipe and records
v12.0.2): https://github.com/mattermost/mattermost/tree/13ae6c4cf1a8e73c35a4f0c8816a505506c7acddA cosign-signed build of github.com/mattermost/mattermost v12.0.2 (AGPL-3.0; webapp and server templates/i18n/public are Apache-2.0), built clean-room from official upstream source, with the source changes listed below by ReadyStack.
Who: Technical teams, such as software, security and IT operations groups, that want team chat on infrastructure they control.
Why: Mattermost is a self-hosted collaboration platform with public and private channels, direct messages and threads on web, desktop and mobile, extended through webhooks, slash commands, bots and plugins.
Use case: A company's engineering and operations teams need chat that stays on their own servers. In Mattermost each service has a channel, monitoring alerts arrive through incoming webhooks, and during an incident the responders coordinate in one channel from a laptop or a phone.
About the upstream project, written from its own description: https://github.com/mattermost/mattermost · https://docs.mattermost.com/
Signature, user and attestations below were measured on the published digest sha256:d79d839282f68597e5dae4a4742c09d7d0539aec5ecda8270329cc6a1abbfd94 on 2026-11-12.
04daa92344a52dbc) on this release's index digest sha256:d79d839282f68597e5dae4a4742c09d7d0539aec5ecda8270329cc6a1abbfd94; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2.mattermost).This image follows the ReadyStack release-tag convention:
The current release is v12.0.2-CE-ubuntu24.04-r2 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2
# ✗ unsupported (do not pull)
docker pull readystack/mattermost:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
Single container running the mattermost server in the foreground, serving both the REST API and the compiled web client, against an EXTERNAL PostgreSQL 15 or later database (Mattermost 12 raised the minimum from 14; against an older server it logs Unsupported Postgres version at start and keeps running, which upstream does not support), which must be reachable by name from the container: a postgres container goes on a user-defined Docker network that the mattermost container joins too (on the default bridge network a container name such as your-db does not resolve and the server exits). This is Team Edition — the free, open-source edition — built from source with all Enterprise code removed rather than merely disabled.
Secrets go in an env file that only you can read, not on the command line, and passwords that only set up the first start come out of it after setup. Create mattermost.env with install -m 600 /dev/null mattermost.env, then write these lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.
# The PostgreSQL data source, password included; read at every start. Percent-encode the password's special characters (it is part of a URL).
MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:PASSWORD@your-db:5432/mattermost?sslmode=disable
docker run -d --name mattermost -p 8065:8065 --env-file ./mattermost.env -v mm-data:/mattermost/data -v mm-config:/mattermost/config readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2
mattermost.env holds the database data source, which the server reads at every start; write it without quotes (docker reads the line literally).
This software is licensed under the GNU Affero General Public License, and the releases below are built from a modified copy of its source. Each line names a release, what ReadyStack changed and where the diff is published. From 2026-10-27 a release's diff carries every upstream file its build changes, the dependency manifests and lockfiles included, so its complete corresponding source is the upstream tag with that diff applied; the diff of an earlier release carries the source edits its line names, and the dependency files that release's build changed are in its release archive (vendored/). If you let users interact with the server over a network, AGPL-3.0 section 13 asks you to offer them its source; for a release from 2026-10-27 on, a link to its diff and the upstream tag does that.
v12.0.2-CE-ubuntu24.04-r2 — the Mattermost Source Available tree server/enterprise/ (not AGPL) is removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it are deleted; server/go.mod builds against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v12.0.2/mattermost-v12.0.2-readystack.patchv12.0.2-CE-ubuntu24.04-r1 — the Mattermost Source Available tree server/enterprise/ (not AGPL) is removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it are deleted; server/go.mod builds against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v12.0.2/mattermost-v12.0.2-readystack.patchv12.0.1-CE-ubuntu24.04-r2 — the Mattermost Source Available tree server/enterprise/ (not AGPL) is removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it are deleted; server/go.mod builds against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v12.0.1/mattermost-v12.0.1-readystack.patchv12.0.1-CE-ubuntu24.04-r1 — the Mattermost Source Available tree server/enterprise/ (not AGPL) is removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it are deleted; server/go.mod builds against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v12.0.1/mattermost-v12.0.1-readystack.patchv12.0.0-CE-ubuntu24.04-r1 — the Mattermost Source Available tree server/enterprise/ (not AGPL) is removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it are deleted; server/go.mod builds against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v12.0.0/mattermost-v12.0.0-readystack.patchv11.11.1-CE-ubuntu24.04-r1 — the Mattermost Source Available tree server/enterprise/ (not AGPL) removed and replaced by an empty package enterprise stub; mmctl's compliance export command (server/cmd/mmctl/commands/compliance_export.go, which imports that tree) and two tests that import it deleted; server/go.mod built against the in-tree server/public module; full diff at https://readystack.dev/source/mattermost/v11.11.1/mattermost-v11.11.1-readystack.patch (published 2026-10-20, after this release; notice: https://readystack.dev/source/mattermost/v11.11.1/README.txt)The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/mattermost. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:b2630e7a7ebf59b969bc85fc8e2cffbef9c10537cb8679fbc0e19cb88ff196f3 on 2026-11-12.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:d79d83928…
Size
279.6 MB
Last updated
about 7 hours ago
docker pull readystack/mattermost:v12.0.2-CE-ubuntu24.04-r2