Deployment Guide
This guide covers deploying the full bilbycast stack: manager, relay, and edge nodes.
Build Order
Section titled “Build Order”Build in this order — bilbycast-srt must be present before bilbycast-edge can compile:
# 1. SRT library (dependency of edge)cd bilbycast-srt && cargo build --release
# 2. Edge nodecd bilbycast-edge && cargo build --release
# 3. Managercd bilbycast-manager && cargo build --release
# 4. Relaycd bilbycast-relay && cargo build --release1. Deploy the Manager
Section titled “1. Deploy the Manager”The manager is the central control plane. Deploy it first.
cd bilbycast-manager
# Create .env with required secretscp .env.example .envecho "BILBYCAST_JWT_SECRET=$(openssl rand -hex 32)" >> .envecho "BILBYCAST_MASTER_KEY=$(openssl rand -hex 32)" >> .envchmod 600 .env
# Initialize database and create first admin user./target/release/bilbycast-manager setup --config config/default.toml
# Start the server./target/release/bilbycast-manager serve --config config/default.tomlTLS Configuration
Section titled “TLS Configuration”Choose one TLS mode:
ACME / Let’s Encrypt (recommended for production):
BILBYCAST_ACME_ENABLED=trueBILBYCAST_ACME_DOMAIN=manager.example.comBILBYCAST_ACME_EMAIL=admin@example.comFile-based certificates:
BILBYCAST_TLS_CERT=certs/server.crtBILBYCAST_TLS_KEY=certs/server.keyBehind a load balancer:
BILBYCAST_TLS_MODE=behind_proxy2. Deploy the Relay
Section titled “2. Deploy the Relay”The relay requires no configuration for basic operation:
# Zero-config start./target/release/bilbycast-relayTo connect to the manager, create a node entry in the manager UI (device type: relay), then:
{ "quic_addr": "0.0.0.0:4433", "api_addr": "0.0.0.0:4480", "manager": { "enabled": true, "url": "wss://manager.example.com:8443/ws/node", "registration_token": "<token-from-manager>" }}3. Deploy Edge Nodes
Section titled “3. Deploy Edge Nodes”Create a node entry in the manager, then configure the edge:
config.json:
{ "version": 1, "server": { "listen_addr": "0.0.0.0", "listen_port": 8080 }, "manager": { "enabled": true, "url": "wss://manager.example.com:8443/ws/node" }, "flows": []}secrets.json (chmod 600):
{ "version": 1, "manager_registration_token": "<token-from-manager>"}After first connection, the edge registers automatically and receives permanent credentials.
Browser-Based Setup (Field Deployment)
Section titled “Browser-Based Setup (Field Deployment)”For hardware deployed at venues:
- Start the edge with a minimal config
- Open
http://<edge-ip>:8080/setupin a browser - Fill in the device name, manager URL, and registration token
- Save and restart the service
Default Ports
Section titled “Default Ports”| Service | Port | Protocol |
|---|---|---|
| Manager Web UI / API | 8443 | HTTPS |
| Edge REST API | 8080 | HTTP/HTTPS |
| Edge Monitor Dashboard | 9090 | HTTP |
| Relay QUIC | 4433 | QUIC/TLS 1.3 |
| Relay REST API | 4480 | HTTP |