Skip to content

Getting Started

Andrew J. Gillis edited this page Sep 3, 2017 · 8 revisions

Installation

go get github.com/gammazero/nexus

Running a Router

Build the Router

cd nexusd
go build

Configure the Router

Edit the file nexusd/etc/nexus.json to configure the router. This is a JSON file that specifies settings for a router and for the realms within that router. The default config file looks like this:

{
    "port": 8080,
    "log_path": "./nexusd.log",
    "router": {
        "realms": [
            {
                "uri": "nexus.reaml1",
                "strict_uri": false,
                "allow_disclose": true,
                "allow_anonymous": true
            }
        ],
        "debug": false
    }
}

If log_path is not specified or is "", then nexusd will log to stdout.

Automatic creation of realms is enabled by specifying a realm_template in the config file. This means that when a client joins a realm, that the realm is automatically created within the router it is does not already exist. Here is an example realm template config:

{
    "port": 8080,
    "log_path": "./nexusd.log",
    "router": {
        "realm_template": {
            "allow_anonymous": true
        },          
    }
}

Run the Router

./nexusd

If the config file is not in ./etc/nexus.json, then use the -c flag and give a path to the config file:

./nexusd -c /path/to/conf/nexusd.conf

Configuration Details

The configuration file has the following structure:

{
    "port": integer,
    "log_path": string,
    "router": {
        "realms": [],
        "realm_template": {},
        "debug": boolean
    }
}

Note: All boolean values default to `false` if not specified.

The value of `"realms"` is a list of realms to be configured on the router.  Each one has the form:

{ "uri": string, "strict_uri": boolean, "allow_disclose": boolean, "allow_anonymous": boolean }


The value of t