Upgrading¶
Before upgrading¶
-
Read the changelog: Check CHANGELOG.md and UPGRADE.md for breaking changes between your current version and the target version.
-
Back up your database:
-
Note your current version:
Standard upgrade procedure¶
1. Pull new images¶
This downloads the latest images without stopping your running containers.
2. Check for migration requirements¶
Review UPGRADE.md for the specific version you're upgrading to. Some releases require manual steps before restarting.
3. Restart with new images¶
Docker Compose will recreate containers that have a new image and leave unchanged containers running.
4. Run database migrations¶
If this fails with "invalid USER value" (Docker user namespace remapping is active), use
docker exec -u rootinstead:
Always run migrations after upgrading - even if the changelog doesn't mention schema changes, it is safe to run.
5. Collect static files¶
6. Verify the upgrade¶
Rolling back¶
If something goes wrong, restore the database from the backup created before upgrading:
# Stop the backend and workers
docker compose stop backend celery
# Restore the database
docker compose exec -T postgresql psql -U meet meet < meet_backup_YYYYMMDD.sql
# Pin image tags to the previous version in compose.yml, then:
docker compose pull
docker compose up -d
Version pinning¶
By default, docker compose pull fetches :latest. To pin to a specific version, edit your compose.yml:
This is recommended for production to avoid unexpected upgrades.
Keeping LiveKit up to date¶
LiveKit server and Egress should be upgraded separately. Check the LiveKit changelog for compatibility notes with your Meet version.
Getting help with upgrades¶
If you encounter issues during an upgrade:
- Check GitHub Issues for known upgrade problems
- Ask in the Matrix community
- Open a new issue with your current version, target version, and error logs