# 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](http://hugvey.rubenvandeven.com/oauth.php) - 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: ```bash 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 ```bash virtualenv -p python3 --system-site-packages venv source venv/bin/activate ``` Install requirements ```bash 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 ```bash 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 ``` ```bash for i in {1..6}; do ssh pi@hugvey$i.local "sudo shutdown -h now"; done ```