Janus Gateway
A pinned, reproducible container build of the Janus WebRTC Server with layered configuration.
- Janus: 1.4.2 (commit
94408ff) - Base: Ubuntu 24.04
Why this image
-
Pinned
Janus and every source dependency are fixed to exact versions. Images that track
masterproduce a different gateway on each rebuild - untenable when you need to state which software produced a dataset. -
Layered configuration
Stock Janus configs ship in the image; you mount only the files you change. No baked-in deployment config, no 40 KB of vendored defaults per project.
-
Complete
Data channels (
usrsctp) and recording post-processing (janus-pp-rec) are compiled in - both are easy to omit and painful to discover missing.
Quick start
docker run -d --network host \
-v "$PWD/conf.d:/etc/janus.d:ro" \
ghcr.io/texttechnologylab/janus-gateway:1.4.2
With an empty conf.d, this runs stock Janus. Drop in a modified janus.jcfg to
change something - see Configuration.
Host networking is recommended
ICE must see the real network interface to gather usable candidates, and the RTP range would otherwise need publishing port by port. Bridge networking produces a gateway that negotiates successfully and then carries no media.
What is compiled in
| Component | Provides | If missing |
|---|---|---|
libnice |
ICE | No connectivity at all |
libwebsockets |
WebSocket API (8188) | The transport most clients use |
usrsctp |
Data channels | Audio and video work; every data channel silently does nothing |
libsrtp |
Media encryption | No media |
libmicrohttpd |
HTTP API (8088) | No admin or debug access |
janus-pp-rec |
.mjr → playable media |
Recordings need a separate toolchain |
Plugins, transports and event handlers are Janus's standard set - see Plugins.
Documentation
| Page | Covers |
|---|---|
| Configuration | How to change settings - the layering model, which settings matter |
| Plugins | Available plugins and transports |
| Recordings | Recording and converting .mjr files |
| Building | Rebuilding, changing the Janus version |
Used by
InterView - a VR interview platform - consumes this image and supplies two override files.
Licence
The packaging in this repository is AGPL-3.0. Janus itself is GPL-3.0 and is built from upstream source at image build time.