* ci: standardize checkout action inputs across workflows (#36876) * ci: standardize checkout action inputs across workflows * ci: checkout in claude pipeline use default * ci: make setup-go-work a Makefile prereq, remove explicit CI steps (#37268) * ci: auto-build missing buildenv images for in-flight Go version bumps (#37286) * ci: replace volatile e2e-platform-pkgs cache with shared webapp-setup (#37182) * ci: replace volatile e2e-platform-pkgs cache with shared webapp-setup * ci: replace volatile e2e-platform-pkgs cache in cypress template v2 * ci: tighten prep-deps comments * fix: typo in webapp-setup comment * chore(ci): warm node and npm caches daily; make CI jobs restore read-only (#37393) * chore(ci): warm node and npm caches daily; make CI jobs restore read-only Add daily scheduled workflows on master that warm two independent caches, each in its own workflow mirroring its consumers: - webapp-ci-cache-warm.yml warms the webapp node_modules cache (keyed on webapp/package-lock.json) - e2e-ci-cache-warm.yml warms the E2E ~/.npm registry cache (keyed on the cypress/playwright/api lockfiles) Webapp CI and the E2E/api CI jobs now restore these caches read-only instead of writing them, so the daily jobs keep the caches warm. The E2E ~/.npm restore is factored into a reusable restore-e2e-npm-cache composite action, and webapp-setup gains a read-only mode for the node_modules cache. * chore(ci): guard cache-warm workflows with a concurrency group * chore(ci): drop unused node-cache-dependency-path output * chore(ci): reuse webapp-setup for node_modules in e2e-tests-check * Move e2e npm registry cache out of the node-cache- namespace (#37427) The e2e npm registry cache keyed on node-cache-<os>-<arch>-npm-e2e-, sharing the node-cache- prefix that actions/setup-node generates automatically for its built-in npm cache (node-cache-<os>-<arch>-npm-). Because the arch segment differs only by case (setup-node uses Node's process.arch 'x64'; this action uses runner.arch 'X64') and GitHub matches restore-key prefixes case-insensitively, the two buckets share a common prefix. A future broad restore-key such as node-cache-<os>-<arch>-npm- could then cross-restore one bucket's ~/.npm into the other. Rename the key to e2e-npm-registry-<os>-<arch>-, giving it a distinct namespace that is not a prefix of node-cache- in either direction and matches the repo's content-descriptive e2e cache keys (e2e-cypress-deps-, e2e-playwright-deps-, e2e-platform-pkgs-). Existing entries orphan and age out; the daily warm job repopulates under the new key on next run. * Adopt per-target .PHONY directives in server Makefiles (#37447) * Converge generated-file CI checks on a single make generated target The server-ci.yml workflow had many separate "run a make target, then fail on any git diff" jobs, but make generated only covered a few of them, so the target and CI drifted apart. Expand make generated to regenerate every committed asset, adding gen-serialized, migrations-extract, build-templates, mmctl-docs, and modules-tidy, and collapse the per-asset check jobs into a single check-generated job. Split the backport migration guard into its own check-backport-migrations job and make target, renaming the script to match. * make generated * git status --porcelain * simplify permissions block given defaults --------- Co-authored-by: Nuno Simões <nuno.simoes@mattermost.com>
Mattermost is an open core, self-hosted collaboration platform that offers chat, workflow automation, voice calling, screen sharing, and AI integration. This repo is the primary source for core development on the Mattermost platform; it's written in Go and React, runs as a single Linux binary, and relies on PostgreSQL. A new compiled version is released under an MIT license every month on the 16th.
Deploy Mattermost on-premises, or try it for free in the cloud.
Learn more about the following use cases with Mattermost:
Other useful resources:
- Download and Install Mattermost - Install, setup, and configure your own Mattermost instance.
- Product documentation - Learn how to run a Mattermost instance and take advantage of all the features.
- Developer documentation - Contribute code to Mattermost or build an integration via APIs, Webhooks, slash commands, Apps, and plugins.
Table of contents
- Install Mattermost
- Native mobile and desktop apps
- Get security bulletins
- Get involved
- Learn more
- License
- Get the latest news
- Contributing
Install Mattermost
- Download and Install Mattermost Self-Hosted - Deploy a Mattermost Self-hosted instance in minutes via Docker, Ubuntu, or tar.
- Get started in the cloud to try Mattermost today.
- Developer machine setup - Follow this guide if you want to write code for Mattermost.
Other install guides:
- Deploy Mattermost on Docker
- Mattermost Omnibus
- Install Mattermost from Tar
- Ubuntu 20.04 LTS
- Kubernetes
- Helm
- Debian Buster
- RHEL 8
- More server install guides
Native mobile and desktop apps
In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, macOS, and Linux.
Get security bulletins
Receive notifications of critical security updates. The sophistication of online attackers is perpetually increasing. If you're deploying Mattermost it's highly recommended you subscribe to the Mattermost Security Bulletin mailing list for updates on critical security releases.
Get involved
- Contribute to Mattermost
- Find "Help Wanted" projects
- Join Developer Discussion on a Mattermost server for contributors
- Get Help With Mattermost
Learn more
- API options - webhooks, slash commands, drivers, and web service
- See who's using Mattermost
- Browse over 700 Mattermost integrations
License
See the LICENSE file for license rights and limitations.
Get the latest news
- X - Follow Mattermost on X, formerly Twitter.
- Blog - Get the latest updates from the Mattermost blog.
- Facebook - Follow Mattermost on Facebook.
- LinkedIn - Follow Mattermost on LinkedIn.
- Email - Subscribe to our newsletter (1 or 2 per month).
- Mattermost - Join the ~contributors channel on the Mattermost Community Server.
- IRC - Join the #matterbridge channel on Freenode (thanks to matterircd).
- YouTube - Subscribe to Mattermost.
Contributing
Please see CONTRIBUTING.md. Join the Mattermost Contributors server to join community discussions about contributions, development, and more.




