Peakaboo
Moved to https://gitlab.developers.cam.ac.uk/uis/devops/lecture-capture/peakaboo
A real time dashboard for the remote monitoring of Opencast compatible capture agents
To run in development
mkdir config
cp docs/settings.example.json config/settings.json
chmod u+x run
./runThe meteor applcation will build then point a web browser at:
http://localhost:3000optional: if you get errors at runtime, try installing the node packages:
meteor npm installTo run in in production
Peakaboo has been dockerized so its super straight forward to get this running in a production environment. There are however alternatives to running meteor apps in production but they aren't covered here.
Its highly recomended you run this as a non-root user. Create a new user, a good name would be peakaboo
First generate a valid SSL certificate. You can generate a self signed certificate or you could also use Letsencrypt with certbot https://letsencrypt.org/.
You will also need to create a new .htpasswd file to allow clients to POST images back to peakaboo
move into the docker folder and place your SSL key file and certificate into the Nginx
cd .docker/
cp /path/to/ssl-key.file nginx/my.key
cp /path/to/ssl-cert.file nginx/my.crt
cp /path/to/.htpasswd nginx/.htpasswdInstall docker and docker-compose. Please refer to the latest docker documenation on how to get started on your platform https://docs.docker.com/engine/installation/
https://docs.docker.com/compose/
you can also install the latest docker-compose via pip
pip install docker-composeIn production Meteor apps get their settings from enviroment variables, these can be set in the .bash_profile or exported on the fly. Export your settings JSON and give set the SERVER_NAME to match your DNS hostname of the server.
export METEOR_SETTINGS=$(cat ~/path/to/settings.json)
export SERVER_NAME=peakaboo.example.comTo Build the peakaboo docker container run:
docker-compose build peakabooCentOS 6:
To divert docker's logs to syslog so that they are auto rotated and don't fill up the
disk, make sure /etc/sysconfig/docker has:
other_args="--log-driver=syslog"Then run peakaboo!
docker-compose up -d
When there's a change peakaboo you can update the docker images by stopping the containers and re building the images
docker-compose stop
docker-compose build peakaboo
docker-compose up -d
Client Side
To send/recieve data from the peakaboo app you will need to use a client that uses the Distributed data protocol from Meteor. You could write your own, or check out the examples in the docs directory: Peakaboo Plugins
