How to Install Spotycast with Docker
This page covers the Docker deployment, then shows how to manually run the installer binaries shipped inside the container to publish Spotify as a stable Icecast / HTTP stream for your players. If you want the high-level overview first, start with the Spotify to Icecast bridge guide.
1) Deploy the Docker Compose stack
This page is the practical installation path for Spotycast. For the conceptual overview of why this architecture exists and what a Spotify to Icecast bridge actually does, see Spotify to Icecast.
Prerequisites
- An I386/AMD64 Linux host such as a NAS, server or Proxmox instance with Docker and the Docker Compose plugin.
- Portainer Stacks, recommended, or another Docker management UI able to deploy a Compose file.
- Network access to the host for noVNC / VNC, optional, and Icecast, which exposes the audio endpoint.
Recommended ports (example)
Keep ports consistent with your current setup. Below is a common baseline you can adapt.
# SSH into container (optional)
2222:22
# VNC / noVNC (optional)
5901:5901
6080:6080
# Icecast HTTP
28000:28000
Docker Compose file (template)
Paste this into Portainer → Stacks → Add stack → Web editor, or your Compose / Stack editor.
services:
spotycast:
image: chourmovs/debian13-vnc-novnc-ssh:latest
container_name: spotycast
restart: unless-stopped
# mandatory for free version only
network_mode: host
privileged: true
shm_size: "1gb"
ports:
- "2222:22"
- "5901:5901"
- "6080:6080"
- "28000:28000"
environment:
# Session interactive / desktop
USERNAME: "radio"
USER_UID: "1000"
USER_GID: "1000"
# Access
SSH_PASSWORD: "hackme"
VNC_PASSWORD: "hackme"
ROOT_PASSWORD: "hackme"
ALLOW_ROOT_SSH: "yes"
VNC_GEOMETRY: "1600x900"
VNC_DEPTH: "24"
ICECAST_PORT: "28000"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./spotycast-data:/data
Portainer deployment
Stacks → Add stack → name it spotycast → paste YAML → deploy.
CLI deployment (optional)
Use this if you prefer a terminal-only workflow.
mkdir -p spotycast && cd spotycast
nano docker-compose.yml
docker compose up -d
docker compose ps
Open the container GUI
Open noVNC at http://<HOST>:6080/vnc.html, then launch LXTerminal.
2) Install / Enable the Free version
Run the Free binary
cd /root/binaries
./spotifyd-free
What the Free installer does
- Configures the audio pipeline, typically Spotify playback → PulseAudio → Liquidsoap → Icecast.
- Starts the required services inside the container.
- Exposes Icecast mountpoints once playback becomes active.
Quick validation
- Open Icecast at http://<HOST>:28000.
- Verify the expected mountpoints are visible.
- Start Spotify playback and check that the stream remains stable from your player side.
3) Install / Enable the Premium version
Run the Premium binary
cd /root/binaries
./spotifyd-premium
Activation
- When prompted, paste your Premium installation key.
- The installer validates the key and enables Premium features.
- For the Premium workflow, launch Spotify Desktop with:
export DISPLAY=:1
spotycast-start-spotify
- Log into Spotify Desktop, then select the desired quality level, including Lossless where available in your environment.
Diagnostics
If installation succeeds but playback or mountpoint exposure does not behave as expected, inspect the service logs below. For broader architecture context, cross-check with How it works.
tail -n 200 /var/log/spotify-roon-bridge/liquidsoap.stderr.log || true
tail -n 200 /var/log/spotify-roon-bridge/icecast2.stderr.log || true
tail -n 200 /var/log/spotify-roon-bridge/pulseaudio.stderr.log || true




