Skip to content
Jitsi.help

How to upgrade a Docker Jitsi Meet server safely

Updated Tested on Jitsi Meet stable-11031By the Jitsi Help engineering team

Short answer

Back up your .env and CONFIG folder, download docker-compose.yml and any overlays (jibri.yml, jigasi.yml) from the new stable release, set JITSI_IMAGE_VERSION to the same tag, diff the new env.example against your .env for new settings, then docker compose pull, down and up -d. Test with three people. Roll back by restoring the old files and tag.

Jitsi releases often, and the Docker images make upgrading easy to do and easy to get wrong. The rule that prevents most breakage: the compose files and the image tags must come from the same release.

1. Read the release notes

Check the docker-jitsi-meet release notes for the target stable-NNNNN tag. Look for renamed or removed variables and changed defaults.

2. Back up

cd /opt/jitsi-meet
tar czf ~/jitsi-backup-$(date +%F).tgz .env docker-compose.yml *.yml config/

On a cloud server, a disk snapshot is even better.

3. Download the new release’s files

NEW=stable-NNNNN   # the release you are moving to
BASE=https://raw.githubusercontent.com/jitsi/docker-jitsi-meet/$NEW
curl -fsSLO $BASE/docker-compose.yml
curl -fsSL -o env.example.new $BASE/env.example
# Only if you use them:
curl -fsSLO $BASE/jibri.yml
curl -fsSLO $BASE/jigasi.yml

4. Compare settings

diff <(grep -oE '^#?[A-Z_]+=' env.example.new | tr -d '#' | sort -u) \
     <(grep -oE '^[A-Z_]+=' .env | sort -u)

Lines only in the new example are new settings; decide whether you need them. Then pin the images:

JITSI_IMAGE_VERSION=stable-NNNNN

5. Pull and restart

docker compose pull
docker compose down
docker compose up -d
docker compose ps

Add -f jibri.yml and your other overlays to every command if you use them.

6. Test

  • Three people in one room, cameras and screen share.
  • A host login, if you use authentication or JWT.
  • A short recording and a transcript, if enabled.
  • Branding still applied (hard-refresh the browser).

7. Roll back if needed

docker compose down
tar xzf ~/jitsi-backup-YYYY-MM-DD.tgz
docker compose up -d

Because the old compose file still names the old tag, this returns you exactly to where you were.

Staying current without the work

Our platform pins every server to a tested release (currently stable-11031) and moves to newer ones only after they pass our deployment tests. If you run your own servers, our support plans include upgrades done and verified for you.

Frequently asked questions

How often should I upgrade Jitsi?

Apply security fixes promptly and otherwise upgrade every few months to a recent stable release. Skipping many releases makes each upgrade riskier, because more settings change at once.

Will upgrading lose my branding or users?

Not if branding lives in the custom-*.js files and users live in Prosody's data under the CONFIG folder. Both are kept. Anything edited directly in generated files like config.js is lost, which is why those edits belong in the custom files.

Can I upgrade only one container?

Avoid it. The components are released and tested together. Run every service from the same stable tag, and download the compose files from that same tag.

Stuck, or would rather not do this by hand?

Deploy it in one click

A private Jitsi server in your own AWS account with SSL, your domain and optional recording, transcription and JWT. Free 15 minute trial.

Start free trial

Talk to a Jitsi engineer

Setup, fixes, branding, recording, scaling. Tell us what is happening and we reply with a plan and a quote.

Get expert help

Related