2013-07-09

Our team develops Nimble HTTP Streamer to be available free of charge. We believe that license model is not effective in case of this kind of software so we prefer make money on the service, rather than the server itself.

This means that anyone may install Nimble Streamer from our repository and keep using it manually, without our service. Of course, the best user experience is achieved via our excellent WMSPanel reporting and control panel but it's up to a user to decide whether he wants to pay for comfort or he needs more financial flexibility.

The key element of "non-service" usage of Nimble Streamer is the ability to configure the server manually via configuration files. To change the Nimble behavior, you need to change the configs. WMSPanel does this remotely, you can do it yourself.

Knowing configs structure allows doing manual changes without WMSPanel. This also brings an ability to make custom automated configuration of server network in case of complex deployments.

So let's see configuration files structure.

General settings are stored in /etc/nimble/nimble.conf.

This file is self-commented, i.e. it has comments for all parameters listed in it. However let's go though it.

port contains port number which Nimble is listening to. Default value is 8081.

logging is used for getting information about what happens inside of Nimble. Possible values are error, info, verbose and debug.

worker_threads is a number of threads used for processing incoming requests. Default is 1.

max_cache_size is a maximum size of data cache in megabytes. It's 0 by default.

panel_domain and panel_port contain URL and port used for syncing with WMSPanel.

panel_uuid and panel_password has credentials for safe communication with WMSPanel.

panel_ssl_disabled regulates whether SSL is used for WMSPanel communication.

Basically those parameters are set and used during installation and initial start up.

Routes settings are stored in /etc/nimble/rules.conf.

The typical routes settings config is listed below. It's a JSON-formatted data set. The example below is formatted for educational purposes, the real config is presented as a single line.

/* please do not modify this file, all changes will be overwritten by wmspanel agent */
{"SyncResponse":
  {
    "status":"success",
    "RoutesHash":1373269971,
    "Users":0,
    "Routes":
    [
      ["","/local/raw/","file:///var/www/content/raw/",""],
      ["streamingtestingserver.com:8080","/live/", "live.nimblestreamer.com:8080","/"],
      ["GEO_R_AQ","","live2.nimblestreamer.com",""],
      ["GEO_R_IP_R_Range 2","","test.nimblestreamer.com",""]
    ],
    "IpRanges":
    [
      ["IP_R_Range 1","192.168.0.0/22"],
      ["IP_R_Range 2","172.168.0.0/24"],
      ["IP_R_LocalHostRange","127.0.0.0/8,128.0.0.0/8"],
      ["IP_R_all","0.0.0.0/0"]
    ]
  }
}

The first comment line warns you that routes settings are replaced after the next time you change settings within the panel. If you don't want the settings to be replaced, just remove the server from the panel or make its backup.

First 3 parameters - status, routeHash and Users - are used for syncing purposes so you don't need to change them.

Next sections is Routes, it contains the routes defined within a panel. Each entry separated by [ and ] is a set of 4 strings. They are Domain From, Path From, Domain To and Path To respectively.

For progressive download or HLS re-streaming set up those 4 elements work straight-forward, please read this or this post for set up details.

For geo forwarding see route 3. The first element stands for country of original request made by "GEO_R_" prefix and ISO country codes. In this example we see "GEO_R_AQ" having "AQ" country code meaning Afganistan. Path From and Path To are blank, with only Domain To pointing to the domain and port of destination of request.

For IP range forwarding you can check route 4. It has the same "GEO_R_" prefix followed by the name of IP range. All names of IP ranges are defined within WMSPanel and synced in this config as well. Let's take a look at IpRanges section. Each entry has its name used in WMSPanel and in the routes above. It also has CIDR defining the range itself. So having list of ranges you can use them in any of your routes.

Those are all parameters you may need for controlling server behavior. Once you make a change please re-start Nimble by running

sudo service nimble restart

Nimble Streamer feature set will be extended further and its configuration files will also be changing. Our team will be updating this description to keep it up-to-date with latest releases.

You can try Nimble Streamer any time and contact us in case of any questions. We're looking forward to your questions and suggestions.

Show more