You have 3 development options. Each option has its pros and cons. To interact with GPIO or other hardware, it's required to develop directly on a Raspberry Pi. For general development of Python code (Jukebox) or JavaScript (Web App), we recommend Docker. Developing on your local machine (Linux, Mac, Windows) works as well and requires all dependencies to be installed locally.
There is a complete Docker setup.
The full setup is running on the RPi and you access files via SSH.
We recommend to use at least a Pi 3 or Pi Zero 2 for development. While this hardware won't be needed in production, it comes in helpful while developing.
- Follow the installation preperation steps
- Install your feature/fork branch of the Jukebox software. The official repository will be set as
upstream
. - If neccessary build the Web App locally
The jukebox also runs on any Linux machine. The Raspberry Pi specific stuff will not work of course. That is no issue depending our your development area. USB RFID Readers, however, will work. You will have to install and configure MPD (Music Player Daemon).
In addition to the requirements.txt
, you will this dependency. On the Raspberry PI, the latest stable release of ZMQ does not support WebSockets. We need to compile the latest version from Github, which is taken care of by the installation script. For regular machines, the normal package can be installed:
pip install pyzmq
You will have to start Jukebox core application and the WebUI separately. The MPD usually runs as a service.
You can also use WSL on Windows 10 or 11. This section describes how to use WSL with Visual Studio Code.
- Install a Debian or Ubuntu image from Microsoft Store
- Install the extension Remote Explorer in Visual Studio Code
- Select Remote Explorer
- Select "WSL Targets"
- Right-click on the previously installed WSL image and select "Connect in Current/New Window"
- Follow the instructions from above