Public | Automated Build

Last pushed: 3 years ago
Short Description
Docker Image for running SOON_ FM Perceptor
Full Description

SOON_ FM | Perceptor

<img src="perceptor.jpg" width="80" height="114" align="right" />

Perceptor is the new SFM_ events system for websocket communication between the Player and API.
This allows the player to connect to the events system without the need for a direct connection
to Redis, meaning the player no longer needs to connect to the VPN to get events.

The ultilate goal will be to remove Redis as the main events hub, moving to REST pushes to various
evented services on demand.

<div align="center">
<img src="infrastructor.png" />


Perceptor can be run via Docker. Simply download the image and run:

docker pull
docker run --rm -it


Perceptor can be configured via a config file located in any of the following locations:

  • /etc/perceptor/perceptor.yml
  • $HOME/.perceptor/perceptor.yml
  • $PWD/.perceptor/perceptor.yml

The config file atleast needs to set client secrets for HMAC request verification:

  soundwave: foo
  shockwave: bar

In addition Redis connection settings and the port perceptor will run on can also be configured:

# Port to run perceptor on
port: 9000
# The log verbosity level (debug, info, wan, error)
log_leveL: debug
# Redis Host Address
# Redis Port
redis_port: 6379
# Client Secrets - For HMAC Verification
  soundwave: foo
  shockwave: bar

You can share this file with the docker container, for example:

docker run --rm -it -v /path/to/perceptor.yml:/etc/perceptor/perceptor.yml

Environment Variables

In addition the following environment variables can override configuration:

  • PERCEPTOR_PORT - The port perceptor runs on
  • PERCEPTOR_LOG_LEVEL - The verbosity of the logging (debug, info, warn, error)
  • PERCEPTOR_REDIS_HOST - Redis Host Address (localhost)
  • PERCEPTOR_REDIS_PORT - Redis Port (6379)


This package uses Glide for vendoring, please follow the
install instructions on the Glide repository. Ensure you
have Go 1.5 and Glide 0.5.0 installed.

Create a Workspace

Firsrt create a workspace, this will form part of your $GOPATH.

mkdir -p ~/Development/Perceptor/src/

Now set your $GOPATH:

export GOPATH=~/Development/Perceptor

We have also set GO15VENDOREXPERIMENT=1 to make use of the /vendor dirctory support in Go 1.5.

Clone the Project

Now you can clone the project into the workspace.

cd ~/Development/Perceptor/src/
git clone .

Get Dependencies

Now we can get the dependencies using glide.

glide up


Now the project can be built:

go build $(glide nv)
Docker Pull Command
Source Repository