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
-
SSH into the server from your Mac Terminal:
ssh root@178.156.138.141 -
Stop Mattermost (safe to run even if it’s already stopped):
sudo systemctl stop mattermost
2. Backups
-
Application files
cd /opt sudo cp -ra mattermost "mattermost-back-$(date +'%F-%H-%M')" -
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
-
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" -
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
-
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/ -
Fix ownership:
sudo chown -R mattermost:mattermost /opt/mattermost -
If binding directly to ports 80/443:
sudo setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost
5. Restart and Verify
-
Start service:
sudo systemctl start mattermost sudo systemctl status mattermost --no-pager -
Check logs:
journalctl -u mattermost -n 100 --no-pager -
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.