Self-hosting
Requirements
Section titled “Requirements”- 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
git clone https://github.com/Tomo-Social/tomo-streaming-self-hosted.gitcd tomo-streaming-self-hostedcp .env.example .envGenerate a server secret:
openssl rand -base64 32Set the image tags and resource paths in .env, then start:
docker compose up -ddocker compose pscurl http://localhost:8090/healthThe 0.1.0 control-plane and AV runtime images are published in GHCR. Follow Install from source only when you need local image changes.
Deploy with your preferred agent
Section titled “Deploy with your preferred agent”You can operate the self-hosted control plane from Codex, Claude Code, Antigravity or another MCP-compatible agent. Follow the MCP server guide to expose room creation, status and lifecycle controls without coupling the deployment to Tomo Social.
Capture resources
Section titled “Capture resources”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.
Instance ownership
Section titled “Instance ownership”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.
Verify and diagnose
Section titled “Verify and diagnose”- Verify your setup checks health, discovery, authentication and runtime creation in order.
- Configuration lists every public worker and session setting.
- Troubleshooting maps common errors to their owning layer.