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 (default /opt/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 the install directory (default /opt/sounddock). Use an absolute path. ~/sounddock is expanded to /root/sounddock when you are root. Run Compose from that directory. 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). 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 /opt/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 the first Discord administrator 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