Docs / Upgrading
Upgrading
Upgrade the Mattermore image or the calls plugin alone, what happens when Mattermost ships a new major version, and how to roll back to official Calls.
Which upgrade do you need
- You run the Mattermore server image (
ghcr.io/dennisklappe/mattermore, see self-host): the image already contains the Mattermore server and the Mattermore calls plugin, so onedocker compose pullanddocker compose up -dupgrades both. There is no plugin to upload, and the rest of this section does not apply to you. The 250 user limit is lifted by the server in the image. The plugin alone cannot lift it. - You run official Mattermost and added only the calls plugin (install): follow the plugin steps below. That setup keeps the 250 user limit.
Upgrading the Mattermore calls plugin
There is no data migration and no state to convert. Upgrading is a download, a checksum check, and an upload over the top of the running plugin.
curl -LO https://github.com/dennisklappe/mattermore/releases/latest/download/mattermore.tar.gz
curl -LO https://github.com/dennisklappe/mattermore/releases/latest/download/mattermore.tar.gz.sha256
sha256sum -c mattermore.tar.gz.sha256
Then in System Console › Plugins › Plugin Management, choose Upload Plugin and select the file. The server replaces the existing plugin in place and restarts it.
Notes:
- Verify the checksum before you upload, every time. It is the only integrity check you get on an unsigned bundle. See Configuration for why that matters.
- The plugin restarts, which drops any call in progress. Upgrade outside working hours if that is a problem.
- Your plugin settings are keyed to the plugin id, which does not change, so
MaxCallParticipantsand the rest survive the upgrade untouched. MM_CALLS_GROUP_CALLS_ALLOWEDis a server variable, so a plugin upgrade does not affect it.
If the upload is rejected, signature verification is on. That is a configuration question, not an upgrade question, and it is covered in Configuration.
Version numbers
Mattermore versions are 1000.<upstream>. Upstream v1.12.5 is released as
Mattermore 1000.12.5.
The 1000. prefix is deliberate. Mattermost ships Calls as a prepackaged
plugin, and on startup the server reinstalls its prepackaged copy over an
installed plugin only when the prepackaged version is strictly higher. That
check is shouldPersistTransitionallyPrepackagedPlugin in
server/channels/app/plugin.go.
Versioning above anything upstream will realistically ship means the comparison never favours the prepackaged copy, so a server upgrade cannot silently revert you to official Calls. Read the second part of the version as the upstream release Mattermore is built from.
Upgrading the Mattermost server underneath
Upgrade the server the way you normally would. Mattermore needs no special handling:
docker compose pull
docker compose up -d
Mattermore survives it for the reason above: the incoming prepackaged Calls plugin has a lower version number, so the server leaves the installed plugin alone.
Check these four things afterwards:
-
The plugin is still enabled. System Console › Plugins › Plugin Management. A plugin can be disabled by a failed startup.
-
It still reports as Mattermore, not official Calls. See the next section.
-
The environment variable survived. Package upgrades and rebuilt containers are where this gets lost:
docker compose exec mattermost env | grep MM_CALLS -
A three-person call still works. Two participants work on stock Mattermost, so a two-person test proves nothing.
If a major Mattermost release changes the plugin API, an older Mattermore build can fail to start against a much newer server. Check the releases page for a build tracking a newer upstream version before you upgrade a long-untouched server.
New Mattermost versions and the Mattermore image
Each Mattermore release is built from one exact Mattermost server version and
one exact Calls version, pinned in
upstream.env.
The image never moves to a new Mattermost major by itself: you stay on the
version you pulled until a Mattermore release says otherwise.
New upstream versions are picked up like this:
- A daily check watches Mattermost and Calls for new stable releases, tries every Mattermore patch against the new tag, and opens an issue saying whether they still apply.
- Security and patch releases within the same major are usually a version bump and a rebuild.
- A new major release can move the code a patch depends on, so it needs the patches rebased by hand before a Mattermore build exists. Expect a delay after the upstream release, not a same-day build.
The check is a notification, not a guarantee: Mattermore is maintained by one person, and there is no support contract or release deadline. If you depend on it, subscribe to the releases page and do not move your server to a new Mattermost major with the official image.
You can always go back: the database is the standard Mattermost schema, so switching to the official Team Edition image on the same version is possible, with the 250 user limit applying again.
Checking which build is installed
Go to System Console › Plugins › Calls. The plugin reports itself as Calls (Mattermore). Official Calls reports as Calls.
The version shown next to it tells you the rest: a 1000. prefix is
Mattermore, anything else is upstream.
If it says Calls without the suffix, you are running official Calls, group
calls will be limited to two participants regardless of your environment
variable, and something reinstalled the prepackaged plugin. Upload the
Mattermore bundle again, and consider setting
PluginSettings.AutomaticPrepackagedPlugins to false as described in
Configuration.
Rolling back to official Calls
Nothing is one-way. To go back:
- In System Console › Plugins › Plugin Management, remove the Calls plugin.
- Restart Mattermost. The server reinstalls its prepackaged official Calls plugin, because there is no longer a higher-versioned plugin in place.
- Remove
MM_CALLS_GROUP_CALLS_ALLOWEDfrom the server environment. It has no effect without a plugin that honours it, but leaving stale configuration behind helps nobody. - If you set
AutomaticPrepackagedPlugins: false, set it back totrue, or the prepackaged plugin will not be installed in step 2. - If you set
RequirePluginSignature: falseonly for Mattermore, turn it back on.
Calls made through Mattermore leave no records that official Calls cannot read. Both use the same plugin id and the same storage, so channel and call history is unaffected by the swap in either direction.
Related pages
- Configuration for the settings referenced here.
- Install guide for a first-time installation.
- Troubleshooting if calls break after an upgrade.
- Licensing and legality for the licence position.
Know when to upgrade
Mattermore follows upstream Mattermost. One mail when a release fixes something that matters, nothing else.