Mattermost upgrade guide (self-hosted, tarball install)

This procedure upgrades a Mattermost server installed in /opt/mattermost on 178.156.138.141.
Adjust paths, users, and version numbers (MM_VER) if your setup differs.


1. Preparation

  1. SSH into the server from your Mac Terminal:

     
    ssh root@178.156.138.141
  2. Stop Mattermost (safe to run even if it’s already stopped):

     
    sudo systemctl stop mattermost

2. Backups

  1. Application files

     
    cd /opt sudo cp -ra mattermost "mattermost-back-$(date +'%F-%H-%M')"
  2. Database

    • PostgreSQL

       
      sudo -u postgres pg_dump -Fc mattermost | sudo tee "/opt/db-backup-$(date +'%F-%H-%M').dump" > /dev/null
    • MySQL/MariaDB

       
      mysqldump -u root -p --routines --single-transaction mattermost | sudo tee "/opt/db-backup-$(date +'%F-%H-%M').sql" > /dev/null

    Confirm backup:

     
    ls -lh /opt/db-backup-*

3. Download and Verify New Release

  1. Set the version (check Mattermost downloads for the latest or ESR):

     
    MM_VER=10.11.1 cd /tmp curl -LO "https://releases.mattermost.com/${MM_VER}/mattermost-${MM_VER}-linux-amd64.tar.gz" curl -LO "https://releases.mattermost.com/${MM_VER}/mattermost-${MM_VER}-linux-amd64.tar.gz.sha256" sha256sum -c "mattermost-${MM_VER}-linux-amd64.tar.gz.sha256"
  2. Extract:

     
    rm -rf /tmp/mattermost-upgrade mkdir -p /tmp/mattermost-upgrade tar -xzf "mattermost-${MM_VER}-linux-amd64.tar.gz" -C /tmp/mattermost-upgrade

4. Deploy Upgrade

  1. Sync new binaries, preserving configs, data, plugins, logs:

     
    sudo rsync -a \ --exclude='config' \ --exclude='data' \ --exclude='plugins' \ --exclude='logs' \ /tmp/mattermost-upgrade/mattermost/ /opt/mattermost/
  2. Fix ownership:

     
    sudo chown -R mattermost:mattermost /opt/mattermost
  3. If binding directly to ports 80/443:

     
    sudo setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost

5. Restart and Verify

  1. Start service:

     
    sudo systemctl start mattermost sudo systemctl status mattermost --no-pager
  2. Check logs:

     
    journalctl -u mattermost -n 100 --no-pager
  3. Confirm via browser: log in to https://chat.blfo.co and check System Console → About Mattermost for the new version.


6. Cleanup

rm -rf /tmp/mattermost-upgrade
rm -f /tmp/mattermost-*.tar.gz*

7. Rollback (If Needed)

  • Application files

     
    sudo systemctl stop mattermost sudo rsync -a /opt/mattermost-back-YYYY-MM-DD-HH-MM/ /opt/mattermost/ sudo systemctl start mattermost
  • Database (Postgres example)

     
    sudo -u postgres dropdb --if-exists mattermost sudo -u postgres createdb mattermost sudo -u postgres pg_restore -Fc -d mattermost /opt/db-backup-YYYY-MM-DD-HH-MM.dump

✅ That’s the complete, reusable process for upgrading Mattermost on 178.156.138.141.


Was this article helpful?