Jitsi on Docker vs Debian packages

The Debian and Ubuntu package install is the simpler path for one server, while the official rootless Docker setup suits teams that want separate containers, scripted upgrades and a clearer scaling layout. This page compares both on upgrades, scaling, authentication and operating effort.

On this page

Jitsi on Docker vs Debian packages: when each install fits

Choose the Debian or Ubuntu package install when you run Jitsi Meet on a single host and your team already administers Linux servers with OpenJDK 17, systemd and standard package tooling. Choose the official rootless Docker setup when your organization runs a container platform, wants to upgrade each component on its own schedule, and expects to add Jitsi Videobridge (JVB) instances as concurrency grows. Both are documented options from the Jitsi project, so the decision follows from your team's skills and hosting, not from a feature gap. The Debian and Ubuntu quick start supports Debian 12 (Bookworm) or newer and Ubuntu 24.04 or newer, so confirm that your base image is on that list before you plan the build.

The Docker setup splits Jitsi into separate web, prosody, jicofo, jvb, jigasi and jibri containers, and since stable-11146 those containers run rootless with read-only filesystems. That split suits teams whose platform already handles image registries, container scanning, restart policies and secrets. It also lets you pull a new JVB image without touching Prosody or the web tier. Recording (Jibri) and SIP dial-in (Jigasi) are optional in both paths, so only enable them if you need them. Confirm with your platform team whether rootless containers, read-only root filesystems and the .env based configuration match your hardening standard before you commit.

The package install is simpler to reason about on one machine, but it puts Prosody, Jicofo, JVB and the web server on the same host and upgrades them through the operating system's package cycle. Whichever path you pick, the Jitsi handbook says HTTPS with a proper domain certificate is necessary for working audio and video, and it warns that self-signed certificates cause problems, especially on mobile clients. Plan your domain, certificate renewal and the UDP port range before you compare install effort, because those choices drive more of the work than the install method does. Ask your implementation partner to document the upgrade path for each option in writing as part of the scope.

Debian packages and Docker side by side

This table sets the documented Debian and Ubuntu package install against the official rootless Docker setup for Jitsi Meet. Each row states whether the point is a documented fact or something to confirm with the official docs before you commit to a method.

FactorDebian and Ubuntu packagesOfficial Docker setup
Supported platformsDocumented fact: Debian 12 (Bookworm) or newer, or Ubuntu 24.04 or newer, per the Jitsi Debian/Ubuntu quick start.Documented fact: a Docker host runs the containers. Confirm the supported host OS and Docker versions in the Jitsi Docker guide.
OpenJDK 17Documented fact: the package install requires OpenJDK 17 on the host.Not required on the host. Java runs inside the containers, so confirm the image contents in the Docker guide.
Component layoutDocumented fact: a web server (nginx or Apache), Prosody, Jicofo and Jitsi Videobridge run as host services on the same machine by default.Documented fact: separate web, prosody, jicofo, jvb, jigasi and jibri containers. Jibri and Jigasi are optional.
Container isolationNot applicable. Services run as host packages, so isolation depends on your host hardening.Documented fact: since stable-11146 the containers run rootless with read-only filesystems. Confirm how this applies to your chosen images.
Authentication optionsDocumented fact: the handbook covers JWT tokens and the deprecated secure domain method. Confirm which options your install version exposes.Documented fact: internal XMPP accounts, JWT tokens, LDAP, Matrix user verification and a hybrid Matrix plus JWT mode, set in the .env file.
Scaling modelDocumented fact: the scalable setup guide adds videobridges horizontally and the default install is already configured for this. Confirm the steps for multi-host packages with the scalable guide.Confirm with the Docker guide how additional JVB containers join a multi-host layout and how the .env file is shared across hosts.
Upgrade pathConfirm with the quick start how package upgrades are applied and how stable build tags such as stable/jitsi-meet_11248 map to installed packages.Confirm how image tags map to stable releases and how containers are replaced during upgrades. Test changes in a staging copy first.
Skills neededLinux administration, Java runtime basics, nginx or Apache, Prosody and TLS certificate management with a proper domain certificate.Docker and Compose operation, container networking, .env configuration and TLS management. Confirm the container and host skills your team already has.

How the components sit on each install

A Jitsi Meet deployment is a set of cooperating services rather than a single application. The web server (nginx or Apache) serves the browser app. Prosody is the XMPP server that carries signalling between clients and the conference components. Jicofo, the conference focus, creates and manages conferences and assigns participants to a bridge. Jitsi Videobridge (JVB) is the media router that carries the audio and video streams. Two optional parts sit beside them: Jibri records or streams meetings, and Jigasi bridges SIP dial-in callers into a conference.

  • Web server: serves the Jitsi Meet interface and must hold a valid domain certificate, since the handbook says self-signed certificates cause problems, especially on mobile clients.
  • Prosody: handles signalling and the XMPP accounts or token trust used for room access.
  • Jicofo and JVB: Jicofo places participants on bridges, and JVB carries the media, so bridges are the component you add as load grows.
  • Jibri and Jigasi: optional, and each adds its own sizing, network and licensing questions to plan before you enable it.

Before comparing installs, confirm which of these parts you need on day one and which you will add later.

How upgrades and bridge scaling differ between the two installs

The upgrade path is the first real difference between the two installs, so decide it before you pick one. Both routes can reach a stable release such as stable/jitsi-meet_11248, published September 14, 2026, but they move different things. On the Debian or Ubuntu install, the web app, Prosody, Jicofo and Jitsi Videobridge are packages on the same host, so an apt upgrade can replace several components in one transaction on a shared machine. On the official Docker setup, the web, prosody, jicofo, jvb, jigasi and jibri containers are separate images. You pull new images and recreate containers, which lets you move one service at a time, but it also means the image tags in your .env and compose configuration must match each other. Confirm with the Jitsi handbook which versions of each image belong together before you change any of them.

Rollback is where the two models diverge most. On packages, returning to the previous state usually means reinstalling earlier package versions and restoring configuration files, and a failed upgrade on a shared host can leave the web app and the signalling server at different versions. On containers, rollback is largely a matter of pointing the tags back and recreating the affected services, provided you have kept the previous images and your configuration is under version control. The risk in both models is changing several components at once, because a fault could come from the bridge, the focus component or the XMPP server, and you cannot isolate it. Upgrade one component, or one tightly coupled group, per change window, and record which version of each service was running before.

Adding videobridges follows the same architectural idea in both installs: the Jitsi scalable setup guide says bridges scale horizontally by adding more, and the default install is already configured for that. In practice, a new bridge on packages is a new host that must be told how to reach the central signalling server and focus component, with its own open UDP media ports and the same certificate handling as the rest. In the Docker model, a new jvb container runs on a host you choose, and the work is in the networking and environment settings that let it register with prosody and jicofo. Before any upgrade or scale-out, test a full meeting with multiple participants across at least two bridges, confirm audio and video through the TURN and TCP fallback paths, verify recording or dial-in if you use Jibri or Jigasi, and run the same test again after rollback.

Which authentication options each install supports

Which authentication methods does the Jitsi Docker install support?

The official Docker setup lists five authentication options: internal XMPP accounts, JWT tokens, LDAP, Matrix user verification, and a hybrid of Matrix plus JWT. You choose the mode in the .env file that sits next to the Docker Compose configuration, so the setting lives with the rest of your deployment config. Each option changes who can create rooms and how users sign in, so pick the method before you publish the domain. Check the Docker guide for your release because option names and supporting settings can change between releases.

How is Jitsi authentication configured in the Docker .env file?

In the Docker setup, authentication is set through the .env file rather than by editing the Prosody or web container configuration by hand. The guide describes internal XMPP accounts, JWT, LDAP, Matrix and the hybrid Matrix plus JWT mode as values you select there, along with the settings each mode needs, such as directory details for LDAP or token parameters for JWT. Because the containers run rootless with read-only filesystems, changes should be made in the .env file and applied by recreating the containers, not by writing into the running containers. Keep the file under version control and record which mode each environment uses.

Is the Jitsi secure domain method still recommended for new installs?

No. The Jitsi handbook marks the secure domain method, which uses username and password to create rooms, as deprecated for new installations. Existing deployments that still run it should plan a move to token authentication, because the handbook steers new setups toward JWT. The secure domain guide remains in the handbook for reference and migration context. Before you finalize the design, confirm the current status in the handbook page for your release, and ask your integrator to document how existing rooms, users and client links will change during the switch.

Why does the Jitsi handbook recommend JWT with a separate guest domain?

The handbook recommends JWT token authentication for most deployments, and it pairs that with a separate anonymous domain for guests. JWT lets your own application or identity layer sign a token that tells Jitsi who the user is and what they may do, so authenticated hosts can start meetings while guests join without an account. Keeping guests on their own domain separates the two populations, which limits what an unauthenticated visitor can reach. The token authentication page in the handbook explains the claims and signing setup. Your team still owns the signing keys and the application code that issues tokens, so plan for key rotation and for where the token service runs.

Which Jitsi authentication options does the Debian or Ubuntu package install document?

The Debian and Ubuntu quick start is built for a single-host package install on Debian 12 or newer or Ubuntu 24.04 or newer, with OpenJDK 17 and the standard web, XMPP and media ports open. Confirm which authentication methods the quick start and the linked handbook pages document for your release before you commit to a design. Do not assume a Docker-only option, such as the hybrid Matrix plus JWT mode, is available on packages. Ask your integrator for a written list of the methods they will configure on the package install, and test each one against your real client platforms, including mobile clients, before go-live.

When does Matrix user verification or hybrid Matrix plus JWT make sense?

Matrix user verification fits organizations that already sign people in through a Matrix homeserver and want Jitsi rooms to follow the same identities. The hybrid mode combines Matrix verification with JWT, so a Matrix user can be recognized while your application still issues tokens for specific rooms or roles. Both options add a dependency on the Matrix side of your environment, which means another service to run, patch and monitor. Choose them only when Matrix is already part of your identity plan. If Matrix is not in place, internal accounts or JWT with a guest domain usually keep the moving parts smaller.

Is internal XMPP account authentication enough for a small team?

Internal XMPP accounts can work for a small, closed group where one administrator creates and removes users and the meeting service is not exposed to outside parties. The model is simple to run, but it means account lifecycle is managed in Jitsi itself, so offboarding and password policy need a documented manual process. Larger or regulated environments usually need a source of truth such as a directory or an identity platform, along with logging of who joined which room. Before you rely on internal accounts, confirm how your team will handle departures, password resets and audit questions.

What drives the cost of setting up Jitsi authentication?

The cost comes from design, configuration, integration and ongoing upkeep, not from a license fee, because Jitsi Meet is Apache-2.0 licensed. Design work covers which mode each audience needs and how guests are handled. Configuration covers the .env settings, certificates, and testing across clients. Integration effort rises when you connect LDAP, a Matrix homeserver, or an application that signs JWT tokens, because each system has its own owners and change process. Recurring costs include token key rotation, directory changes, and upgrades that touch authentication. Ask any implementation partner for a written scope that names each mode, each integration, the test plan, and who maintains the signing keys after handover.

Upgrades, backups, monitoring and skills for each install

This table compares the day-to-day operating work of the Debian and Ubuntu package install against the official rootless Docker setup. Read each row as a task your team would own after go-live, and check which skills your staff already have before choosing. The main takeaway is that both installs need working HTTPS and a clear owner for Prosody state, but they demand different Linux and container skills.

Operating taskDebian and Ubuntu packagesOfficial Docker setup
Upgrade mechanicsUpgrades run through the system package manager on the host, with OpenJDK 17 and the Jitsi packages updated together. Confirm the package versions your OS release will receive.Upgrades mean moving to a newer tagged image set for web, prosody, jicofo, jvb and any optional containers. Confirm how the release tags map to your .env settings before each change.
Configuration managementSettings live in files on the host under the Jitsi configuration paths. Teams usually track these in version control or configuration management tooling they already run.Settings are concentrated in the .env file and compose definitions. Keep the file under version control and record which image tags each environment runs.
Prosody and configuration state backupsBack up the Prosody data directory, Jitsi configuration files and certificates from the host. Test a restore on a separate host before relying on it.Back up the volumes or host paths that hold Prosody state and configuration, and the .env file. Because containers run with read-only filesystems, confirm exactly which paths are writable and must be captured.
Log accessLogs are read with standard host tools for each service, such as journal or log files on the host. Engineers need to know which service writes which log.Logs are read per container through the container runtime. Confirm log rotation and retention for each container, since they do not follow host logrotate by default.
Monitoring pointsWatch the videobridge, Jicofo and Prosody processes, host CPU and memory, and the bridge network path on UDP 10000. Add alerts on HTTPS certificate expiry.Watch each container's health and restarts, host CPU and memory per videobridge container, and UDP 10000 reachability. Confirm which health signals the images expose before writing alerts.
TLS certificate handlingHTTPS with a proper domain certificate is required for working audio and video, and self-signed certificates cause problems, especially with mobile clients. Plan renewal on the host web server.The same requirement applies. Certificates are mounted into the web container, so renewal means updating the mounted files and restarting the web container. Test the renewal path before expiry.
Linux skillsNeeds administration of Debian 12 or Ubuntu 24.04 hosts, package repositories, firewall rules and service management.Needs host Linux administration for the container host, with enough kernel and filesystem knowledge to manage rootless operation and volume permissions.
Docker and networking skillsLimited to what the host networking stack needs, such as opening ports 80, 443, 10000 UDP and optional 5349 TCP and 3478 UDP.Needs working knowledge of Docker Compose, rootless container limits, image tag management and container networking, plus the same port and firewall work as the package install.

How to choose between the two installs

This sequence turns the Debian package and Docker options into a documented decision your team can defend, with each step ending in a check you can record before any production build starts.

  1. Confirm the operating system and OpenJDK 17 path

    Your systems or platform engineering lead checks whether your target hosts run Debian 12 (Bookworm) or newer, or Ubuntu 24.04 or newer, the versions the Debian and Ubuntu quick start supports. They also confirm that OpenJDK 17 can be installed from your approved package sources and that your patching process covers it. If either check fails, the package path is off the table until the host image changes. The step is done when a written host baseline lists the OS version, the Java package and the owner who patches it.

  2. Decide whether your team runs container platforms

    The infrastructure lead answers a plain question: does your organization already operate Docker hosts, with image scanning, registry access and change control for them? The official Docker setup runs separate web, Prosody, Jicofo, JVB, Jigasi and Jibri containers, and rootless operation with read-only filesystems is part of the current design. If your team has no container operations skill or approved runtime, the package install may match your staff better, even though it changes how you upgrade. The step is done when the team records a yes or no, with the named people who will run the chosen stack.

  3. Choose the authentication model before building

    The security architect and the identity owner decide how room creation will be controlled. The Jitsi handbook marks the older secure domain method as deprecated for new installations and recommends JWT token authentication with a separate anonymous domain for guests. The Docker guide also offers LDAP, Matrix user verification and a hybrid Matrix plus JWT mode, configured through the .env file, while the package install needs its own configuration work. Confirm with your identity team which directory and token issuer you will use, and whether guests need a path. The step is done when the authentication choice and the token issuer are documented and approved.

  4. Size the central server and videobridges

    The platform architect sets the first capacity plan using the Jitsi scalable setup guidance, which suggests a 4 CPU, 8 GB machine for the central server and 4 or 8 CPU with 8 GB RAM for each videobridge, and notes that the default install is already configured for horizontal scaling. Your expected concurrent meetings, participants per meeting and any recording needs (Jibri) decide how many bridges you add. Test these figures with a load run in your own environment before you trust them. The step is done when you have a sizing sheet with peak concurrency and the number of bridges, signed off by the capacity owner.

  5. Plan certificates and network ports

    The network engineer and the certificate owner plan the public name and its certificate. The Jitsi handbook says HTTPS with a proper domain certificate is necessary for working audio and video, and warns that self-signed certificates cause problems, especially on mobile clients. Open 80/TCP, 443/TCP and 10000/UDP, and decide whether to open 5349/TCP for TCP fallback and 3478/UDP for STUN. Confirm with your firewall team that these rules match your segmentation policy. The step is done when a port matrix and a certificate renewal owner are recorded, and a test client reaches the site from outside your network.

  6. Build a pilot and rehearse one upgrade

    The platform engineer builds a non-production copy using the chosen install method and runs a sample meeting with each authentication path. Then they perform one upgrade to a newer release, record every manual step, and measure how long the window took in your environment. For the Docker path, test the image tag change and rollback. For the package path, test the package update and configuration review. This pilot is the only reliable source of your upgrade effort, because published guides do not give your team's timing. The step is done when the upgrade runbook exists and the pilot results are reviewed by the operations owner.

  7. Approve the production install and its runbook

    The CIO or head of IT signs off on the install method with the security, identity, network and operations owners named in the previous steps. The approved record should list the OS or container baseline, the authentication configuration, the sizing sheet, the port matrix, the upgrade runbook and the support owner. If you engage an implementation partner, request a written scope that names these deliverables before work starts. The step is done when the decision record is filed, and any open risk, such as an unconfirmed upgrade window, has an owner and a due date.

Questions buyers ask before choosing a Jitsi install

How much effort does each Jitsi install take to run?

The Debian and Ubuntu route is a single-host style quick start that needs Debian 12 (Bookworm) or newer, or Ubuntu 24.04 or newer, plus OpenJDK 17 and the ports 80/TCP, 443/TCP and 10000/UDP open. The Docker route adds a container runtime and a .env file that drives authentication and settings, and runs separate web, prosody, jicofo, jvb, jigasi and jibri containers. Effort rises with the number of components you enable, the number of videobridges you add, and how much you customize. Ask the vendor or your own team to walk through a sample deployment for your topology before you compare hours.

Can our team install Jitsi without outside help?

Yes, a team with Linux administration and DNS and certificate skills can follow either official route, but the sources make two points you should plan for. HTTPS with a proper domain certificate is necessary for working audio and video, and self-signed certificates cause problems, especially with mobile clients. Recording (Jibri) and SIP dial-in (Jigasi) add components that need their own testing. Check whether your staff have run containers in production and whether they can own the certificate renewal and upgrade cycle before deciding.

What skills does a Jitsi deployment need from our staff?

Plan for three skill areas: Linux server administration, networking for media traffic, and identity configuration. On the networking side, Jitsi needs UDP media reachability, and the handbook's scalable setup guide suggests a 4 CPU, 8 GB machine for the central server and 4 or 8 CPU with 8 GB RAM for each videobridge. On the Docker side, staff should be comfortable with rootless containers and read-only filesystems, which the official guide applies since release stable-11146. Identity work covers choosing among internal XMPP accounts, JWT tokens, LDAP, Matrix verification or a hybrid mode, and the handbook marks the older secure domain method as deprecated for new installations.

How long does a Jitsi deployment take to complete?

No deployment duration appears in the sources, so this page does not give one. Duration depends on the install route, the number of videobridges, whether recording or SIP dial-in is in scope, the identity method you choose, and how many rounds of testing your acceptance criteria require. Ask for a written timeline tied to a defined scope with named deliverables, and ask which items the timeline assumes you provide, such as DNS records, certificates, firewall changes and test accounts. A fixed-scope agreement is the usual way to lock these assumptions in writing.

What should a quote for a Jitsi install include?

A useful quote lists each component in scope and its role, the install route chosen and why, the operating systems or container runtime versions, the number of videobridges and their sizing, the authentication method and identity source, and the certificate approach. It should also state whether recording (Jibri) and SIP dial-in (Jigasi) are included, what testing is performed, what documentation and handover are delivered, and what happens to upgrades after go-live. Separate one-time work from recurring support or retainer work. DeployOpen does not publish a price list, and a quote follows from the written scope.

Can we switch from Debian packages to Docker later?

Switching is possible but is real migration work, not a configuration toggle. The two routes install components in different ways, so moving between them means rebuilding the host layout, re-applying the .env settings or package configuration, and re-testing authentication and certificates. Your effort depends on how much you customized, how many videobridges run, and whether recordings or dial-in users depend on the current setup. Decide early on the install route and authentication method, document both, and ask any implementer to state in writing how a later move would be scoped and charged.

How do upgrades differ between the two Jitsi installs?

The Debian route updates through the operating system's packages, while the Docker route updates by moving to newer container images. The Jitsi handbook tags stable releases by build number, such as stable/jitsi-meet_11248 published September 14, 2026, so you should track which build your install runs. Ask your implementer how upgrades are tested before rollout, how rollback works in each route, and whether upgrades are included in a retainer or quoted separately.

What drives the cost of running Jitsi yourself

Most of the cost of running Jitsi yourself is people time and infrastructure, and the split between one-time setup and recurring operations decides where your budget goes. The software is Apache-2.0 licensed, so there is no license fee for either installation path. What you pay for is the central server, one or more videobridges, and the staff who build and keep them running. The Jitsi scalable setup guide suggests a 4 CPU, 8 GB machine for the central server and 4 or 8 CPU with 8 GB RAM for each videobridge. Those are starting points for sizing, not a capacity guarantee, so ask the implementer to test concurrency in your own environment before fixing the hardware budget.

One-time setup includes the domain and TLS work, because the Jitsi handbook says HTTPS with a proper domain certificate is necessary for working audio and video. Authentication is another setup item: JWT token integration, LDAP, or Matrix verification each need configuration in the .env file and testing against your identity source. Recording with Jibri and SIP dial-in with Jigasi add separate hosts and, for recording, storage sized for your retention rules. Recurring costs are upgrades to new stable builds, monitoring of the bridges, certificate renewal, backups and incident response. The Docker path adds image and container maintenance on top of this, while the Debian path adds OS and OpenJDK 17 package upkeep.

When you request a quote, ask for the scope to name each component and each host, the sizing assumptions and the concurrency you tested against, the authentication method and who integrates it, and whether Jibri and Jigasi are in or out. Ask for the handover documentation and the upgrade procedure as named deliverables, and for a separate price for ongoing support, since that recurs. Confirm with your own team who will receive alerts and who approves upgrades. Those answers, not the license, will determine the total cost of ownership.

How DeployOpen plans and runs a Jitsi deployment

DeployOpen plans, implements, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks, and Jitsi is handled the same way. The work starts with a written scope that sets which install path, authentication method and scaling model fits your environment before any server is touched.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • The scope records whether Debian or Ubuntu packages or the Docker setup fits your operations team and upgrade process.
  • Authentication choices such as JWT tokens, LDAP or Matrix verification are fixed in the scope before configuration begins.

How we build

  • Installation covers the web, Prosody, Jicofo and videobridge components in your own infrastructure, with HTTPS on your domain.
  • Port planning covers the UDP media path and optional TCP fallback, checked against your firewall and network policy.
  • Scaling is configured for additional videobridges, with load tested before the deployment is treated as ready for users.

How we hand over

  • Deliverables include configuration documentation, upgrade notes and a record of the choices made during scoping.
  • Runbooks cover backups, certificate renewal and the steps to add or remove a videobridge on your schedule.
  • Your staff receive a handover session so the internal team can run routine operations without DeployOpen involvement.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Retainers cover tracking of Jitsi release tags, with upgrades planned and tested against your own environment first.
  • Ask for the support scope, response arrangements and upgrade process in writing as part of any quote.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.