Layer 5 · self-hosting reality check
What it actually takes to self-host Jami
The docs say Not stated by the vendor, because there is no server to size: Jami runs on each person's device. The optional pieces (an OpenDHT node from Savoir-faire Linux's Alpine container, a standard coturn TURN server) publish no RAM figure either. In practice you want Nothing server-side for one-to-one calls. The real requirement moves to whoever starts a group call: that device receives every participant's video, mixes it and sends the mixed stream back to each person, so its upload carries one outgoing stream per participant. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Zoom alternatives, where Jami is one of the picks.
Wondering whether you need to at all? Is Zoom free? — what the free tier actually allows, and where the wall is.
| RAM — documented minimum | Not stated by the vendor, because there is no server to size: Jami runs on each person's device. The optional pieces (an OpenDHT node from Savoir-faire Linux's Alpine container, a standard coturn TURN server) publish no RAM figure either |
|---|---|
| RAM — what it really needs | Nothing server-side for one-to-one calls. The real requirement moves to whoever starts a group call: that device receives every participant's video, mixes it and sends the mixed stream back to each person, so its upload carries one outgoing stream per participant |
| CPU | For 1:1 calls, any device that runs the app. In a group call the host device decodes and re-mixes every participant's video, so start big calls from a desktop, not a phone |
| Disk | Nothing central. Message history lives on each device, and a DHT node doesn't persist data. Back up each account's archive, because there is no server copy to restore from. |
| Monthly cost | $0 on Jami's default network (Savoir-faire Linux runs the bootstrap, TURN, DHT-proxy and name servers). If you run your own TURN and DHT node, a small VPS at roughly $5/mo, and every call it relays counts against that plan's bandwidth |
| Setup time | 5 minutes to install the app and create an account; an afternoon to stand up your own TURN server and DHT node |
| How you install it | Install the desktop or mobile app; no server needed. Optional: coturn from your distro's packages for TURN, and the ghcr.io/savoirfairelinux/opendht/opendht-alpine container as a bootstrap or DHT-proxy node, then point each account's advanced settings at them |
| Ongoing maintenance | Keep the app updated on every device. If you run your own TURN or DHT node, patch it like any small server and re-test it after firewall or router changes. There's no database to back up, but each person should export their account archive. |
| Where it stops scaling | One-to-one calls and chat scale to any number of users, because nothing central carries them. Group video is limited by the host device's upload, which has to carry one stream per participant. |
The thing that catches people out
"No server" means the server ends up being whoever starts the call. In a group call, the device that starts it becomes the host: Jami's conference code has that device receive every participant's video, mix it into one picture and send it back out to each participant. So the host's upload carries a full video stream per person on the call — ten people is roughly ten outgoing streams from one home connection, which is more upload than many connections have, and the call degrades for everyone when it runs out. Keep group video small, and have whoever has the best wired connection start the call from a desktop.
When not to self-host Jami
You run regular meetings with more than a handful of people, or the organiser is usually on a phone. A server-based tool like Jitsi Meet puts the mixing and relaying on a box you size and pay for, not on whichever participant happened to start the call.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 5 self-hosting guides
- Self-hosting LibreOffice2 GB with a large spreadsheet open
- Self-hosting ONLYOFFICE6 GB for the Document Server with a handful of concurrent editors
- Self-hosting Collabora Online4 GB, and roughly 1 GB per 20 concurrent documents
- Self-hosting CryptPad2 GB for a small instance
- Self-hosting Mattermost4 GB for a team of 50 with PostgreSQL on the same box
- Self-hosting Rocket.Chat6 GB with MongoDB on the same machine
Common questions
- How much RAM does Jami actually need?
- Nothing server-side for one-to-one calls. The real requirement moves to whoever starts a group call: that device receives every participant's video, mixes it and sends the mixed stream back to each person, so its upload carries one outgoing stream per participant in practice. The documented minimum is Not stated by the vendor, because there is no server to size: Jami runs on each person's device. The optional pieces (an OpenDHT node from Savoir-faire Linux's Alpine container, a standard coturn TURN server) publish no RAM figure either, which is the figure at which the process starts rather than the figure at which it works under real use. For 1:1 calls, any device that runs the app. In a group call the host device decodes and re-mixes every participant's video, so start big calls from a desktop, not a phone alongside it.
- What does self-hosting Jami cost per month?
- $0 on Jami's default network (Savoir-faire Linux runs the bootstrap, TURN, DHT-proxy and name servers). If you run your own TURN and DHT node, a small VPS at roughly $5/mo, and every call it relays counts against that plan's bandwidth This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for keep the app updated on every device. If you run your own TURN or DHT node, patch it like any small server and re-test it after firewall or router changes. There's no database to back up, but each person should export their account archive.
- How long does it take to set up Jami?
- 5 minutes to install the app and create an account; an afternoon to stand up your own TURN server and DHT node, via Install the desktop or mobile app; no server needed. Optional: coturn from your distro's packages for TURN, and the ghcr.io/savoirfairelinux/opendht/opendht-alpine container as a bootstrap or DHT-proxy node, then point each account's advanced settings at them.
- When should I NOT self-host Jami?
- You run regular meetings with more than a handful of people, or the organiser is usually on a phone. A server-based tool like Jitsi Meet puts the mixing and relaying on a box you size and pay for, not on whichever participant happened to start the call.
- What is the most common mistake when self-hosting Jami?
- "No server" means the server ends up being whoever starts the call. In a group call, the device that starts it becomes the host: Jami's conference code has that device receive every participant's video, mix it into one picture and send it back out to each participant. So the host's upload carries a full video stream per person on the call — ten people is roughly ten outgoing streams from one home connection, which is more upload than many connections have, and the call degrades for everyone when it runs out. Keep group video small, and have whoever has the best wired connection start the call from a desktop.