How To Install

  • 1 novnc opening
    NoVnc landing page, clic "connect"

How to Install (Docker) — Spotycast

This page covers the Docker deployment, then shows how to manually run the Free or Premium installer binaries shipped inside the container to stream Spotify to Roon via Liquidsoap → Icecast.

1) Deploy the Docker Compose stack Portainer Stack / Docker Manager

Important: deploying the Docker Compose stack does not install Free or Premium (for now). It only deploys the container (GUI + required environment). You will enable Free/Premium manually in step 2 or 3.

Prerequisites

  • A Linux host with Docker + Docker Compose plugin installed.
  • Portainer (Stacks) or your Docker Manager UI capable of deploying a Compose file.
  • Network access to the host for:
    • noVNC / VNC (optional GUI management)
    • Icecast (audio endpoint for Roon)

Recommended ports (example)

Keep them consistent with your current setup. Below is a common baseline (adapt as needed).

# SSH into container (optional)
2222:22

# VNC / noVNC (optional)
5901:5901
6080:6080

# Icecast HTTP
28000:8000

Docker Compose file (template)

Paste this in Portainer → StacksAdd stackWeb editor, or in your Docker Manager “Compose / Stack” editor.

services:
  spotycast:
    image: chourmovs/debian13-vnc-novnc-ssh:latest
    container_name: spotycast
    restart: unless-stopped

    ports:
      - "2222:22"        # SSH
      - "5901:5901"      # VNC
      - "6080:6080"      # noVNC (web)
      - "28000:8000"     # Icecast

    environment:
      # Optional non-root user
      USERNAME: "debian"
      USER_UID: "1000"
      USER_GID: "1000"

      # Credentials (CHANGE THESE)
      SSH_PASSWORD: "CHANGE_ME"
      VNC_PASSWORD: "CHANGE_ME"
      ROOT_PASSWORD: "CHANGE_ME"
      ALLOW_ROOT_SSH: "yes"

      # noVNC display
      VNC_GEOMETRY: "1600x900"
      VNC_DEPTH: "24"

    volumes:
      - /etc/localtime:/etc/localtime:ro
Portainer (Stack) deployment:
  • Stacks → Add stack
  • Name: spotycast
  • Paste the compose YAML
  • Deploy the stack
CLI deployment (optional):
mkdir -p spotycast && cd spotycast
nano docker-compose.yml
docker compose up -d
docker compose ps

Open the container GUI (noVNC)

  • Open: http://<HOST>:6080/vnc.html
  • Log in with your noVNC password (if configured by your image)
  • Launch LXTerminal (or the terminal available in your desktop session)

2) Install / Enable the Free version manual binary launch

Current behavior: the Free installer binary is already present in /root/binaries inside the container and is executable. You just have to run it manually from LXTerminal.

Run the Free installer binary

  1. Open LXTerminal inside the container GUI session.
  2. Run:
cd /root/binaries
./spotifyd-free

What the Free installer does (high level)

  • Configures the audio pipeline (Spotify playback → PulseAudio → Liquidsoap → Icecast).
  • Starts the required services inside the container.
  • Exposes Icecast mountpoints once streaming is active.

Quick validation

  • Open Icecast: http://<HOST>:28000
  • Check mountpoints and that playback is stable.

3) Install / Enable the Premium version after purchase

Upgrade note: if you previously enabled the Free version, uninstall/disable it first to avoid conflicts (duplicate services, ports, or overlapping configs).

Step 3.1 — Disable / uninstall Free (if installed)

Use your Free uninstall mechanism if you provide one. If you don’t yet ship it, stop the Free services before continuing.

# Run
# cd /root/binaries && ./spotifyd-free --cmd uninstall

Step 3.2 — Run the Premium installer binary

Current behavior: the Premium installer binary is already present in /root/binaries inside the container and is executable. You run it manually from LXTerminal.
cd /root/binaries
./spotifyd-premium

Activation

  • When prompted, paste your license key (format typically: SPOT-XXXX-XXXX-XXXX).
  • The installer validates the key, fetches the Premium payload, and install all needed.
  • Unlike free version, you will need to launch spotyfy desktop by running the command “spotycast-start-spotify” in your terminal .
  • Before you go, you’ll need to login to your spotify and choice lossless quality in the settings .

Post-install checks

  • Icecast UI: http://<HOST>:28000
  • Mountpoints visible and stable, audio flowing.
# Optional diagnostics inside container
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