Skip to content

realies/soulseek-docker

Repository files navigation

Soulseek Docker Container

GitHub Workflow Status Docker Build Docker Pulls Docker Image Size

Soulseek Docker Container Screenshot

Prerequisites

  • Docker installed on your machine or server
  • Port 6080 open and accessible for noVNC web access (or reverse proxied, nginx example at soulseek.conf)
  • Ports required by Soulseek open and forwarded from your router to the Docker host machine

Setup

  1. Map port 6080 on the host machine to port 6080 on the Docker container.
  • If using a GUI or webapp (e.g., Synology) to manage Docker containers, set this configuration option when launching the container from the image.
  • With Docker CLI, use the -p 6080:6080 option.
  1. Map the ports Soulseek uses on the Docker container.
  • The first time it runs, Soulseek starts up using a random port. It can also be manually configured in Options -> Login.
  • Wait for a Soulseek settings file to appear in /data/.SoulseekQt/1, this is saved every 60 minutes by default but can be forced to be more freuquent from Options -> General.
  • Map both ports from your router to the machine hosting the Docker image, and from the outside of the Docker image to the server within it. See the Soulseek FAQ for more details.
  1. Launch the Docker container and map the required volumes (see How to Launch section below).

  2. Access the Soulseek UI by opening a web browser and navigating to http://docker-host-ip:6080 or https://reverse-proxy, depending on your configuration.

Configuration

The container supports the following configuration options:

Parameter Description
PGID Group ID for the container user (optional, requires PUID, default: 1000)
PUID User ID for the container user (optional, requires PGID, default: 1000)
VNC_PORT Port for VNC server (optional, default: 5900)
NOVNC_PORT Port for noVNC web access (optional, default: 6080)
MODIFY_VOLUMES Modify ownership and permissions of mounted volumes (optional, default: true)
UMASK File permission mask for newly created files (optional, default: 022)
VNCPWD Password for the VNC connection (optional)
VNCPWD_FILE Password file for the VNC connection (optional, takes priority over VNCPWD)
TZ Timezone for the container (optional, e.g., Europe/Paris, America/Vancouver)

How to Launch

Using Docker Compose

version: "3"
services:
  soulseek:
    image: realies/soulseek
    container_name: soulseek
    restart: unless-stopped
    volumes:
      - /persistent/appdata:/data/.SoulseekQt
      - /persistent/downloads:/data/Soulseek Downloads
      - /persistent/logs:/data/Soulseek Chat Logs
      - /persistent/shared:/data/Soulseek Shared Folder
    environment:
      - PGID=1000
      - PUID=1000
    ports:
      - 6080:6080
      - 61122:61122 # example listening port, check Options -> Login
      - 61123:61123 # example obfuscated port, check Options -> Login

Using Docker CLI

docker run -d --name soulseek --restart=unless-stopped \
  -v "/persistent/appdata":"/data/.SoulseekQt" \
  -v "/persistent/downloads":"/data/Soulseek Downloads" \
  -v "/persistent/logs":"/data/Soulseek Chat Logs" \
  -v "/persistent/shared":"/data/Soulseek Shared Folder" \
  -e PGID=1000 \
  -e PUID=1000 \
  -p 6080:6080 \
  -p 61122:61122 \ # example listening port, check Options -> Login
  -p 61123:61123 \ # example obfuscated port, check Options -> Login
  realies/soulseek

Using Docker on Synology DSM

Port Configuration

Synology Docker Port Configuration

  • Port 6080 is used by noVNC for accessing Soulseek from your local network. Only TCP type is needed.
  • Ports 61122 and 61123 are examples; open Soulseek to determine the exact ports to forward. Only TCP type is needed.
  • Configure these ports to forward from your router to the machine hosting the Docker image. See the Soulseek Port Forwarding Guide for more details.

Volume Configuration

Synology Docker Volume Configuration

  • Mount the required directories for Soulseek data persistence.
  • The example mounts an extra directory /music/FLAC for sharing; mount the directory you want to share.