Quick start: install StreamHub with the one-liner
From a fresh Linux box to a live media server with auto-TLS in one command. The installer, what it provisions, and how to verify it.
One command, whole stack
StreamHub installs as a single self-contained application under /opt/streamhub, managed as one service. You do not run raw docker compose — the installer provisions everything and hands you a CLI.
On a fresh Linux host with a domain pointed at it:
# interactive
curl -fsSL https://www.streamhub.studio/install.sh | sudo bash
# non-interactive
curl -fsSL https://www.streamhub.studio/install.sh | sudo bash -s -- \
--non-interactive --domain media.example.com --email you@example.com
What the installer does
The installer is idempotent — safe to re-run — and in one pass it:
- fetches the latest source,
- writes a
.envwith strong random secrets (mode 600, never committed), - builds and starts the stack (Redis, LiveKit, ingress, egress, core, Caddy),
- seeds the first
sk_API token, - installs the
streamhubCLI plus the managed systemd unit and heartbeat timer, - stamps a
VERSIONfile.
Every run is tee'd to logs/install.log, credential-free.
Auto-TLS out of the box
Point your domain's DNS at the server before you install, and Caddy obtains and auto-renews a Let's Encrypt certificate for you. There is no manual certbot step and no renewal cron to babysit — TLS is handled as part of the stack. (The alternate nginx deploy shape exists for operators who front their own proxy.)
Verify it is up
streamhub status # every service's state
streamhub doctor # docker, core health, ports, disk
curl https://media.example.com/api/v1/health
health returns { status, up, version, uptimeSeconds }. Swagger UI is at /api/v1/docs.
Day-1 upgrades
Upgrades reuse the same idempotent path, and they are backed up and rollback-able:
sudo streamhub upgrade # to the latest published version
sudo streamhub upgrade --version 2.2.0 # pin a specific version
Before it migrates, the upgrade snapshots the global and per-app SQLite databases into backups/<stamp>/, so a bad upgrade is recoverable.
Next steps
You now have a running media server. The natural next move is to create your first app and mint a token — from there you can ingest a stream, record it, and embed a player.