Beryl is a self-hosted music library manager built with Laravel. It allows you to organize, browse, and stream your music collection from anywhere.
- 🎵 Music file scanning and organization
- 🔍 Metadata extraction and management
- 🎧 Browser-based music streaming
- 🔄 Real-time updates with Laravel Reverb
- 📱 Responsive design for desktop and mobile
- 🐳 Easy installation with Docker
This is the easiest way to get Beryl up and running in production. No need to clone the repository or manage source code. Everything (Laravel, nginx) runs in a single container.
- Docker installed on your system
- A folder containing your music files
- Create a directory for Beryl (optional):
mkdir beryl && cd beryl- Create a
docker-compose.ymlfile with the following minimal content:
version: '3.8'
services:
beryl:
image: mydnic/beryl:latest
restart: unless-stopped
container_name: beryl
ports:
- "4387:80"
volumes:
- /path/to/your/music:/music # Change this to your music folder
- /path/to/your/data:/var/database # SQLite DB persistence
environment:
- SPOTIFY_CLIENT_ID= #optional
- SPOTIFY_CLIENT_SECRET= #optional
- LASTFM_API_KEY= #optional
- LASTFM_SECRET_KEY= #optional-
Edit the
docker-compose.ymlfile to set the correct paths for your music folder. -
Start the application:
docker compose up -d- Access Beryl at http://localhost:4387
Note:
- All persistent user data is in your music folder and the SQLite database file you mount.
- By default, the app will be available on port 4387. You can change this in the
docker-compose.ymlfile.
Beryl needs access to your music files. During installation, you'll need to configure the path to your music folder in the docker-compose.yml file. This folder should contain your music files organized in any structure you prefer.
Supported audio formats:
- MP3
- FLAC
- M4A
- WAV
- OGG
- AAC
- WMA
- AIFF
- ALAC
The following environment variables can be customized in your docker-compose.yml file:
BERYL_PORT: The port for the web interface (default: 4387)
- Log in to Beryl
- Navigate to the Music section
- Click "Scan Library"
The scanning process will run in the background. For large libraries, this may take some time.
Once your library is scanned, you can browse and play your music directly in the web interface.
If you encounter any issues or have questions, please open an issue on the GitHub repository.
Beryl is open-source software licensed under the MIT license.