Getting Started
The fastest way to verify a Live777 deployment end to end is the all-in-one live777-all image. It bundles live777, liveman, FFmpeg and the WHIP/WHEP tools (whipinto, whepfrom, whipsynth, whepprobe), plus a smoke-test command that checks a full publish → subscribe → decode loop.
Start the server
DANGER
You must use network host mode
docker run -d --name live777 --rm --network host ghcr.io/binbat/live777-all:latestThe default command is live777. Open your browser, enter the URL: http://localhost:7777/
Run the smoke test
docker exec live777 smoke-testsmoke-test publishes a synthetic test stream over WHIP, subscribes to it over WHEP, and decodes the received video with FFmpeg — proving the whole WHIP → live777 → WHEP media path works, server included.
Success: the command prints a whepprobe JSON report (codec, frames decoded, timing) and exits 0.
Failure: the exit code is non-zero and the output prints diagnostics — which leg failed (WHIP publish, WHEP subscribe, decode) and why. Check the server log first (docker logs live777).
Notes: tokens, remote clients, ICE
If the server requires a Bearer token (
[auth] tokensinlive777.toml), pass it to the smoke test via theSMOKE_TOKENenvironment variable:shdocker exec -e SMOKE_TOKEN=<token> live777 smoke-testTo check a remote live777 instead of the container's own, point
SMOKE_SERVER_URLat it — no server needs to run in the container:shdocker run --rm --network host -e SMOKE_SERVER_URL=http://<server>:7777 \ ghcr.io/binbat/live777-all:latest smoke-testCI and troubleshooting can also tune
SMOKE_STREAM,SMOKE_ATTEMPTSandSMOKE_READY_TIMEOUT; the defaults are a unique stream, five probe attempts and a 30-second server readiness timeout.The smoke test runs entirely inside the container against the local server, so it validates the server itself. Clients on other machines additionally need working ICE: the default configuration has no ICE servers (host candidates only, LAN-only). Configure
[[ice_servers]]/[webrtc] ice_udp_addrsinlive777.tomlfor remote or NAT-crossing clients — see the live777 configuration guide.
Stop and clean up
docker stop live777The --rm flag removes the container automatically.
Standalone variant
If no server is running yet, a single command starts a temporary server, runs the check and tears everything down:
docker run --rm --network host ghcr.io/binbat/live777-all:latest smoke-test --standaloneWhat the smoke test does not cover
smoke-test verifies the WHIP → live777 → WHEP video path with FFmpeg decoding. Beyond it:
- To verify browser rendering, use WhepWright, which plays the stream in a real browser driven by Playwright.
- To bridge RTP/RTSP sources or outputs, use whipinto and whepfrom — they are protocol bridges, not the default verification path.