A work in progress, feature rich music organization app built for the music hoarder. Heavily under development, focused on ease of usage and start up. Feel free to check the docs or demo
See the deepwiki
|
|
- Music Library Management: Organize and browse albums, artists, and tracks
- Downloading: Download tracks and albums.
- Importing: Import music from directories with automatic fingerprinting
- Metadata Tagging: Auto-tag using MusicBrainz and Discogs APIs
- Telegram Integration: Control via Telegram bot
- Web UI: Mobile-friendly interface for all operations
- Job Management: Background processing for downloads, imports, and synced lyrics and more.
Documentation: https://soulsolid.contre.io Demo: https://soulsolid-demo.contre.io
The application can run without copying config.yaml into the container. If no config file exists, it will automatically create one with sensible defaults.
Soulsolid supports environment variables in configuration files using the !env_var tag:
telegram:
token: !env_var TELEGRAM_BOT_TOKEN
metadata:
providers:
discogs:
secret: !env_var DISCOGS_API_KEYThe application will fail to start if a referenced environment variable is not set.
# Build the image
podman build -t soulsolid .
# Run with environment variables
podman run -d \
--name soulsolid \
-p 3535:3535 \
-v /host/music:/app/library \ <-- Music will be imported (copied/moved) TO this folder
-v /host/downloads:/app/downloads \ <-- Music will be import FROM this folder
-v /host/logs:/app/logs \ # optional
-v /host/library.db:/data/library.db \
-v /host/config.yaml:/config/config.yaml \
soulsolidThe web interface will be available at http://localhost:3535.
To set up the development environment:
cp config.example.yaml config.yaml
npm run dev
go run ./src/main.goIf you have Nix installed, use the provided dev.nix shell:
# Set up all dependencies (Node.js, Go, etc.) and run the necessary commands
nix-shell dev.nix
# Then, simply run:
go run ./src/main.goThe web interface will be available at http://localhost:3535.


