Sterio Server · Docker

Set it up on your NAS.

Fill in a few details and get the one file Docker needs, or write them yourself from the manual.

Everything stays in your browser; nothing you type here is sent anywhere.

Where it runs

Fill in the NAS address to turn the dashboard on; until then it stays off.

The dashboard on port 7767 is for your local network only. Never open it in your router.

Your music folder

1. Make the sterio-server folder

This makes /volume1/docker/sterio-server and the data folder inside it, where the server keeps its library. Over SSH:

commands
sudo mkdir -p /volume1/docker/sterio-server/data
sudo chown 1026:100 /volume1/docker/sterio-server/data

2. Put compose.yaml in it

It has everything in it; no other file is needed. It has to sit directly in /volume1/docker/sterio-server and be named exactly compose.yaml.

compose.yaml
# Sterio Server, made with the configurator on the Sterio site.
services:
  sterio:
    image: ghcr.io/sorinb99/sterio-server:beta
    container_name: sterio
    restart: unless-stopped
    init: true
    user: "1026:100"
    ports:
      - "0.0.0.0:7766:7766"
    environment:
      SERVER_NAME: "Sterio NAS"
      PORT: "7766"
      ADMIN_ENABLED: "false"
      MUSIC_DIR: /music
      DATA_DIR: /data
      BASE_PATH: ""
      SCAN_INTERVAL_SECONDS: "3600"
      MAX_PCM_RATE: "192000"
      CACHE_MAX_MB: "20480"
      CACHE_MAX_DAYS: "30"
    volumes:
      # Read-only unless you turn on Split albums into tracks.
      - type: bind
        source: "/volume1/music"
        target: /music
        read_only: true
      - type: bind
        source: "/volume1/docker/sterio-server/data"
        target: /data
    read_only: true
    tmpfs:
      - /tmp:size=128m,mode=1777
    cap_drop: [ALL]
    security_opt:
      - no-new-privileges:true
    stop_grace_period: 20s

Upload it into /volume1/docker/sterio-server with your NAS's file manager (File Station), or over SSH run sudo nano /volume1/docker/sterio-server/compose.yaml, paste it and save.

3. Start it

Over SSH:

commands
cd /volume1/docker/sterio-server
docker compose pull
docker compose up -d

Or in Container Manager: Project → Create and pick /volume1/docker/sterio-server; it finds compose.yaml there.

Check that it runs: http://NAS-IP:7766/healthz shows "status":"ok".

4. Connect Sterio

In the app, choose Sterio Server, enter http://NAS-IP:7766 and tap Connect. Then accept the 4-digit code on the dashboard, or from an admin device in the app.

To update later: docker compose pull && docker compose up -d. Beta builds stop serving music 90 days after they're built.