Warning: This stack is in active beta. Interfaces and schemas change frequently. If deploying in a production environment, be careful with data migrations when updating major versions. Plan ahead for stuff to break.
Sovereign SaaS for live video. Run on your infrastructure, ours, or both—no vendor lock-in.
An open streaming stack for live video: apps, real‑time APIs, and analytics. Services are narrowly scoped. Frontend uses GraphQL; service-to-service uses HTTP/gRPC APIs; analytics and realtime use Kafka events. Each service owns its data (no cross‑DB access).
| Bundle | Total Emitted Size |
|---|---|
| marketing | |
| docs | |
| webapp client | |
| webapp server |
api_gateway): GraphQL gateway and MCP hubapi_control): auth, streams, business logicapi_tenants): tenants, clusters, nodesapi_billing): usage, invoices, paymentsapi_balancing): regional load balancer & media pipeline orchestrator (HA via Redis, cross-cluster federation via FoghornFederation gRPC)api_sidecar): edge sidecar, MistServer management via Foghornapi_assets): cluster-scoped static media asset server for thumbnails, sprites, VOD metadata, and cached S3 assetsapi_analytics_ingest): consumes Kafka, writes ClickHouseapi_analytics_query): serves analytics & usage summariesapi_firehose): gRPC ingress → Kafkaapi_realtime): real-time event fan-out and WebSocket hubapi_dns): public DNS automation & certificate issuanceapi_mesh): WireGuard mesh agent & local DNSapi_consultant): AI video consultant with RAG, tool-use, and SSE streamingapi_ticketing): support messaging and Chatwoot adapterapi_forms): contact forms and newsletter handlingapi_rooms): planned stream interactivitywebsite_application): main dashboardwebsite_marketing): public sitewebsite_docs): Astro Starlight docsnpm_player, npm_studio): embeddable playback and ingest componentsapi_incidents): deferred incident aggregation servicePrinciples
| Component | linux/amd64 | linux/arm64 | darwin/arm64 |
|---|---|---|---|
| Docker images (all services) | yes | yes | — |
| Service binaries | yes | yes | yes (signed) |
| CLI | yes | yes | yes (signed) |
| Edge node (native) | yes | yes | yes |
All darwin binaries are code-signed and notarized via Apple Developer ID. Docker images are linux-only (macOS runs them via Docker Desktop's Linux VM).
Install via Homebrew: brew tap livepeer-frameworks/tap && brew install frameworks-cli
For local development and testing:
git clone https://github.com/Livepeer-FrameWorks/monorepo.git
cd monorepo
cp config/env/secrets.env.example config/env/secrets.env # edit values as needed
make env # writes .env from config/env
docker-compose up
The Compose stack loads ${ENV_FILE:-.env} automatically. Override ENV_FILE (and pass --env-file to docker compose) when you want to use a different generated env file (for example .env.staging).
Endpoints (local)
All build and test commands go through the Makefile. Key targets:
| Target | Description |
|---|---|
make build |
Build all service binaries |
make test |
Run all tests (with race detector) |
make lint |
Run Go + frontend lint checks (matches CI lint jobs) |
make ci-local |
Run main CI checks locally (go/frontend lint, test, build) |
make verify |
Full verification (tidy, fmt, vet, test, build) |
make env |
Generate .env from config/env/ |
Single service: make build-bin-<name> (e.g. make build-bin-purser). See Makefile for all targets.
| Plane | Service | Port | Notes |
|---|---|---|---|
| Control / API | Bridge | 18000 | GraphQL Gateway and MCP hub |
| Control / API | Commodore | 18001 | Health/Metrics |
| Control / API | Commodore (gRPC) | 19001 | gRPC API |
| Control / API | Quartermaster | 18002 | Health/Metrics |
| Control / API | Quartermaster (gRPC) | 19002 | gRPC API |
| Control / API | Purser | 18003 | Health/Metrics |
| Control / API | Purser (gRPC) | 19003 | gRPC API |
| Control / API | Livepeer Signer | 18016 | ETH transaction signer for Livepeer Gateway (not in dev compose) |
| Event & Analytics | Periscope Query | 18004 | HTTP health/metrics only |
| Event & Analytics | Periscope Query (gRPC) | 19004 | gRPC API |
| Event & Analytics | Periscope Ingest | 18005 | Kafka consumer |
| Event & Analytics | Decklog | 18006 | gRPC |
| Event & Analytics | Decklog (metrics) | 18026 | Prometheus metrics |
| Event & Analytics | Kafka (external) | 29092 | Host access |
| Event & Analytics | Kafka (internal) | 9092 | Cluster access |
| Event & Analytics | ClickHouse (HTTP) | 8123 | Analytics database |
| Event & Analytics | ClickHouse (Native) | 9000 | Analytics database |
| Event & Analytics | Signalman | 18009 | WebSocket hub |
| Event & Analytics | Signalman (gRPC) | 19005 | gRPC API |
| Media | Helmsman | 18007 | Edge API |
| Media | Foghorn | 18008 | Balancer |
| Media | Foghorn (internal gRPC) | 18019 | Internal-CA gRPC listener for Foghorn HA relay |
| Media | Foghorn (external gRPC) | 18029 | Public-ACME gRPC listener for Helmsman, edge bootstrap/enrollment, and FoghornFederation |
| Media | Foghorn Redis | 6379 | Foghorn state sync (HA). Separate from Chatwoot Redis |
| Media | MistServer (control) | 4242 | Control API |
| Media | MistServer (RTMP/E-RTMP) | 1935 | Ingest |
| Media | MistServer (HTTP) | 8080 | HLS/WebRTC delivery |
| Media | MistServer (SRT) | 8889/udp | SRT ingest |
| Media | Livepeer Gateway | 8935 | Livepeer compute gateway (transcoding orchestration; not in dev compose) |
| Media | Chandler | 18020 | Cluster-scoped asset serving (thumbnails, sprites, VOD metadata) |
| Network & Trust | Navigator | 18010 | Public DNS management & ACME (production deployments; intentionally excluded from single-node dev compose) |
| Network & Trust | Navigator (gRPC) | 18011 | gRPC API (production deployments; intentionally excluded from single-node dev compose) |
| Network & Trust | Privateer | 18012 | WireGuard mesh agent & Local DNS (production deployments; intentionally excluded from single-node dev compose) |
| Network & Trust | Nginx | 18090 | Reverse proxy |
| Infrastructure | PostgreSQL | 5432 | Primary state database |
| Support & Experience Services | Listmonk | 9001 | Newsletter Admin |
| Support & Experience Services | Chatwoot | 18092 | Support dashboard (via Nginx: /support) |
| Support & Experience Services | Forms API | 18032 | Contact forms |
| Support & Experience Services | Parlor (api_rooms) | 18014 | Planned channel rooms for interactive features |
| Support & Experience Services | Deckhand (api_ticketing) | 18015 | Support ticketing |
| Support & Experience Services | Deckhand (gRPC) | 19006 | Support gRPC API |
| Support & Experience Services | Skipper | 18018 | AI video consultant HTTP |
| Support & Experience Services | Skipper (gRPC) | 19007 | gRPC API |
| Interfaces | Web Console | 18030 | Application UI |
| Interfaces | Marketing Site | 18031 | Public site |
| Interfaces | Documentation | 18033 | Starlight docs |
| Observability & Operations | Prometheus | 9091 | Metrics (CLI deployment only) |
| Observability & Operations | Grafana | 3000 | Dashboards (CLI deployment only) |
| Observability & Operations | Metabase | 3001 | BI Analytics (CLI deployment only) |
| Observability & Operations | Lookout (api_incidents) | 18013 | Deferred incident management service |
Public docs: logbook.frameworks.network (source: website_docs/)
| Audience | Covers |
|---|---|
| Streamers | Quick start, encoder setup, API reference, playback |
| Operators | Architecture, deployment, DNS, CLI, multi-cluster, WireGuard |
| Selfhosted | Self-hosted edge nodes with enrollment tokens |
| Agents | MCP integration, wallet auth, x402 payments |
Internal docs (in-repo, for contributors):
| Directory | Purpose |
|---|---|
docs/architecture/ |
System design decisions (analytics, routing, …) |
docs/standards/ |
Design system, metrics naming, testing policy |
docs/rfcs/ |
Proposals under discussion |
docs/skills/ |
Agent integration & discovery files |
CONTRIBUTING.md |
Dev setup, code style, workflows, PR process |