Docker Development
Run a full Music Assistant instance with the Zvuk Music provider using a single command — no Python, FFmpeg, or other dependencies required.
Requirements
Section titled “Requirements”Quick start
Section titled “Quick start”docker compose -f docker-compose.dev.yml upOpen http://localhost:8095 in your browser.
First launch: creating a user
Section titled “First launch: creating a user”On first start, MA runs a setup wizard:
- Create a user — set a login and password (stored locally in
.ma-data/) - Skip the Home Assistant integration if prompted
- Login credentials persist across container restarts via the
.ma-data/volume
Connecting the Zvuk Music provider
Section titled “Connecting the Zvuk Music provider”After logging in:
- Go to Settings → Providers
- Find Zvuk Music in the list — it is already available, the code is loaded automatically
- Click Add and enter your credentials
- Provider configuration is saved in
.ma-data/and survives restarts
💡 If the provider does not appear — check the logs (
docker compose -f docker-compose.dev.yml logs). Any startup errors will be visible there.
Container management
Section titled “Container management”| Action | Command |
|---|---|
| Start | docker compose -f docker-compose.dev.yml up |
| Start in background | docker compose -f docker-compose.dev.yml up -d |
| Stop | docker compose -f docker-compose.dev.yml down |
| Restart | docker compose -f docker-compose.dev.yml restart |
| Logs | docker compose -f docker-compose.dev.yml logs -f |
| Reset state | rm -rf .ma-data/ → start again |
Provider code changes
Section titled “Provider code changes”The code from provider/ is mounted into the container via a symlink.
Changes are picked up after restarting the container — no image rebuild needed:
docker compose -f docker-compose.dev.yml restartState persistence
Section titled “State persistence”All MA config, provider credentials, and cache are stored in .ma-data/ (add to .gitignore).
The folder is created automatically on first launch.