Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Configuration settings

Eric Richardson edited this page · 2 revisions

StreamMachine uses Flatiron's nconf to load in its configuration. That means that configuration can be set via a JSON config file, environment variables or command line options.

For typical production settings, though, a config file will be your best choice. The config file must be valid JSON, so watch your commas, your quoted keys, etc.


  • Modes: Slave, Standalone

What port should we listen on for end-user connections?


  • Modes: Master, Standalone

What port should we listen on for Icecast source connections?


  • Mode: Master

Configures the master mode's master port and slave listening.

  • port: What port should the master listen on for slave connections and the admin UI/API?
  • password: Secret string used by slaves to authenticate themselves to the master server.


  • Mode: Slave

Tells the slave mode instance where to find its master.

  • master: URI for the master instance, prefixed with "ws://" to indicate that it is a WebSockets connection. Should include a query option of ?password=PASS, where PASS is the password set in the master section of the master server.


  • Mode: Standalone, Master

Configure a Redis server to use for persisting configuration changes.

  • server: URI for the Redis server.


  • Modes: Master, Standalone, Slave

The log section takes nested configuration for each possible log output. Most of the time, a value of true will turn the logging output on with the default options, while a hash value will allow you to tweak the config settings.

All logging outputs will take a level key that determines what level of output messages will be included. Typical levels are error, alert, event, info, debug. In each case, selecting a level will also include all the levels above it (so debug would include info messages, event messages, etc).


If true, turns console logging on. Accepts any options supported by the Winston Console transport.


Writes messages to a log file. Accepts any options supported by the Winston File transport.


Sends logging messages to a Campfire chat room.

  • account: Campfire account
  • token: Campfire API token
  • room: ID number of the Campfire room to which messages should be posted


Logs request stats to a W3C-format log file that can be read by analytics packages designed for Shoutcast log output.

  • file: Path to the log file that should be written

Should use the request logger level.


Log listened minutes to the Cube time series database. Each minute of listening is recorded into the database, along with some client information from the request headers.

  • server: URI for the Cube server's collector
  • event: Event key to use for listened minutes

Hardcoded to listen to the minute logger level.


  • Modes: Master, Standalone, Slave

The alerts object configures alert notifications. Alerts can be sent via email, and are also sent to the normal logging system with the alert level.


Sets up the server to use email to send alert notices. Uses Nodemailer internally to send emails, so most email options and supported configurations will come from that project.

  • mailer_type: Nodemailer transport to use for email. Supported options include SMTP, SES (Amazon's Simple Email Service) and sendmail (for a locally-configured Sendmail binary).
  • mailer_options: Options to pass to the transport. Defined by Nodemailer.
  • email_options: Options to merge into the generated email. Should include from and to.
Something went wrong with that request. Please try again.