Collaboration & Productivity

How to Set Up Jitsi in Mattermost: Complete Setup Guide

J
James Eriksson
··11 min read
Complete guide to integrating Jitsi Meet with Mattermost. Covers plugin setup, meet.jit.si vs self-hosted, JWT auth, and troubleshooting for team video calls.
TL;DR
  • The Jitsi plugin launches video meetings from inside Mattermost with a /jitsi command
  • Meet.jit.si (public, free, 5-min embedded limit) vs self-hosted (full control, 30-90 min setup)
  • Setup takes 10 minutes: download plugin, upload to Mattermost, enable, configure Jitsi URL
  • Self-hosted Jitsi scales beyond 50 participants; useful for long calls or privacy-sensitive work
  • Mobile users see meeting links in chat but cannot join via plugin buttons

The Jitsi plugin brings video calling directly into Mattermost. You type /jitsi to start a meeting, and teammates see an embedded video window or can join in a new tab. This guide walks you through setup, configuration, and the decision between Jitsi and Mattermost's native Calls plugin.

What is Jitsi Meet and Why Use It in Mattermost?

Jitsi Meet is an open-source video conferencing platform with 30.2K GitHub stars. The Mattermost plugin lets you launch meetings without leaving your chat. Unlike Mattermost's native Calls plugin, which is built in, Jitsi requires separate deployment or connection to meet.jit.si (the free public service).

You want Jitsi when you need multi-participant video calls beyond what's built in. Mattermost Calls works fine for small teams, but it limits you to roughly 50 participants before performance degrades. Jitsi scales further. You also want Jitsi if you're running everything self-hosted and need full control over where video data flows.

The plugin is community-supported (maintained by @mickmister on GitHub), not by Mattermost itself. It's marked Beta, so expect occasional rough edges. But it's stable enough for production use in thousands of small and medium teams.

Jitsi video integrates three ways: as a floating window inside Mattermost (experimental), as a link in chat that opens in a new browser tab, or as a button in the channel header. Mobile users won't see the button--they'll only see posted links. Desktop and web work fully.

Meet.jit.si vs Self-Hosted Jitsi: Which Should You Choose?

Meet.jit.si is the public Jitsi instance anyone can use. Zero setup required. You type /jitsi and a meeting URL appears. But meet.jit.si comes with limits.

Embedded meetings cut off after 5 minutes on meet.jit.si. If you want a video window inside Mattermost, you hit that wall fast. Full meetings last up to 95 minutes. Participants are capped around 50 before the service starts asking for sign-in. Data passes through Jitsi's infrastructure, which is fine for non-sensitive calls but a deal-breaker if you handle customer data or operate under strict data residency rules.

Use meet.jit.si if: you're testing the plugin, your meetings are under 5 minutes, you have fewer than 20 regular participants, and data privacy is not a blocker. Setup takes five minutes.

Self-hosted Jitsi means you run Jitsi Meet on your own server or cloud instance. You point the Mattermost plugin at your Jitsi server URL instead of meet.jit.si. Setup is more work--typically 30 to 90 minutes depending on your infrastructure knowledge--but you get no time limits, no participant caps, full control, and meetings stay within your network.

Use self-hosted Jitsi if: you need calls longer than 95 minutes, you have over 50 regular participants, data must stay in your region or data center, or you want to brand the meeting interface with your logo. Running Jitsi costs server resources: roughly 2-4 GB RAM and 1-2 CPU cores per 50 participants at once. A small $10-15/month VPS won't cut it if you run 10 simultaneous calls.

If you already host Mattermost on Opsily, we handle Jitsi setup for you. No separate server to manage.

Prerequisites and What You Need

Before you start, confirm these:

Mattermost version: The plugin requires Mattermost 5.26 or later. Check yours in System Console > About. If you run an older version, upgrade first.

Admin access: You need System Admin rights to upload and configure the plugin.

Jitsi URL: Decide now: meet.jit.si (public, no setup), or a self-hosted server URL. If self-hosted, you need to deploy Jitsi first. This guide assumes you have one or the other ready.

Network access: Mattermost must reach your Jitsi server over HTTPS on port 443. If self-hosted, confirm firewall rules allow this.

Optionally, JWT secrets: For security, you can lock meetings so only Mattermost users can join. This requires App ID, App Secret, and shared JWT token. We'll cover JWT configuration in step 4.

Step-by-Step Setup Guide

Step 1: Download the Plugin

Go to the mattermost-community/mattermost-plugin-jitsi GitHub releases page. Download the.tar.gz file for your server OS (Linux, macOS, or Windows). The latest stable release is what you want. Do not use the pre-release versions unless you're testing.

Step 2: Upload to System Console

Log in to Mattermost as System Admin. Go to System Console > Plugins > Plugin Management > Upload Plugin. Choose the.tar.gz file you downloaded and click Upload. Wait for the upload to finish. You'll see a success message and the plugin appears in the Plugin Management list.

Step 3: Enable the Plugin

Find Jitsi in the plugin list. Click the toggle to enable it. The status changes to "active." Mattermost restarts the plugin--this takes 2-5 seconds. You may see a brief reconnect.

Step 4: Configure the Plugin

Go to System Console > Plugins > Jitsi. You'll see a settings form. Fill in:

  • Jitsi URL: Enter https://meet.jit.si if using the public service, or enter your self-hosted Jitsi server URL. Leave off any trailing slash.
  • Embed Jitsi in Mattermost: This is experimental. Check it if you want video inside Mattermost (meets the 5-min time limit on meet.jit.si). Leave unchecked if you prefer new-tab only.
  • Jitsi URL Scheme: Use https protocol. Do not change unless your Jitsi server runs on a non-standard port.

Save and close. Mattermost applies the settings immediately.

Step 5: Test It

Open any Mattermost channel. Type /jitsi in the message box. A meeting URL appears with a button: "Join Jitsi Meeting." Click it. You'll be taken to Jitsi (in a new tab or embedded, depending on your setting). Create a room name (Jitsi generates a random one) and join. You're now in a video call.

Invite a teammate to join the same channel and type /jitsi. They'll see the same meeting link and can click to join the call you just started.

Configuring Your Jitsi Settings

Once basic setup works, explore these advanced options in System Console > Plugins > Jitsi:

Meeting Names: Choose how Jitsi generates the room name (and thus the URL). Options are Random Words (default; generates readable names like "happy-cat-dog"), UUID (long random strings), Team/Channel Name (uses your Mattermost team and channel slugs), or User Chooses Every Time (users type the room name). For teams, User Chooses offers most control; Random Words is friendliest.

JWT Authentication: If you want only Mattermost users to join your Jitsi meetings, enable JWT. You'll need to configure Jitsi with an App ID and App Secret, then paste those values here. JWT adds a layer of security: an outsider cannot join a meeting URL without a valid JWT token. Setup is 10 minutes extra if you self-host Jitsi.

Link Expiry: Set how long a meeting URL stays valid (if using JWT). Default is no expiry. For security-sensitive calls, set 30 or 60 minutes.

Participant Display: By default, Jitsi shows all participants' names. Disable this if you want privacy.

None of these are required. The basic setup (Jitsi URL) is enough to start calling.

Testing and Troubleshooting

The /jitsi command doesn't appear: Reload your Mattermost tab. If it still doesn't appear, verify the plugin is enabled in System Console > Plugin Management.

"Connection refused" or "Cannot reach Jitsi server": Check your Jitsi URL in System Console > Jitsi settings. Typos are common (e.g., http vs https, or missing the subdomain). Test the URL in your browser: open it in a new tab manually. If it loads, the issue is likely a firewall rule or DNS. If it doesn't load, your Jitsi server is down or misconfigured.

Embedded video won't load or cuts off after 5 minutes: You're on meet.jit.si. Embedded calls are limited to 5 minutes on the public service. Either switch to self-hosted Jitsi, or turn off embedding in System Console and use new-tab meetings instead.

Mobile app doesn't show the Jitsi button: Mobile clients don't render plugin UI. Users must copy and open the meeting link in a browser. This is a known limitation.

JWT tokens rejected: Confirm your App ID and App Secret are correct. If you self-host Jitsi, verify you've configured Jitsi itself (not just Mattermost) with the same token secrets. Check Jitsi logs for token errors.

For detailed troubleshooting, check the plugin GitHub issues. Search your error message; someone usually has hit it.

When to Use Mattermost Calls Instead

Mattermost's native Calls plugin is built in and requires zero setup. If you just need quick audio or video calls for small groups--up to 20 or 30 people--Calls is simpler and faster. You type /call and teammates join with one click.

Use Calls for: quick huddles, demos, customer onboarding calls (under 20 participants), and teams that are fine with shorter session limits. Calls supports screen sharing and recording.

Use Jitsi for: large meetings, long sessions, full control over video infrastructure, or when you need to scale beyond Calls' participant limits.

For a detailed comparison, see Mattermost Video Call Guide: Setup, Plugins, RTCD. That post covers both options and helps you pick.

Security and Privacy Considerations

Where does video data go? On meet.jit.si, Jitsi's servers see your video. This is fine for casual team calls but a problem if you handle PII, health data, or client information. Self-hosted Jitsi keeps video entirely within your network--no third parties see it.

Encryption: Jitsi supports end-to-end encryption (E2EE) for audio and video. When enabled, only participants in the meeting can decrypt the stream; even Jitsi's servers see only encrypted data. E2EE is available on both meet.jit.si and self-hosted. Turning it on adds CPU load but is worth it for sensitive calls.

Embedded vs new-tab: Embedded video (inside Mattermost) is visible only to logged-in Mattermost users in that channel. New-tab video is a direct Jitsi URL; anyone with the link can join. Embedded is more private by default.

Mobile security: Mobile users receive meeting links via chat. If your Mattermost is password-protected, the link alone isn't enough--they still need Mattermost credentials to see the message. But the Jitsi URL itself is not secret; anyone forwarded the link can join.

Jitsi data practices: Visit jitsi.org for Jitsi's privacy policy. The public meet.jit.si service doesn't record by default, but logs IP addresses. For strict GDPR or HIPAA compliance, self-host Jitsi or contact Jitsi for a licensed on-premises option.

Frequently Asked Questions

How do I set up JWT authentication to lock meetings?

Enable JWT in System Console > Jitsi Settings. Configure Jitsi itself with an App ID and App Secret (this is on the Jitsi side). Copy those values into Mattermost. Now, only users who generate a meeting link from within Mattermost get a signed JWT token. Outside visitors with just the URL cannot join.

Can I customize the meeting room name instead of random?

Yes. In Jitsi settings, change "Meeting Name Format" to "User Chooses Every Time." Now when someone types /jitsi, they'll be prompted to enter a room name. Or choose "Team/Channel Name" to auto-use your Mattermost team and channel slugs.

What if I have 100 people in a meeting?

Meet.jit.si caps around 50 before requiring sign-in and can degrade past 100. Self-hosted Jitsi scales further--but you need strong hardware. Plan for 2-4 GB RAM and 1-2 CPU cores per 50 concurrent participants. Larger deployments use a Jitsi cluster (multiple servers) or a managed Jitsi service.

Does the plugin work on Mattermost mobile?

No plugin UI on mobile. Mobile users see the meeting link in chat and can tap it to join via browser. Desktop and web see the /jitsi command and button in the channel header.

Can I record Jitsi meetings?

Jibri is Jitsi's recording service. You need to run Jibri separately (self-hosted setup). Enable it in your Jitsi config, and users get a "Record" button in the meeting. Recordings are saved locally on your Jibri instance.

What are the CPU and bandwidth costs of Jitsi?

Self-hosted Jitsi is CPU-intensive. A single call costs roughly 5-10% of a 2-core CPU and 2-3 Mbps per participant (video quality dependent). Ten concurrent calls eat most of a 4-core server. Use a CDN for scalability, or choose a managed Jitsi host.

Is Jitsi free?

Yes. Jitsi is open-source. Meet.jit.si is free for anyone. If you self-host, you pay only for your server. No licensing fees.

The Bottom Line

Jitsi in Mattermost is a mature, open-source option for team video calls. If you use meet.jit.si, you're up and running in 10 minutes. If you self-host, expect 1-2 hours for setup the first time.

Pick meet.jit.si if: calls are short, participants are few, and data privacy isn't critical. Pick self-hosted if: calls are long, participants are many, or video must stay on your network.

If you're already running managed Mattermost hosting with Opsily, ask us about adding Jitsi--we handle setup and scaling for you.

Skip the setup yourself
Opsily manages Jitsi and Mattermost together, so you focus on calls, not infrastructure.
Get Started Free

Ready to self-host your own apps?

One server. Multiple apps. No per-app fees.

Get started →