TuneBox is a web-based jukebox suite that allows you to manage and play music from your Plex server. The idea is to have a central Jukebox, but still allow access to other devices. Meant for collective music listening at parties. It features a modern interface for interacting with your Plex music library, managing the queue, and controlling music playback.
- Plex Integration: Seamlessly integrates with your Plex server to browse and play music.
- Playback Queue: Manage the queue of songs to be played and automatically update it in real-time.
- Responsive Web Interface: Control your music from any device with a modern web browser.
TuneBox is built with the following technologies:
- FastAPI: The backend is powered by FastAPI, providing a fast, efficient API for interacting with the Plex server and managing the playback queue.
- Redis: Used for caching and managing the state of the playback queue, ensuring quick access and synchronization across clients.
- React: The frontend is built with React, offering a dynamic and responsive interface for interacting with the application.
- WebSockets: WebSockets are used for real-time communication, keeping the queue and playback state in sync across all connected clients.
- A running Plex server
- Docker
- Docker Compose
- A running Plex Client available for remote play (
NOTE:
Needs to be on the same subnet as your plex server or have the necessary broadcast traffic forwarded between subnets)
- Clone the repository:
git clone https://github.com/soehlert/TuneBox.git
- Enter the directory:
cd TuneBox
- Create a .env file in the root directory and configure it with your Plex server details. The .env file
should look like this (where CLIENT_NAME is according to your Plex client):
PLEX_BASE_URL=your_plex_server_ip # Example: https:/192.0.2.0:32400 PLEX_TOKEN=your_plex_token CLIENT_NAME=Macbook Pro Personal REDIS_URL=redis://localhost:6379 TUNEBOX_URL=localhost:8000 # or DNS name or IP address of your Tunebox host
- Create a frontend/.env file and configure it with. Unfortunately Vite requires us to use a separate .env file
inside the frontend directory
VITE_TUNEBOX_URL=localhost # or DNS name or IP address of your Tunebox host
- Build the Docker images and start the services:
docker compose up -d --build
- Access the webUI(s):
- main page: http://localhost
- fastAPI swagger page: http://0.0.0.0:8000/docs#/
Contributions are welcome! Feel free to open issues or submit pull requests if you encounter bugs or want to add new features.
This project is open-source and available under the MIT License.