start here
Install
One container, host networking so it can discover your speakers, one folder that holds everything. Back up that folder and you have backed up the install.
Requirements
- Docker (recommended) — the quickest way to run the server. It can also run directly on Node.js 20 or newer.
- Port 7090 free on the host. The Loxone integration additionally uses 7091 and 7095, but only while it is enabled.
- A Linux host if you want to mount a network share as your music library — this needs Unix mount tooling such as
mount.cifs. On Windows, point the library at a local folder instead.
| port | used for | when |
|---|---|---|
7090 | Admin UI, web player, public API, Subsonic API, WebDAV, DLNA, audio streams | always |
7091 | Loxone native app protocol | Loxone enabled |
7095 | Loxone Miniserver protocol | Loxone enabled |
Docker compose
curl -LO https://raw.githubusercontent.com/sonn-audio/core/main/docker-compose.yml docker compose up -d
That starts a container named sonn-core in host network mode, which is
what lets the server discover Sonos, Chromecast, AirPlay and DLNA devices on your network without
extra flags. Because host mode bypasses port publishing, make sure ports 7090, 7091 and 7095 are free
on the host.
To keep your configuration and library across restarts, add a bind mount to the service in
docker-compose.yml:
volumes:
- ./data:/app/data
Everything the server stores lives in that one folder. Back it up and you have backed up the install.
Docker run
docker run -d \ --name sonn-core \ --network host \ -v $(pwd)/data:/app/data \ ghcr.io/sonn-audio/core:latest
Then open http://<server-ip>:7090 and continue with First setup.
Bridge networking
Host networking is recommended because discovery — how the server finds Sonos, Chromecast, AirPlay
and DLNA devices — needs it. On bridge networking, expect to assign some outputs by IP by hand. Drop
--network host and publish the ports instead:
-p 7090:7090 -p 7091:7091 -p 7095:7095
Without Docker
Needs Node.js 20 or newer (Docker images and CI build on Node 24) and npm.
git clone https://github.com/sonn-audio/core.git cd core mkdir -p data # config, logs and cache live here npm install npm run build npm start
Building the image yourself
docker compose up -d always pulls the published image and never builds, so it works on a
host without the source checkout. If you have the repository checked out and want to build locally
instead, layer the build override on top:
docker compose -f docker-compose.yml -f docker-compose.build.yml build docker compose up -d