Beetiful is a modern, user-friendly web frontend for the beets music library manager. It lets you browse, search, edit, and manage your music collection from any browser, with full support for lyrics, plugins, and more.
- Browse and search your beets music library
- View and edit track, album, and artist metadata
- Fetch and display lyrics (with LRC/timed support)
- Plugin management (enable/disable built-in plugins)
- Config editor with YAML validation
- Responsive, dark-themed UI
- Dockerized for easy deployment
-
Clone the repository:
git clone https://github.com/yourusername/beetiful.git cd beetiful -
Edit
docker-compose.yml:- Set the path to your music library in the
volumessection (e.g./path/to/your/music:/music:ro). - Optionally, adjust ports and config paths as needed.
- Set the path to your music library in the
-
Start Beetiful:
docker compose up -d
-
Open in your browser:
- Visit http://localhost:3000
- The beets config is stored in the
configdirectory (mounted as/configin the container). - Edit your config using the web UI or by editing
config.yamldirectly. - Plugins can be enabled/disabled from the Plugins page.
- Docker and Docker Compose
- Your music library (FLAC, MP3, etc.)
- The app is a Flask backend with a static HTML/JS frontend.
- To run locally (without Docker):
- Install Python 3.11 and beets
pip install -r requirements.txtpython app.py
- If lyrics are not showing, ensure your beets library has the
lyricsfield populated. Use the web UI or run:beet ls -f '$lyrics' id:<track_id>
- For permission issues, check your Docker volume mounts and user permissions.
MIT