Skip to content

Command line ​

Every option of the C server's janus --help exists here with the same short and long names, 44 in all. This is the real output of the binary:

text
Usage:
  janus [OPTION…]

Help Options:
  -h, --help                               Show help options

Application Options:
  -b, --daemon                             Launch Janus in background as a daemon
  -p, --pid-file=path                      Open the specified PID file when starting Janus (default=none)
  -N, --disable-stdout                     Disable stdout based logging
  --log-stdout                             Log to stdout, even when the process is daemonized
  -L, --log-file=path                      Log to the specified file (default=stdout only)
  -R, --log-rotate-sig=signal              Signal to trigger log reloading (e.g. SIGUSR1) (default=none)
  -l, --check-openfiles-limits=value       Check if the current limit on the maximum number of allowed open file descriptors matches this value (if not, Janus will close with a failure; default=none)
  -H, --cwd-path=path                      Working directory for Janus daemon process (default=/)
  -i, --interface=ipaddress                Interface to use (will be the public IP)
  -P, --plugins-folder=path                Plugins folder (default=./plugins)
  -C, --config=filename                    Configuration file to use
  -F, --configs-folder=path                Configuration files folder (default=./conf)
  -c, --cert-pem=filename                  DTLS certificate
  -k, --cert-key=filename                  DTLS certificate key
  -K, --cert-pwd=text                      DTLS certificate key passphrase (if needed)
  -S, --stun-server=address:port           STUN server(:port) to use, if needed (e.g., Janus behind NAT, default=none)
  -1, --nat-1-1=ips                        Comma-separated list of public IPs to put in all host candidates, assuming a 1:1 NAT is in place (e.g., Amazon EC2 instances, default=none)
  -2, --keep-private-host                  When nat-1-1 is used (e.g., Amazon EC2 instances), don't remove the private host, but keep both to simulate STUN
  -E, --ice-enforce-list=list              Comma-separated list of the only interfaces to use for ICE gathering; partial strings are supported (e.g., eth0 or eno1,wlan0, default=none)
  -X, --ice-ignore-list=list               Comma-separated list of interfaces or IP addresses to ignore for ICE gathering; partial strings are supported (e.g., vmnet8,192.168.0.1,10.0.0.1 or vmnet,192.168., default=vmnet)
  -6, --ipv6-candidates                    Whether to enable IPv6 candidates or not
  -O, --ipv6-link-local                    Whether IPv6 link-local candidates should be gathered as well
  -f, --full-trickle                       Do full-trickle instead of half-trickle
  -I, --ice-lite                           Whether to enable the ICE Lite mode or not
  -T, --ice-tcp                            Whether to enable ICE-TCP or not (warning: only works with ICE Lite)
  -Q, --min-nack-queue=number              Minimum size of the NACK queue (in ms) per user for retransmissions, no matter the RTT
  -t, --no-media-timer=number              Time (in s) that should pass with no media (audio or video) being received before Janus notifies you about this
  -W, --slowlink-threshold=number          Number of lost packets (per s) that should trigger a 'slowlink' Janus API event to users (default=0, feature disabled)
  -r, --rtp-port-range=min-max             Port range to use for RTP/RTCP
  -B, --twcc-period=number                 How often (in ms) to send TWCC feedback back to senders, if negotiated (default=200ms)
  -n, --server-name=name                   Public name of this Janus instance (default=MyJanusInstance)
  -s, --session-timeout=number             Session timeout value, in seconds (default=60)
  -m, --reclaim-session-timeout=number     Reclaim session timeout value, in seconds (default=0)
  -d, --debug-level=1-7                    Debug/logging level (0=disable debugging, 7=maximum debug level; default=4)
  -D, --debug-timestamps                   Enable debug/logging timestamps
  -o, --disable-colors                     Disable color in the logging
  -M, --debug-locks                        Enable debugging of locks/mutexes (very verbose!)
  -a, --apisecret=randomstring             API secret all requests need to pass in order to be accepted by Janus (useful when wrapping Janus API requests in a server, none by default)
  -A, --token-auth                         Enable token-based authentication for all requests
  --token-auth-secret=randomstring         Secret to verify HMAC-signed tokens with, to be used with -A
  --restrict-info-api                      Restrict the "info" endpoint to authenticated requests only (requires api_secret or token)
  -e, --event-handlers                     Enable event handlers
  -w, --no-webrtc-encryption               Disable WebRTC encryption, so no DTLS or SRTP (only for debugging!)
  -V, --version                            Print version and exit
Janus version: 1404 (1.4.4)
Janus commit: not-a-git-repo
Compiled on:  Wed Nov  4 14:40:20 UTC 2026

Options override the matching key in janus.jcfg. A few examples:

sh
janus --configs-folder=/etc/janus -d 5                       # config folder, debug level
janus -F ./conf --stun-server=stun.l.google.com:19302
janus -F ./conf --nat-1-1=203.0.113.10 --rtp-port-range=20000-40000
janus -F ./conf -A --token-auth-secret=s3cret                # signed-token authentication
janus --version                                              # prints the version banner and exits
text
Janus version: 1404 (1.4.4)
Janus commit: not-a-git-repo
Compiled on:  Wed Nov  4 14:40:20 UTC 2026

The commit and build time come from janus/build.rs at compile time. The version 1404 (1.4.4) is the C version the port tracks.

GPL-3.0-or-later, like the Janus gateway it ports.