Skip to content
Skila edited this page Aug 21, 2026 · 9 revisions

Extras

Optional services are Compose profiles. The one-click installer only prompts for Discord bot and Cloudflare Tunnel. Redis and Meilisearch live in the repo docker-compose.yml and are not written into /opt/sounddock unless you add them yourself.

Work from /opt/sounddock after install (docker compose + .env there).

Discord bot worker

Plays from your SoundDock library only (no Lavalink, YouTube, or Spotify ripping).

During install: answer y to “Enable native Discord bot worker”. You can paste a bot token then, or set it later.

After install:

  1. Put the bot token in /opt/sounddock/.env:

    SOUNDDOCK_DISCORD_BOT_TOKEN=...
    

    or set it in Admin → Integrations → Discord.

  2. Start the profile:

    cd /opt/sounddock
    docker compose --profile discord up -d
  3. In the web UI use Invite SoundDock Bot (do not hand-build OAuth URLs).

  4. Link accounts with /link in Discord, then complete the challenge in the web UI. Never type SoundDock credentials into Discord.

The worker uses the same image as the API (command: ["discord"]).

Cloudflare Tunnel

Expose SoundDock without opening a port.

  1. Create a tunnel in the Cloudflare Zero Trust dashboard and copy the token.

  2. During install: paste the token when asked.

  3. After install: add to .env:

    CLOUDFLARE_TUNNEL_TOKEN=...
    SOUNDDOCK_PUBLIC_URL=https://your-hostname
    SOUNDDOCK_COOKIE_SECURE=true
    

    Then:

    cd /opt/sounddock
    docker compose --profile cloudflare up -d
  4. Point the tunnel at the sounddock service port 8080. Update the Discord OAuth redirect to https://your-hostname/api/v1/auth/discord/callback.

Host music folder

The installer bind-mounts a host directory to /libraries:ro. Default: /opt/sounddock/libraries.

  • Drop files there, then add a library in the UI that points at /libraries (or a subfolder).
  • To change the host path later, set SOUNDDOCK_LIBRARY_HOST when running Compose, or edit the volume in docker-compose.yml.

Redis (repo Compose)

Not in the one-click compose file. With a git checkout:

# .env
SOUNDDOCK_REDIS_URL=redis://redis:6379/0

docker compose --profile redis up -d

Meilisearch (repo Compose)

Optional search backend. With a git checkout:

# .env
SOUNDDOCK_MEILISEARCH_URL=http://meilisearch:7700
SOUNDDOCK_MEILISEARCH_KEY=a-long-random-key

docker compose --profile search up -d

Metrics

SOUNDDOCK_METRICS_ENABLED=true
SOUNDDOCK_METRICS_TOKEN=...

Prometheus scrape: /metrics (token required when set).

Several extras at once

cd /opt/sounddock
docker compose --profile discord --profile cloudflare up -d

Installer-generated compose does not include Redis/search. Copy those services from the repo docker-compose.yml if you need them on a one-click host.

Clone this wiki locally