SonosControl is a deployer-friendly Blazor control centre organised around everyday playback, a unified source library, scene-based automation, listening insights, and role-aware administration.
services:
sonos:
build:
context: .
dockerfile: Dockerfile
image: sonoscontrol:local
container_name: sonoscontrol
restart: unless-stopped
ports:
- "8080:8080"
environment:
TZ: Europe/Vienna
ADMIN_USERNAME: admin
ADMIN_EMAIL: admin@example.com
ADMIN_PASSWORD: ChangeMe123!
PLAYBACK_PUBLIC_BASE_URL: http://192.168.1.50:8080
volumes:
- ./Data:/app/Data
- ./DataProtectionKeys:/app/DataProtectionKeys
- ./artifacts:/app/artifactscp .env.example .env
docker compose up -d --buildOpen http://localhost:8080 and sign in with the seeded admin account.
Set PLAYBACK_PUBLIC_BASE_URL to the LAN URL that your Sonos devices can reach. localhost does not work for YouTube audio streaming to Sonos.
PowerShell:
dotnet restore
Copy-Item SonosControl.Web/Data/config.template.json SonosControl.Web/Data/config.json -ErrorAction SilentlyContinue
dotnet run --project SonosControl.Web --urls http://localhost:5107Bash:
dotnet restore
cp -n SonosControl.Web/Data/config.template.json SonosControl.Web/Data/config.json
dotnet run --project SonosControl.Web --urls http://localhost:5107Then open http://localhost:5107.
| Home | Library | Automation | Insights | Administration |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| Home | Library | Automation | Insights | Administration |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| Home | Library | Automation | Insights | Administration |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| Home | Library | Automation | Insights | Administration |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
- Expanded Home player plus a compact sticky mini-player with queue, room, group, sync, timer, and coalesced volume controls.
- One Library for saved TuneIn, Spotify, YouTube, and YouTube Music sources, Radio Browser discovery, and recommendations.
- Reusable scenes, ordered recurring schedules, date exceptions, fades, and migration from legacy day-based automation.
- Role-based access (
operator,admin,superadmin) with registration control. - Responsive listening statistics and a searchable read-only activity trail.
- Separate administration areas for devices, system settings, users, and recoverable configuration backups.
- Health and metrics endpoints (
/healthz,/metricsz) for basic monitoring. - Docker image includes
ffmpegandyt-dlpfor YouTube audio playback without extra sidecars.
- Deploy and Config Guide
- Docker Operations
- Operations and Observability
- Testing and Troubleshooting
- Warning triage notes
- Contributing Guide
Contribution workflow, README asset maintenance, and screenshot refresh instructions are documented in CONTRIBUTING.md.
SonosControl is released under the Don't Be a Dick Public License.
- Docker Hub: https://hub.docker.com/r/darkatek7/sonoscontrol
- ByteDev.Sonos: https://github.com/ByteDev/ByteDev.Sonos
- Radio Browser: https://www.radio-browser.info/
- ASP.NET Core docs: https://learn.microsoft.com/aspnet/core



















