Skip to content

Installation

Skila edited this page Aug 21, 2026 · 11 revisions

Installation

One command. A whiptail TUI (same idea as Proxmox helper scripts) writes a Docker Compose project in ./sounddock under the current directory. From your home directory that is ~/sounddock. Docker publishes port 8080. Optional Cloudflare Tunnel is how you get a public hostname. You do not set an IP. Discord is not asked at install. Do not apt install docker.

Published image: ghcr.io/skila1/sounddock:latest

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/Skila1/SoundDock/main/install.sh)"

The installer writes docker-compose.yml and .env into ./sounddock under the directory you ran it from. There is no path prompt. If you are already in a folder named sounddock, it installs there. Cloudflared, if enabled, is a systemd service. Point the tunnel at http://localhost:8080.

Open http://<host>:8080 and create the first local administrator. Configure Discord later under Admin → Discord (client ID, secret, sign-in toggle, bot). Paste your Discord user ID under Administrators so you keep admin when you sign in with Discord. The page shows the OAuth redirect URL to paste into the Discord developer portal. If Discord sign-in is on and there is not already an administrator, the first Discord user becomes administrator.

cd ~/sounddock
docker compose ps
docker compose logs -f
docker compose down
docker compose pull && docker compose up -d

Unattended:

sudo env SD_UNATTENDED=1 bash -c "$(curl -fsSL https://raw.githubusercontent.com/Skila1/SoundDock/main/install.sh)"

Discord application (when you want it)

  1. Create an app at the Discord Developer Portal.
  2. Copy the OAuth redirect from Admin → Discord into OAuth2 → Redirects.
  3. Paste client ID and secret there, turn on sign-in.

Who may register with Discord

In Admin → Discord, two independent toggles for new Discord accounts: require server, require role. Existing users and Discord IDs listed under Administrators are not blocked.

Compose without the installer

Copy docker-compose.yml and .env.example to .env. Set SD_IMAGE=ghcr.io/skila1/sounddock:latest. Leave Discord out of .env.

docker compose pull
docker compose up -d

Clone this wiki locally