Run it on what you have.
One static binary with the web app inside it, and Postgres. Voice is a third container you can leave out. It runs on a Raspberry Pi 4, an old laptop, or a small VPS.
Quick startFour files from the release, then one command.
R=https://getstoop.org/releases/latest/download curl -fLO $R/docker-compose.yml curl -fLO $R/livekit.yaml curl -fLO $R/livekit-entrypoint.sh curl -fL -o .env $R/env.example # set POSTGRES_PASSWORD docker compose up -d # http://localhost:8080
Open http://localhost:8080. A fresh instance walks you through setup: the admin account, your first space, and an invite link. The four files come from the release itself, so they always match the image the compose file pins. Docker Compose 2.20 or newer.
The full self-hosting guide covers the bare binary, backups, storage, retention, webhooks and every setting.
Front doorStoop listens on one HTTP port. Put what you already run in front of it.
| Option | People need | Voice audio | Who can read your traffic |
|---|---|---|---|
| Reverse proxy + your domain | nothing | yes forward LiveKit's media ports too | nobody but your server |
| Cloudflare Tunnel | nothing | yes with Cloudflare TURN, one setting | Cloudflare sees chat and signaling; audio stays encrypted past it |
| Tailscale, built in | the Tailscale app | yes the node carries media too | nobody but your server |
| Tailscale Funnel | nothing | no HTTP only, unless a TURN relay is reachable | nobody: TLS ends on your node |
| Just your LAN | nothing | listen only no microphone without HTTPS | anyone on the LAN |
Your front door carries chat and voice signaling. Voice audio does not go through it: it goes from each browser straight to LiveKit's media ports or to a TURN relay. No public address, or no way to forward ports? Cloudflare Tunnel with Cloudflare TURN, or Tailscale.
What it needs
- hardware
- Raspberry Pi 4 or newer, an old laptop, a small VPS
- stack
stoop+postgres,livekitoptional- ports
8080/tcpfor the app;7881/tcpand50000-50100/udpfor voice media if you forward them- sign in
- passwords, or the identity provider you already run
- licence
- Apache-2.0
- status
- beta, in daily use; the schema and API may change between minor versions
UpgradesIn place, with a way back.
Fetch the stoop binary once, then run ./stoop upgrade from the install directory when a release is out. It shows what the release's migrations will do to the database and which releases can still start against it afterwards, backs up the database and uploads, puts the new files in place and starts. If the new release does not come up healthy it prints the log and the way back. Every release upgrades from the one before it and rolls back one.