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.

OptionPeople needVoice audioWho can read your traffic
Reverse proxy + your domainnothingyes forward LiveKit's media ports toonobody but your server
Cloudflare Tunnelnothingyes with Cloudflare TURN, one settingCloudflare sees chat and signaling; audio stays encrypted past it
Tailscale, built inthe Tailscale appyes the node carries media toonobody but your server
Tailscale Funnelnothingno HTTP only, unless a TURN relay is reachablenobody: TLS ends on your node
Just your LANnothinglisten only no microphone without HTTPSanyone 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, livekit optional
ports
8080/tcp for the app; 7881/tcp and 50000-50100/udp for 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.