ByteDesk Janus Docker Image

March 1, 2026 Β· View on GitHub

Docker Hub Docker Pulls License

Janus Gateway Docker image for ByteDesk, based on Ubuntu 22.04 LTS.

Language: English | δΈ­ζ–‡

πŸ“‘ Table of Contents

Features

  • βœ… Janus Gateway v1.4.0 (built from source)
  • βœ… Ubuntu 22.04 base image
  • βœ… Built-in dependencies for WebRTC stack (libwebsockets, libsrtp, libnice, usrsctp)
  • βœ… Janus built with --enable-post-processing
  • βœ… FFmpeg included for post-processing workflows
  • βœ… Multi-architecture image publishing via GitHub Actions
  • βœ… Docker Hub and Aliyun registry publishing
  • βœ… Single-process runtime (Nginx removed, Janus only)
  • ❌ RabbitMQ/MQTT/Unix sockets are disabled in current build flags

Quick Start

Pull image

# Docker Hub
docker pull bytedesk/janus:latest

# Aliyun registry (recommended in mainland China)
docker pull registry.cn-hangzhou.aliyuncs.com/bytedesk/janus:latest

Run container

The image starts Janus directly (CMD ["janus"]).

docker run -d \
  --name janus \
  -p 8088:8088 \
  -p 8188:8188 \
  -p 10000-10200:10000-10200/udp \
  -e TZ=Asia/Shanghai \
  --restart=unless-stopped \
  bytedesk/janus:latest

Configuration

Janus config files are generated during build by make configs and installed under /usr/local/etc/janus.

To customize configuration, mount your config directory:

docker run -d \
  --name janus \
  -v $(pwd)/janus-conf:/usr/local/etc/janus \
  -p 8088:8088 \
  -p 8188:8188 \
  -p 10000-10200:10000-10200/udp \
  bytedesk/janus:latest

Check logs:

docker logs -f janus

Image Build and Release

This repository uses GitHub Actions workflow at .github/workflows/janus-docker.yml.

  • Tag trigger: janus-v* (example: janus-v1.4.0)
  • Manual trigger: workflow_dispatch with version and push_to_registry
  • Registries:
    • bytedesk/janus
    • registry.cn-hangzhou.aliyuncs.com/bytedesk/janus

Example release tag:

git tag janus-v1.4.0
git push origin janus-v1.4.0

Environment Variables

  • TZ: Container timezone (default: Asia/Shanghai)

Most Janus runtime behavior is controlled by files in /usr/local/etc/janus.

Ports

Janus ports depend on your janus.jcfg and plugin configs. Common mappings:

  • 8088/TCP: Janus HTTP API
  • 8188/TCP: Janus WebSocket API
  • 10000-10200/UDP: RTP media ports (example range)

Adjust these to match your deployed Janus configuration.

Server

Open Source Demo + SDK

ProjectDescriptionForksStars
iOSiOSGitHub forksGitHub Repo stars
AndroidAndroidGitHub forksGitHub Repo stars
FlutterFlutterGitHub forksGitHub Repo stars
UniAppUniappGitHub forksGitHub Repo stars
WebVue/React/Angular/Next.js/JQuery/...GitHub forksGitHub Repo stars
WordpressWordpressGitHub forksGitHub Repo stars
WoocommercewoocommerceGitHub forksGitHub Repo stars

Troubleshooting

  • Container exits immediately: inspect docker logs janus for config errors.
  • API not reachable: verify mapped ports and firewall/security group rules.
  • Media issues: ensure UDP media port range is open and consistent with Janus config.
  • Custom config not applied: confirm mount target is /usr/local/etc/janus.

Contributing

Issues and pull requests are welcome.

License

This project is licensed under the terms in LICENSE.