2.1 KiB
2.1 KiB
Hugvey / Pillow Talk
- Panpoticon
- Fancy nickname for the web interface that allows altering the story and running the individual Hugveys
- Voice
- Lyrebird voice syntehsis API wrapper. Set the oAuth token using a token generated here
- Client
- Individual Hugveys that stream their mic output and play audiofiles trough the Panopticon. Communication with the server is done through zmq
- Connect with them trough hugvey1.local etc (1-25).
- Central Command/server
- One server to rule them all. Start individual threads/subprocesses for the individual Hugveys. The Panopticon is started when starting the server.
Server
Run the server: python hugvey_server.py --config server_config.yml
Panopticon
The server also integrates the panopticon, the monitoring & administration interface to Hugvey.
Client
To run it: python hugvey_client.py -c client_config.yml
Development
The Panopticon uses gulp to compile SASS into CSS, and to set up browser-sync for css & js. For now, no js user facing dependencies are managed trough node/npm.
After starting the server:
cd www
gulp
To run a command on all hugveys:
fab -H rubenvandeven.com,saclab@projects.rubenvandeven.com -- uname
Installation
create and load Python virtualenv
virtualenv -p python3 --system-site-packages venv
source venv/bin/activate
Install requirements
apt install libasound-dev python3-pyaudio git-lfs
pip install -r requirements.server.txt
pip install -r requirements.txt
Install soft requirements (These are hard requirements for the clients!)
apt install sox rsync
Don't forget to init git submodules
git submodule init
git sumodule update
clients
apt install supervisor
Add the following to the first section of /etc/supervisor/supervisord.conf
chown=pi:pi
Deploy / usefull commands
for i in {1..6}; do rsync -av ~/hugvey/ pi@hugvey$i.local:/home/pi/hugvey/ --exclude=www --exclude=venv --exclude=local --exclude=*.pyc --exclude=.git; done
for i in {1..6}; do ssh pi@hugvey$i.local "sudo shutdown -h now"; done