- Dockerfile 100%
| conf | ||
| .gitignore | ||
| Dockerfile | ||
| LICENSE | ||
| README.de.md | ||
| README.fr.md | ||
| README.md | ||
Janus Gateway – ARM64 Docker Image
Janus WebRTC Gateway v1.4.0 as an ARM64 Docker image, optimized for Nextcloud Talk High Performance Backend (HPB).
Contents
- Multi-stage build on
debian:bookworm-slim - Janus v1.4.0 compiled from meetecho/janus-gateway
- Only the components required for Talk HPB:
- VideoRoom plugin
- WebSocket transport (port 8188)
- WebSocket Event Handler (for signaling server)
- Data Channels (usrsctp)
- libnice 0.1.22, libwebsockets 4.3-stable (compiled from source)
Build
docker build -t janus-gateway-arm64 .
Configuration
Config templates are located in conf/ and are copied to /opt/janus/etc/janus/ during build. They can be overridden at runtime via volume mount:
| File | Purpose |
|---|---|
janus.jcfg |
Main config (NAT, logging, etc.) |
janus.transport.websockets.jcfg |
WebSocket transport (port 8188) |
janus.plugin.videoroom.jcfg |
VideoRoom plugin |
janus.eventhandler.wsevh.jcfg |
Event handler → signaling server |
Required Changes
Before deploying, change the default secrets in the config files:
admin_secretinjanus.jcfgadmin_keyinjanus.plugin.videoroom.jcfg
In janus.eventhandler.wsevh.jcfg, set backend to the WebSocket URL of your signaling server:
backend = "ws://<SIGNALING_HOST>:8080/proxy"
In janus.jcfg, adjust rtp_port_range and ice_ignore_list to match your network environment.
Running
docker run -d \
--name janus \
-p 20000-20200:20000-20200/udp \
-v ./conf:/opt/janus/etc/janus:ro \
janus-gateway-arm64 \
--nat-1-1=<PUBLIC_IP>
If Janus runs in the same Docker network as the signaling server, add --network <network>.
The --nat-1-1 flag is required when running behind NAT so that Janus advertises the correct public IP in ICE candidates.
Architecture (Nextcloud Talk HPB)
Nextcloud Talk Client
│
├── WebSocket ──→ Signaling Server ──→ NATS
│ │
│ ├── WebSocket ──→ Janus Gateway (:8188)
│ │ │
│ │ VideoRoom Plugin
│ │ │
└── WebRTC (DTLS/SRTP) ──────────────────────┘
RTP :20000-20200/UDP
Disabled Components
The following Janus features are disabled in this build as they are not needed for Talk HPB:
- Plugins: AudioBridge, EchoTest, NoSIP, RecordPlay, SIP, Streaming, TextRoom, VideoCall, VoiceMail
- Transports: HTTP/REST, RabbitMQ, MQTT, Nanomsg
- Event handlers: all except WebSocket
- TURN REST API (coturn runs separately)
License
GPL-3.0 – same as Janus Gateway.