GithubHelp home page GithubHelp logo

realies / soulseek-docker Goto Github PK

View Code? Open in Web Editor NEW
195.0 6.0 34.0 1.27 MB

🐳 Soulseek Docker Container

Home Page: https://hub.docker.com/r/realies/soulseek/

License: MIT License

HTML 9.42% Dockerfile 54.06% Shell 36.52%
soulseek slsk docker container novnc vnc web tigervnc xtigervnc

soulseek-docker's Introduction

Soulseek Over noVNC Docker Container

GitHub Workflow Status Docker Build Docker Pulls Docker Image Size

Setup

  1. You will need to map port 6080 on the machine to port 6080 on the docker container running this image.
    • If you are using a GUI or webapp (e.g. Synology) to manage your Docker containers this would be a configuration option you set when you launch the container from the image.
    • With the Docker CLI the option is -p 6080:6080.
  2. You will need to map whatever port Soulseek wants to use on the Docker container. Soulseek starts up with different (random?) ports. These can be configured from within Soulseek but whatever those ports are, they need to be mapped a) from your router to the machine hosting this docker image and b) from the outside of the docker image to the server within it. See below for more details.
  3. You will probably also want to set up a place on the local disk for Soulseek to work with/download to/etc. While you can of course just point the app at existing folders it is probably wiser to give the app its own siloed off location on disk. Soulseek needs four folders to work with. As an example let's say you wanted Soulseek to work in the /persistent/Soulseek directory. You would set up the directories as follows and then map the volumes (see below for details) when you run the container:
    mkdir -p /persistent/Soulseek
    cd /persistent/Soulseek
    mkdir appdata
    mkdir downloads
    mkdir logs
    mkdir shared

Once that is done you should be able to connect to the machine on port 6080 with a standard web browser through the magic of noVNC. Example: if your docker VM machine has IP 192.168.1.23 you should be able to connect to the Soulseek app running in docker by typing https://192.168.1.23:6080 (or http://192.168.1.23:6080 depending on your machine's security settings) in your browser after launching the container.

Usage

Configuration Parameters

PGID          optional, only works if PUID is set, chown app folders to the specified group id
PUID          optional, only works if PGID is set, chown app folders to the specified user id
NOVNC_PORT    optional, sets the port on which noVNC is started inside the container, defaults to 6080
UMASK         optional, controls how file permissions are set for newly created files, defaults to 0000
VNCPWD        optional, protect tigervnc with a password, none will be required if this is not set
TZ            optional, set the local time zone, for example:
                  Europe/Paris
                  Asia/Macao
                  America/Vancouver
                  ...other values available in /usr/share/zoneinfo

How To Launch

Using Docker Compose
docker-compose up -d
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 \
realies/soulseek
Using Docker On Synology DSM

Port config. Port 6080 is used by noVNC for you to control Soulseek from your local network. Ports 61122 and 61123 are just examples; you will need to open Soulseek to figure out what exact ports to forward. Note also that these ports will need to be configured to forward to the machine hosting this docker image; see Soulseek's port forwarding guide for details on how to do that.

Volume config. Note that the example mounts an extra directory /music/FLAC for sharing; you should mount whatever directory you want to share from:

soulseek-docker's People

Contributors

apurvis avatar gordon00 avatar iammordaty avatar jjgo avatar realies avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

soulseek-docker's Issues

Persistent config

Hi,

I'm trying your docker on unraid and everything seems to work fine. Except that the config is not persisted even with -v "/persistent/appdata":"/root/.SoulseekQt". After rebooting the container I need to log again and modify the options to my liking.
Downloads and log directory are worklng fine.

Am I missing something?

Rescanning Shares

Any idea if there is a way to have the container rescan shares on a schedule? Does it do this automatically on launch?

"File not shared" but can be browsed

I'm facing this strange issue. I setup a folder to share and make it accessible to everyone. I (and other slsk users) can browse this files. However, when attempting to download any file or folder, "File not shared" pops up and obviously nothing is downloaded.
Please advise on how to deal with this issue. I'm running latest version from a docker-compose file, which I can make available if needed.

Thanks for the great job!

Listening ports

Hi

How do soulseek’s listening ports work in this setting? I have the container running in ubuntu, but when I check for the listening ports via netstat I do not get any results. The only port in use is 6080, which I guess it is just for novnc. Do I need to open any port as I used to do with the Windows client?

Thanks

docker stop so slow...

"Docker stop" sends a SIGTERM to pid 1 inside container. But it is not propagated to supervisord root process. So docker stop command takes 10 sec which is the default docker timeout before sending SIGKILL. And SIGKILL does not let any chance to supervisor managed services to exit cleanly.

This behavior is easy to reproduce :

docker exec -it soulseek /bin/bash
kill -TERM 1

Nothing happens.
But if we send a SIGTERM to the pid of supervisord, then all services are stopped and the container exits immediatly.
If we check the docker logs, we can see this :

2022-10-08 14:42:10,645 WARN received SIGTERM indicating exit request
2022-10-08 14:42:10,655 INFO waiting for tigervnc, openbox, novnc, soulseek to die
2022-10-08 14:42:10,662 INFO stopped: soulseek (terminated by SIGTERM)
2022-10-08 14:42:10,680 INFO stopped: novnc (exit status 143)
2022-10-08 14:42:10,727 INFO stopped: openbox (exit status 0)
2022-10-08 14:42:10,817 INFO stopped: tigervnc (exit status 0)

Solution : supervisord should be ran with "exec" command, which purpose is to replace init.sh process by supervisord process.
When we do that, docker stop works like a charm.

Before using exec :

image

After using exec :

image

PR coming...

reverse proxy config

so I've got the container up and running and it works great but when I try to add it to my nginx reverse proxy, the vnc server can't connect, any ideas on how to resolve this? i'll paste below my config statements from compose and the proxy conf

soulseek:
    container_name: soulseek
    restart: always
    volumes:
      - '${DOCKERCONFDIR}/slsk/appdata:/data/.SoulseekQt'
      - '${DOCKERCONFDIR}/slsk/downloads:/data/Soulseek Downloads'
      - '${DOCKERCONFDIR}/slsk/logs:/data/Soulseek Chat Logs'
    environment:
      - pgid=1000
      - puid=1000
      - resize=scale
      - resolution=1280x720
    ports:
      - '6080:6080'
    image: realies/soulseek
    #include /config/nginx/authelia-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /ldaplogin;

        # enable for Authelia
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app soulseek;
        set $upstream_port 6080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location /websockify {
        include /config/nginx/proxy.conf;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass $upstream_proto://$upstream_app:$upstream_port/;
    }

}


image

VNC Failing to Start

Using the :latest image I am running into a problem with VNC starting

Error message in my web browser is:

https://soulseek.mydomain.tld/app/webutil.js:9:9

Below is my compose:

    soulseek:
    container_name: soulseek
    depends_on:
      - qbittorrent
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    image: realies/soulseek:latest
    network_mode: service:qbittorrent
    restart: unless-stopped
    volumes:
      - ${CONF_PATH}/soulseek:/data/.SoulseekQt
      - ${CONF_PATH}/soulseek/logs:/data/Soulseek Chat Logs
      - ${DATA_PATH}/soulseek:/data/Soulseek Downloads
      - ${MEDIA_PATH}:/data/Soulseek Shared Folder

Below is the output of docker logs soulseek:

2022-03-08 13:53:14,188 INFO Set uid to user 99 succeeded
2022-03-08 13:53:14,190 INFO supervisord started with pid 30
2022-03-08 13:53:15,192 INFO spawned: 'tigervnc' with pid 32
2022-03-08 13:53:15,193 INFO spawned: 'openbox' with pid 33
2022-03-08 13:53:15,194 INFO spawned: 'novnc' with pid 34
2022-03-08 13:53:15,195 INFO spawned: 'soulseek' with pid 35
2022-03-08 13:53:16,250 INFO success: tigervnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-08 13:53:16,250 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-08 13:53:16,250 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-08 13:53:16,250 INFO success: soulseek entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

I am routing soulseek through a vpn container but this was not an issue with the previous image. There is no log file being generated in the soulseek log folder either.

Besides updating the image and adjusting the env vars for PUID, PGID and TZ nothing else has changed on my end.

Container fails to start - openbox/novnc exiting with errors

My soulseek container is failing to start properly (possibly due to some error with openbox/novnc?).

I have docker running via docker-compose - has been working properly until pulling a new image recently (see config below):

     soulseek:
       image: realies/soulseek:latest
       container_name: soulseek
       environment:
          - pgid=${PGID} 
          - puid=${PUID} 
          - TZ=America/Chicago
       networks:
          - external
          - internal
       volumes:
          - /opt/appdata/soulseek/config:/data/.SoulseekQt
          - /opt/appdata/soulseek/logs:/data/Soulseek Chat Logs
          - /mnt/storage/Music/SoulseekDownloads:/data/Soulseek Downloads
       restart: always

I get the following log from the container:

    user@server:~$ dcrun logs soulseek
    Attaching to soulseek
    soulseek          | 2022-06-03 18:37:56,995 INFO Set uid to user 0 succeeded
    soulseek          | 2022-06-03 18:37:56,998 INFO supervisord started with pid 12
    soulseek          | 2022-06-03 18:37:58,003 INFO spawned: 'tigervnc' with pid 13
    soulseek          | 2022-06-03 18:37:58,006 INFO spawned: 'openbox' with pid 14
    soulseek          | 2022-06-03 18:37:58,008 INFO spawned: 'novnc' with pid 15
    soulseek          | 2022-06-03 18:37:58,010 INFO spawned: 'soulseek' with pid 16
    soulseek          | 2022-06-03 18:37:58,036 INFO exited: novnc (exit status 1; not expected)
    soulseek          | 2022-06-03 18:37:58,042 INFO exited: openbox (exit status 1; not expected)
    soulseek          | 2022-06-03 18:37:59,151 INFO success: tigervnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    soulseek          | 2022-06-03 18:37:59,153 INFO spawned: 'openbox' with pid 26
    soulseek          | 2022-06-03 18:37:59,155 INFO spawned: 'novnc' with pid 27
    soulseek          | 2022-06-03 18:37:59,156 INFO success: soulseek entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    soulseek          | 2022-06-03 18:37:59,172 INFO exited: novnc (exit status 1; not expected)
    soulseek          | 2022-06-03 18:37:59,288 INFO exited: openbox (terminated by SIGABRT (core dumped); not expected)
    soulseek          | 2022-06-03 18:38:01,294 INFO spawned: 'openbox' with pid 35
    soulseek          | 2022-06-03 18:38:01,298 INFO spawned: 'novnc' with pid 36
    soulseek          | 2022-06-03 18:38:01,310 INFO exited: novnc (exit status 1; not expected)
    soulseek          | 2022-06-03 18:38:01,421 INFO exited: openbox (terminated by SIGABRT (core dumped); not expected)
    soulseek          | 2022-06-03 18:38:04,428 INFO spawned: 'openbox' with pid 44
    soulseek          | 2022-06-03 18:38:04,431 INFO spawned: 'novnc' with pid 45
    soulseek          | 2022-06-03 18:38:04,444 INFO exited: novnc (exit status 1; not expected)
    soulseek          | 2022-06-03 18:38:04,455 INFO gave up: novnc entered FATAL state, too many start retries too quickly
    soulseek          | 2022-06-03 18:38:04,556 INFO exited: openbox (terminated by SIGABRT (core dumped); not expected)
    soulseek          | 2022-06-03 18:38:05,557 INFO gave up: openbox entered FATAL state, too many start retries too quickly

I get the following log from openbox inside the container:

    root@31f51e474ffb:/# cat /tmp/openbox-stderr---supervisor-uf_buif2.log 
    
    (openbox:26): GLib-ERROR **: 18:37:59.182: file ../../../glib/gthread-posix.c: line 1339 (g_system_thread_new): error 'Operation not permitted' during 'pthread_create'
    How are you gentlemen? All your base are belong to us. (Openbox received signal 5)
    
    (openbox:35): GLib-ERROR **: 18:38:01.321: file ../../../glib/gthread-posix.c: line 1339 (g_system_thread_new): error 'Operation not permitted' during 'pthread_create'
    How are you gentlemen? All your base are belong to us. (Openbox received signal 5)
    
    (openbox:44): GLib-ERROR **: 18:38:04.455: file ../../../glib/gthread-posix.c: line 1339 (g_system_thread_new): error 'Operation not permitted' during 'pthread_create'
    How are you gentlemen? All your base are belong to us. (Openbox received signal 5)

Armv7 Support!

I would love to be able to run this on my Raspberry Pi! Please add Armv7 support.

Closed: I'm just an idiot

Please describe the configuration process in detail

I am not familiar with Docker, so I have questions about setting up
Please add an explanation of the commands you specified in "Typical Usage"
I think it will be useful to other users

More specifically, how can I define my file paths?

-v "/persistent/appdata":"/home/user/.SoulseekQt" \ -v "/persistent/logs":"/home/user/Soulseek Chat Logs" \ -v "/persistent/downloads":"/home/user/Soulseek Downloads" \

I have the right train of thought?

How can I specify a folder that I want to open for other users?
As far as I understand, they don’t give me permission to go beyond the container through viewing files in the Soulseek. Files are in /home/user/music

Add build+push pipeline

Hi,

It seems that this is a fairly outdated container. Perhaps we can add a workflow to automatically rebuild and publish?

Something like this might do...

cat .github/workflows/container.yml :

name: 'build'

on:
  push:
    branches:
    - master
  schedule:
    - cron: "0 9 * * *"
jobs:
  build:
    name: 'Build'
    runs-on: ubuntu-latest
    steps:
      - name: "Build:checkout"
        uses: actions/checkout@v2
      - name: 'Build:dockerimage'
        uses: docker/build-push-action@v1
        with:
          registry: ghcr.io
          username: "realies"
          password: ${{ secrets.PAT }}
          repository: realies/soulseek-docker
          tags: latest

Also consider adding versions as ARG in Dockerfile to do easier updates.

e.g.

# Define Args for the needed to add dependencies
ARG NOVNC_VERSION=1.3.0
ARG NOVNC_PACKAGE_URL=https://github.com/novnc/noVNC/archive/refs/tags/v${NOVNC_VERSION}.tar.gz

ARG FA_VERSION=5.15.4
ARG FA_PACKAGE_URL=https://use.fontawesome.com/releases/v${FA_VERSION}/svgs/solid/cloud-download-alt.svg

This would also close #30

PUID and PGID parameters

I have a local user with uid and gid 1000. In my docker-compose file I'm passing the parameters PUID=1000 and PGID=1000, yet Soulseek still creates new files and folders as root user. Other containers that take these same parameters are working properly regarding permissions. Am I missing something else or is it an issue with this image?

Restrict access

Thanks for this awesome Docker application really useful I would like to forward ports so I can access remotely but don't see how to lock down so I have to login can anyone help?

Thanks

Soulseek lost configuration after VM crash.

The ubuntu 22.04 VM on my truenas core server recently crashed and now Soulseek wants me to re-enter my credentials, has lost my user list, chats, shares etc..

I've looked in the /data/.SoulseekQt folder and there are 3 files named soulseek-client.dat+a lot of numbers as the extension. They range from 48MB to 89MB in size. Opening one of them in a text editor confirmed my suspicion that they contain the user list and everything else I've "lost".
Is there a way to restore one of these files? I had hundreds of users in my list and even rescanning my shares alone would take literal days.

Also the performance was always bad (often freezes for literally 20+ seconds before it registers a keypress or click) but now it's even worse. I've recreated the container with the latest image, restarted both server and VM but nothing seems to resolve the performance issues.

Example image of a freeze:
Soulseek
Is that expected behavior? I've given the VM 4C8T of my Xeon, 16GB of DDR4 RAM and 150GB of m2 SSD storage.

Options->Login->uPnP

I have UPnP port mapping enabled. When Slsk ran on a PC it would automatically update the router with the listening ports.

Since moving to this docker image, the router is not receiving the port details via uPnP.

Restarting loop

Hi all, trying to install this container from the latest build onto my Synology DS920. I can install it from the Docker app on DSM and configure it, but then when I try to run the software it goes into a restart loop, throwing an "exec format" error. I've tried reconfiguring and reinstalling with no luck.

Getting `noVNC encountered an error` after update

Running you docker in unRAID, been working great. Just upgraded my soulseek container to the latest and am now seeing an issue where noVNC does not load.

TypeError: WebUtil.initLogging is not a function
    at Object.updateLogging (http://sam.local:6080/app/ui.js:1656:17)
    at Object.initSettings (http://sam.local:6080/app/ui.js:151:12)
    at Object.start (http://sam.local:6080/app/ui.js:59:12)
    at http://sam.local:6080/app/ui.js:47:27

Screen Shot 2022-03-15 at 15 47 52

The container logs look ok:

2022-03-15 15:43:06,922 INFO Set uid to user 0 succeeded
2022-03-15 15:43:06,926 INFO supervisord started with pid 14
2022-03-15 15:43:07,930 INFO spawned: 'tigervnc' with pid 16
2022-03-15 15:43:07,932 INFO spawned: 'openbox' with pid 17
2022-03-15 15:43:07,935 INFO spawned: 'novnc' with pid 18
2022-03-15 15:43:07,936 INFO spawned: 'soulseek' with pid 19
2022-03-15 15:43:09,114 INFO success: tigervnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-15 15:43:09,114 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-15 15:43:09,114 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-15 15:43:09,114 INFO success: soulseek entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

Container won't restart

I installed the container and was up and running for a few days. I had to close the container (I closed it through docker as opposed to formally exiting out of soulseek) but now I can't restart it: getting an error "Start container realies-soulseek1 failed: null." I'm almost certain I haven't changed any setting.

Any idea on a fix?

Docker Image versioning

Hi,
would it be possible to version the images on Docker Hub, in addition to having the :latest tag rolling?
Now there's no easy way to go back in case of issues.
Thanks!

Ports configuration doesn't seem to persist over restarts.

Hi there,

I'm using the exact same configuration you're proposing in the doc, but can't seem to have the Soulseek listening port configuration persist over container restarts. It keep using different ports over and over again. Also the /data/.SoulseekQt folder stays empty.

version: "2.1"
services:
  soulseek:
    image: realies/soulseek
    container_name: soulseek
    environment:
      - PUID=1000
      - PGID=1000
      - resize=scale
      - resolution=1280x720
    volumes:
      - '/srv/data/music:/data/music'
      - '/srv/data/soulseek/appdata:/data/.SoulseekQt'
      - '/srv/data/soulseek/downloads:/data/Soulseek Downloads'
      - '/srv/data/soulseek/logs:/data/Soulseek Chat Logs'
    ports:
      - 6080:6080
      - 53028:53028
      - 53029:53029 
    restart: always

Thanks in advance :)

noVNC encountered an error - SyntaxError: The requested module './util/browser.js' does not provide an export named 'supportsImageMetadata'

Hi realies

I'm running SoulSeek via a Docker container on my Synology DiskStation DSM3617xs. SoulSeek was working fine for me about 1 month back and I recently ran into the error in the attached screenshot when trying to launch it in my web browser.

Screenshot 2020-02-24 at 20 54 45

I've restarted the container a number of times, without any success. I've even recreated the container, with the same result. I then deleted the container and image and recreated the container from scatch and still no joy. Can you please help?

Thanks.

Firewall Config

Hi There,
My container is installed on a Synology Nas.
It's working great when i disable my firewall (on the synology parameters).
But when my firewall is on, i cannot connect soulseek to the server : socket error

I tried to authorise differents ports on my firewall, but no success (6080, 59779, 59780, 2416 (those in soulseek configuration)

If you can help me with this...

Thanks

VNCPWD environment variable not working; container fails to launch

Hi! When I try to build from a docker-compose file, here's the error that I get:

soulseek | /init.sh: 14: vncpasswd: not found
soulseek exited with code 127

Here's the sample of the docker compose file!

soulseek:
    image: realies/soulseek
    container_name: soulseek
    environment:
      - VNCPWD=thisismysecretpassword
      # media group
      - PGID=1014
      # soulseek user
      - PUID=157
    volumes:
      - localdrive/data:/data/.SoulseekQt
      - localdrive/downloads:/Soulseek Downloads
      - localdrive/shared:/data/Soulseek Shared Folder
      - localdrive/logs:/data/Soulseek Chat Logs
    restart: unless-stopped

No way to configure user/group settings

It would be great if there was a way to configure the user/group ID's so that writes would have the correct permissions on mapped volumes. Suggest sticking with the convention of passing -e PGID=<gid> -e PUID=<uid> to docker.

.SoulseekQt folder not being populated

Using the below volumes none of my settings persist through restarts. Executing a bash shell in the Soulseek container shows /data/.SoulseekQt to be empty, and only a short .conf file in /data/.config. I have to enter my username/password and change all my settings every time the container is restarted. This didn't happen before on a previous version when the volumes pointed to /root/.SoulseekQt instead of /data/.SoulseekQt. Is this an issue with the newer version or am I doing something wrong?

Edit: Looks like it defaults to 60 minutes before saving config.

volumes:
 - /Docker/soulseek:/data/.SoulseekQt
 - /media/Downloads:/data/Soulseek Downloads

Browser shortcuts interfering with text input

I've got a bunch of extensions on my browser (Edge), Vimium amongst them. Tried typing my user name into the Soulseek field - and it's not working. Some keys are, some aren't. Tested this on Safari and it works fine.

I can only assume that the text entry fields aren't 'switching off' the browser shortcuts.

Can't access secondary hard drive from soulseek-docker on ubuntu

I can't access a new hard drive instaled on ubuntu, i can access the hd from other services but not from soulseek-docker.
The hd is formated in ext4, partition created, mounted and configured on fstab.
Not all directories are showing on soulseek. Is there a way to give all permissions to soulseek on ubuntu?

Any idea on how to use Soulseek with Gluten ?

Hi, I've been enjoying Soulseek-docker a lot lately and it is great but I realized I had ports issues. Let me explain what happens.

I'm running Soulseek through Gluetun as a VPN and AirVPN as a provider (which is supported by Gluetun). I've forwarded my Soulseek listening and obfuscated ports in AirVPN and checked they are open from there, which confirms my Gluetun config is working.

I keep getting Port xxxxx mapping failure, miniupnp error: -3

I'm not sure what I am doing wrong, but I believe this has to do with my Soulseek config.

Can anyone help ?

Feature: resize according to browser window

I was wondering if there could be a way to resize the app according to the browser window?

On a related issue I can’t seem to alter the size after creating the container either, is this currently possible?

Uploads not working and can't be browsed or browse.

So Soulseek works fine, except nobody can download from me nor directly browse my files (I have 200k files so stuff is pretty much always being downloaded from me nearly constantly).
Have manually set ports on my router as well as DS918 NAS but still no joy.
Mounted volumes seem to be working - can add and scan the share fine.
Also can't seem to browse any other users.
I can download files that I search for using the search function though.

Loading up soulseek on my PC and everything works fine on that end and people start downloading from me almost straight away and I can browse everyone but for some reason it's just not working on my NAS?

TZ does not work anymore

Cause : missing package tzdata so this line of code never works, because /usr/share/zoninfo does not exist :

[ -n "$TZ" ] && [ -f "/usr/share/zoneinfo/$TZ" ] && ln -sf "/usr/share/zoneinfo/$TZ" /etc/localtime

Docker container stopped unexpectedly

Hi there,
I'm running Soulseek in Docker on my Synology and every day or so, I get the following error message:
Docker container soulseek stopped unexpectedly. Go to Docker for more information.

In the container log, I see this:
INFO stopped: soulseek (terminated by SIGTERM)

Any ideas how to prevent this?

Support multiple passwords

Switching to TigerVNC and using multiple passwords seems to break mouse and keyboard input on any auth with a password other than the first one connecting to the server. Not sure if it's useful to have more than one password for authentication - I was not able to debug this. Any chance you have any ideas, @gordon00?

Request VPN in container

Feature request to add vpn to this like some Qbittorent docker images out there using openvpn and configuration file

Can't login

Login failed. Reported failure reason: socket error. Please change your login settings in the Options tab and try reconnecting
My soulseek was working recently, however I recently moved to proxmox virtual environment. After that it has stopped working. I have disabled the firewall in proxmox. I have only published 6080:6080.

Docker port remains allocated over restarts

I am running Docker on a Synology device and have noted that the soulseek container fails to start up when I reboot the Synology device - no other containers experience this issue.

Start container soulseek failed: {"message":"driver failed programming external connectivity on endpoint soulseek (4eb32cd080d2f5e7c6f57e38c75863c9ec8ded7dd3a7fb016dda3b88e0829216): Bind for 0.0.0.0:32805 failed: port is already allocated"}.

I am remapping 6080 to another available port. In this case, 32805 - I had previously set the config to use 32801, then 32802, etc. Each time, after a period of time when the soulseek docker would restart, it cannot start again as the configured port is in use.

When I check what might be using that port, it's just docker. No other containers are using this port. Unsure how the soulseek container might be allocating its port that causes this...

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:32805 0.0.0.0:* LISTEN 20884/docker-proxy

No `vncpasswd`

I have Docker set up on my Asustor NAS.

I had been using this container for quite some time, until the other day it stopped working.

I had set the VNCPWD environment variable, and it worked. Then the other day the container wasn't running and the log shows
/init.sh: 14: vncpasswd: not found
The container immediately stops after execution.

Curiously, if I remove the VNCPWD variable and re-launch the container, I get

2022-05-05 10:51:43,100 INFO Set uid to user 1000 succeeded
2022-05-05 10:51:43,104 INFO supervisord started with pid 22
2022-05-05 10:51:44,110 INFO spawned: 'tigervnc' with pid 23
2022-05-05 10:51:44,112 INFO spawned: 'openbox' with pid 24
2022-05-05 10:51:44,176 INFO spawned: 'novnc' with pid 25
2022-05-05 10:51:44,178 INFO spawned: 'soulseek' with pid 26
2022-05-05 10:51:44,463 INFO exited: soulseek (exit status 1; not expected)
2022-05-05 10:51:45,372 INFO success: tigervnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:45,372 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:45,373 INFO success: novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:45,763 INFO spawned: 'soulseek' with pid 42
2022-05-05 10:51:46,240 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:46,251 INFO spawned: 'openbox' with pid 43
2022-05-05 10:51:47,294 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:47,296 INFO success: soulseek entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:47,296 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:48,299 INFO spawned: 'openbox' with pid 44
2022-05-05 10:51:49,342 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:49,343 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:50,346 INFO spawned: 'openbox' with pid 45
2022-05-05 10:51:51,389 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:51,390 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:52,393 INFO spawned: 'openbox' with pid 46
2022-05-05 10:51:53,446 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:53,446 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:54,448 INFO spawned: 'openbox' with pid 47
2022-05-05 10:51:55,493 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:55,494 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:56,497 INFO spawned: 'openbox' with pid 48
2022-05-05 10:51:57,540 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:57,540 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:51:58,544 INFO spawned: 'openbox' with pid 49
2022-05-05 10:51:59,588 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:51:59,588 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:00,591 INFO spawned: 'openbox' with pid 50
2022-05-05 10:52:01,635 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:01,667 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:02,670 INFO spawned: 'openbox' with pid 51
2022-05-05 10:52:03,722 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:03,722 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:04,726 INFO spawned: 'openbox' with pid 52
2022-05-05 10:52:04,777 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:05,780 INFO spawned: 'openbox' with pid 53
2022-05-05 10:52:05,823 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:07,828 INFO spawned: 'openbox' with pid 54
2022-05-05 10:52:08,871 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:08,871 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:09,874 INFO spawned: 'openbox' with pid 55
2022-05-05 10:52:10,917 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:10,917 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:11,920 INFO spawned: 'openbox' with pid 56
2022-05-05 10:52:13,035 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:13,035 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:14,038 INFO spawned: 'openbox' with pid 57
2022-05-05 10:52:15,082 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:15,082 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:16,085 INFO spawned: 'openbox' with pid 58
2022-05-05 10:52:16,133 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:17,135 INFO spawned: 'openbox' with pid 59
2022-05-05 10:52:18,193 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-05-05 10:52:18,193 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:19,196 INFO spawned: 'openbox' with pid 60
2022-05-05 10:52:19,240 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:20,243 INFO spawned: 'openbox' with pid 61
2022-05-05 10:52:20,286 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:22,290 INFO spawned: 'openbox' with pid 62
2022-05-05 10:52:22,341 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:25,347 INFO spawned: 'openbox' with pid 63
2022-05-05 10:52:25,838 INFO exited: openbox (terminated by SIGABRT; not expected)
2022-05-05 10:52:26,840 INFO gave up: openbox entered FATAL state, too many start retries too quickly

In this instance, I can open the webpage, and it shows noVNC connecting, but then the entire page goes black, including the cursor disappearing. However, in this case, the container stays running. I can exec into it, and indeed I can not locate the vncpasswd executable. But I also can not use the container because the VNC doesn't start up correctly.

This has been the case for the two most recent images, including the update just a few hours ago.

EDIT:
The contents of /tmp/openbox-stderr---supervisor-...log:

(openbox:63): GLib-ERROR **: 10:52:25.837: file ../../../g
lib/gthread-posix.c: line 1339 (g_system_thread_new): erro
r 'Operation not permitted' during 'pthread_create'
How are you gentlemen? All your base are belong to us. (Op
enbox received signal 5)

many times repeated.

No space allowed in the mount path

In the Volume config, in the Mount Path, when I enter "/data/Soulseek Downloads", it appears that no space is allowed in the path.

Would anyone please help me ? Thanks.

Cannot find config file for updating listening port

I am probably being very stupid here but I have spent hours looking around trying to work this out. And I've reach the stage of now needing help. I need to access the config file so I can use a script to update the port when used in conjunction with a VPN. In a fork of this project the config file(s) are easily edited in /root/.nicotine/ whereas in this project which it is forked from... I just can't find the config file(s). Can you give any pointers? Many many thanks!

Pulling error no matching manifest?

Hi

Trying to deploy via stacks in portainer. Have successfully in the past, but started getting novice errors so figured I would try again.

Now I'm getting an error that says NO matching manifest Linux arm?

What am I doing wrong? Thanks!

My stack:

version: "2.1"
services:

soulseek:
image:
realies/soulseek
container_name:
soulseekstacked
network_mode: "host"
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- /Volumes/data/Docker/AppData/soulseekstacked:/config
- /Volumes/data/data/directdownloads:/downloads
- /Volumes/data/data/directdownloads:/music
restart: unless-stopped
security_opt:
- seccomp:unconfined

Reverse Publish

Is there a way to change the web server home dir so we can reverse publishe via nginx for example

so that URL and links use http://:6080/soulseek rather than http://:6080

hope that makes sense
thanks

Option to set UMASK variable

Hi,

Currently the container write files with -rw-r--r-- permissions.

I would prefer to be able to set unask so that the container writes with -rw-rw-rw- permissions instead. This would allow for moving/changing files via SMB (since the data is stored on a connected Unraid server). Whereas right now I have to chmod the particular files each time I want to do an operation via SMB.

NoVNC resize settings in index.html

Hey realies,

Firstly great work on this SUPER useful docker container - now I can uninstall Soulseek from my computer and just run it on my Synology NAS - thank you very much for this :)

Just wanted to report an issue, on your index.html the NoVNC resize is "hardcoded" to scale, this means if you change your resize settings on the NoVNC left hand menu it defaults back to "scale" everytime you refresh your page.

In my humble suggestion would be to leave out the resize parameter in the index.html so that you can change the setting to however you want and it will survive page refreshes - I have tested this by editing the index.html in my docker container to remove the resize option and it works.

For instance,

Change this:

<iframe src="vnc.html?autoconnect=true&resize=scale"></iframe>

to this:

<iframe src="vnc.html?autoconnect=true"></iframe>

Again, thank you very much realies :)

Changes aren't persisten after container restart.

Hi.

I don't know what I'm doing wrong:

I've double checked my volumes mapping, but after restart the container, the config is not saved.

Thanks.

This is my docker-compose file:

  soulseek:
    image: realies/soulseek
    container_name: soulseek
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "20"
    environment:
      - PGID=1000
      - PUID=1000
      - TZ=America/Buenos_Aires
      - UMASK=002
    ports:
      - 6080:6080
    volumes:
      - /docker/appdata/soulseek/appdata:/data/.SoulseekQt
      - /docker/appdata/soulseek/downloads:/data/Soulseek Downloads 
      - /mnt/NAS/Descargas/Soulseek:/mnt/downloads
      - /docker/appdata/soulseek/shared:/data/Soulseek Shared Folder
      - /docker/appdata/soulseek/logs:/data/Soulseek Chat Logs

chown: cannot access '/data/*': No such file or directory

Sorry for what is probably a silly question but I'm new to containers. I have a new Qnap TS653-D Nas and I am trying to create this container via both the Qnap Container Station UI and also via the Docker CLI over SSH.

I took the commands from the code page and made the required changes to the volume mounting to point to the correct folders, as below:

docker run -d --name soulseek --restart=always
-v "/persistent/appdata":"/Container/container-station-data/application"
-v "/persistent/downloads":"/Downloads/SoulSeek"
-v "/persistent/logs":"/Container/container-station-data/application/logs"
-e pgid=1000
-e puid=1000
-e resize=scale
-e resolution=3840x2160
-p 9090:9090
realies/soulseek

When I try to run the container I get the below response and the container fails to shart.

chown: cannot access '/data/*': No such file or directory

The only reference to a data fodler I can see is from the XDG_RUNTIME_DIR environment variable which is set to /data

Any help would be appreciated.

noVNC password

hi, thanks for the great tool, I have been struggling for a while with half abandoned museek+ daemon...

I wish to have soulseek running on a headless server and access it remotely.
I have soulseek-docker up and running great, and a reverse proxy setup using apache to access it with SSL.
However there is no password set on noVNC, so anyone knowing the url could access my soulseek instance.
Would it be possible to specify a noVNC password through an environment variable e.g. ?

Shared folders don't seem to be shared?

I shared my music collection but nobody is downloading from me and I got messages from users telling me they were unable to download from me. Soulseek mentions it needs to restart to pick up config changes, could that be the reason? If so is there some way to restart the service. Restarting the docker seems to clear out the config I've set (it asks to me share a folder again, etc..)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.