Docker is the quickest way to try Bunryu. For long-running production servers, use the native install.
Quick start
git clone https://github.com/live-miracles/bunryu
cd bunryu
docker compose up -d
docker compose logs bunryu | grep "dashboard password"
Open http://localhost:8080, log in with the printed password, create a
pipeline and publish to it.
Details
The image bundles the control plane, SRS, goryu and the same
pinned FFmpeg build as the native installer (x86_64 only). One container runs
all three processes under a small supervisor (docker/entrypoint.sh) that
keeps the native startup order: SRS starts only after /api/ready answers,
each process is restarted 2 s after it exits, and every start and exit is
logged with its status.
docker compose up -d # build and start (compose.yaml)
docker compose logs -f bunryu # all three processes log here
docker compose down # stop; data stays in the volume
Or without compose:
docker build -t bunryu .
docker run -d --name bunryu --restart unless-stopped \
-p 8080:8080 -p 21935:21935 -p 10080:10080/udp -p 10081:10081/udp \
-v bunryu-data:/data bunryu
- Data: everything persistent is in the
/datavolume:db.sqlite,bunryu.json, the generatedsrs.conf/goryu.json, HLS previews and diagnostics. On every start the SRS and relay configs are refreshed from the image and keep their SRT passphrase, like a reinstall. - Secrets: on first start the container generates the dashboard password
(printed in the logs and stored as
dashboard_passwordin/data/bunryu.json) and a random SRT passphrase. - Public host: set Settings → Public Host to the address encoders use, so the dashboard's publish URLs are correct.
- Limitations: the dashboard's SRS/relay/app log viewers read journald, so
they are empty in Docker; use
docker compose logs. The version panel shows the commit asunknown. The Goryu needs UDP port 10081 published as above.