-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
Recommended path: the one-click installer. It installs Docker if needed, writes /opt/sounddock, pulls the published image, and starts Compose. No git clone.
-
Create an application at Discord Developer Portal.
-
OAuth2 → Redirects add:
{PUBLIC_URL}/api/v1/auth/discord/callbackExamples:
http://127.0.0.1:8080/api/v1/auth/discord/callbackorhttps://music.example.com/api/v1/auth/discord/callback -
Scope:
identifyonly. -
Copy Client ID and Client Secret.
-
Copy your Discord user snowflake (Developer Mode → right-click your avatar → Copy User ID). That account is administrator on every container start (
SOUNDDOCK_ADMIN_DISCORD_ID).
export SOUNDDOCK_IMAGE=ghcr.io/skila1/sounddock:latest
curl -fsSL https://raw.githubusercontent.com/Skila1/SoundDock/main/install.sh | sudo bashThe installer asks for:
| Prompt | What to enter |
|---|---|
| Public URL | How you will open SoundDock (http://127.0.0.1:8080 or your HTTPS URL) |
| Discord client ID | From the Discord application |
| Discord client secret | From the Discord application |
| Admin Discord user ID | Your snowflake (comma-separated if several admins) |
| Host library folder | Folder on the host mounted read-only at /libraries (default /opt/sounddock/libraries) |
| Native Discord bot worker |
y to enable the discord Compose profile (see Extras) |
| Cloudflare Tunnel token | Paste a tunnel token to enable cloudflare, or leave blank |
Secrets (SOUNDDOCK_MASTER_KEY, Postgres password) are generated for you. Existing /opt/sounddock/.env is kept; Discord fields are updated.
Open the public URL and Continue with Discord. There is no first-run password.
sudo bash /opt/sounddock/../install.shKeep a copy of install.sh (or re-download it). Control commands:
sudo bash install.sh status
sudo bash install.sh logs
sudo bash install.sh update
sudo bash install.sh doctor
sudo bash install.sh uninstall # keeps /opt/sounddock/data
sudo bash install.sh uninstall --purge # deletes data and volumesDefault prefix: /opt/sounddock (SOUNDDOCK_PREFIX to change).
Copy docker-compose.yml and .env.example → .env from the repo. Set Discord IDs/secrets, SOUNDDOCK_IMAGE=ghcr.io/skila1/sounddock:latest, then:
docker compose pull
docker compose up -dPostgreSQL 16 is required. FFmpeg is optional (transcode + Discord PCM).
cp .env.example .env
docker compose up -d --build