0.4.1 • Published 3 years ago

@signal-fire/cli v0.4.1

Weekly downloads
81
License
MIT
Repository
github
Last release
3 years ago

Signal-Fire Server CLI

Command-Line Interface (CLI) for Signal-Fire Server.

Signal-Fire Server is a WebRTC signaling server built for node.js.

A WebRTC signaling server communicates between peers to set up peer-to-peer audio/video and/or data channels. This allows your clients to communicate directly with each other.

Features

  • Run multiple instances of Signal-Fire Server
  • Start background workers
  • Easy configuration and set-up

Install

Install globally:

npm i -g @signal-fire/cli

Usage

Usage: signal-fire [options] [command]

Options:
  -V, --version         output the version number
  -h, --help            display help for command

Commands:
  start [options]       start a new worker
  stop <pid>            stop worker with the given pid
  info [options] <pid>  list info for worker
  list [options]        list all active workers
  help [command]        display help for command

Start

Usage: signal-fire start [options]

start a new worker

Options:
  -c, --config <file>  path to configuration file
  -p, --port <port>    port to listen on
  -h, --host <host>    host to listen on
  -P, --path <path>    path to listen on
  --help               display help for command

Configuration file

interface WorkerConfiguration {
  /**
   * Registry to use. Defaults to 'local' 
   **/
  registry?: string | {
    name: string,
    args?: any[]
  },
  /**
   * Options for the API server.
   * If false, the API server is disabled
   * If true, the API server will use a random open port
   * If a number, this will be the port
   * Otherwise the object is passed to Server.listen()
   **/
  api?: boolean | number | {
    host?: string,
    port: number,
    ipv6Only?: boolean
  },
  /**
   * Options fot the app server.
   * If not set, defaults to a random open port
   * If a number, this will be the port
   * If set, the object is passed to Server.listen()
   **/
  app?: number | {
    host?: string,
    port: number,
    ipv6Only?: boolean,
    /**
     * The path to listen for upgrades on.
     * All other requests receive 404 Not Found,
     * a regular HTTP call received 426 Upgrade Required
     **/
    pathname?: string
  },
  /**
   * WebRTC client configuration.
   * These options are passed to all new clients.
   **/
  rtcConfig?: {
    bundlePolicy?: RTCBundlePolicy,
    iceCandidatePoolSize?: number,
    iceServers: RTCIceServer[],
    iceTransportPolicy: RTCIceTransportPolicy,
    rtcpMuxPolicy?: RTCRtcpMuxPolicy
  }
}

Example configuration file:

{
  "registry": "local",
  "server": {
    "port": 3303,
    "pathname": "/socket"
  },
  "api": true,
  "rtcConfig": {
    "iceServers": [{
      "urls": "ice.example.com"
    }]
  }
}

Stop

Use stop all to stop all running workers.

Usage: signal-fire stop [options] <pid>

stop worker with the given pid

Options:
  -h, --help  display help for command

List

Usage: signal-fire list [options]

list all active workers

Options:
  -t, --token  include api token in output (default: false)
  -j, --json   output json
  -h, --help   display help for command

Info

Usage: signal-fire info [options] <pid>

list info for worker

Options:
  -t, --token  include api token in output (default: false)
  -j, --json   output json
  -h, --help   display help for command

License

Copyright 2021 Michiel van der Velde.

This software is licensed under the MIT License.