sudo pip install musicazoo
musicazoo
Navigate to http://localhost:8080/index.html in a web browser. Alternatively, from the command line:
mz help
git clone https://github.com/zbanks/musicazoo.git
cd musicazoo
pip install -r requirements.txt
. init.sh
./run_musicazoo.sh settings.json
Musicazoo is split into several services:
- Web server (a WSGI object)
- Queue (handles life, death, and control of modules)
- Volume (handles volume control)
- NLP (exposes a plain-text command interface)
It is probably helpful to debug these without supervisor, in which case you should simply run each one in a separate terminal.
. init.sh
python -m shmooze.wsgi
python -m musicazoo.queue
python -m musicazoo.volume
python -m musicazoo.nlp
The WSGI service exposes several JSON endpoints. By default:
- /queue
- /vol
- /nlp
It also puts up up the static web interface at http://localhost:8080/index.html.
You can interact with the JSON endpoints directly using debug/raw.py.
Alternatively, you can interact with the NLP endpoint using the mz command-line tool.
First, install musicazoo. Although you can install it from pip, it is easier to configure by cloning from git:
git clone https://github.com/zbanks/musicazoo.git
cd musicazoo
pip install -r requirements.txt
Installing from git makes it easier to configure your system.
Now, edit supervisord.conf and settings.json. Although the given configurations will work out of the box, you may want to disable supervisord's web interface (or at least change the password). The name/colors can be changed in settings.json.
Once everything is configured, run:
sudo python setup.py install
And test your installation by running musicazoo and navigating to http://localhost:8080/index.html.
Running the supervisord daemon on startup depends on your system. There are a collection of scripts for many systems available here. There is general advice for configuring supervisord for Linux available here.
You will likely need to symlink or copy your supervisord.conf to /etc/supervisor/supervisord.conf and make sure that the pidfile in supervisord.conf corresponds to PIDFILE in your init script.