Skip to content

Self-hosting

  • Linux host or VM
  • Docker Engine with Compose v2
  • At least 2 CPU cores and 1 GiB RAM per concurrent 720p stream as an initial planning baseline
  • HTTPS/WSS reverse proxy and TURN for internet access
  • Source resources such as V4L2, X11 and PulseAudio when applicable
Terminal window
git clone https://github.com/Tomo-Social/tomo-streaming-self-hosted.git
cd tomo-streaming-self-hosted
cp .env.example .env

Generate a server secret:

Terminal window
openssl rand -base64 32

Set the image tags and resource paths in .env, then start:

Terminal window
docker compose up -d
docker compose ps
curl http://localhost:8090/health

Release images are not yet published. Follow Install from source to build the two required local tags before the first docker compose up.

Camera sessions require a host V4L2 device such as /dev/video0. Desktop capture uses the host X11 and PulseAudio sockets. Only mount resources actually used by that worker.

Set a unique TOMO_STREAM_INSTANCE_ID for each control plane sharing a Docker host. This prevents one installation from reconciling containers owned by another.