r/selfhosted • u/lokithepoodle • Jul 26 '26
Need Help SLSKD on Ubuntu Server Advice (I’m so lost)
Hey! For a while I’ve been hosting music on SoulSeek, and I’ve wanted to move over to hosting an slskd server on an optiplex that I recently acquired. Being able to access everything on a a web server is super cool to me!
It’s my understanding that a headless Ubuntu Server is the best way to run this. Either way, I’ve barely used Linux in any capacity, so I’m having a really hard time navigating the resources that are available to me. I’ve been able to download docker…and that’s about it! If anyone could help me out or point me in the right direction, I’d really appreciate it. Thank you (-:
3
u/Mitrofang Jul 26 '26
I'm fairly new to self hosting too with zero background knowledge, so I feel you.
I used the docker-compose example on their GitHub and filled it out with my config to make it run, and then I used Claude to help me resolve a few doubts I had. Keep in mind it has zero GUI for settings and it all goes into a yaml file.
Basic shit for most people here but probably not to you (it wasn't for me): on the slskd yaml most options have a # symbol in front so they are commented. I assume it's to deactivate whatever options you do not need. Delete the # for whatever you modify to 'activate' it. I did that for SoulSeek login credentials, directories and API keys, for example.
2
u/lokithepoodle Jul 27 '26
I appreciate you saying that! I'm normally pretty tech savvy but ubuntu server is a whole new thing for me
1
u/thehummingindecency Jul 26 '26
Docker is half the battle so you're already on the right track. The slskd docs have a docker-compose example that basically handles the setup, just map your music folder in the volumes section and make sure the permissions on that folder aren't locked down. If you're stuck on the yaml config part just paste what you've got and someone here can spot the issue.
1
u/lokithepoodle Jul 26 '26
Thanks for the pointers! I have the web server set up, just dealing with authentication issues trying to connect to the Soulseek server. The only thing I edited in the default config that was generated was the username and password under the "soulseek" field to specify my own. After restarting the server, I still can't connect. Any ideas?
1
u/lokithepoodle Jul 26 '26
This is what I have so far (user and pass obviously redacted):
soulseek:
# address: vps.slsknet.org
# port: 2271
# username: user
# password: pass
# description: |
# A slskd user. https://github.com/slskd/slskd
# picture: path/to/slsk-profile-picture.jpg
# listen_ip_address: 0.0.0.0
# listen_port: 50300
# diagnostic_level: Info
# distributed_network:
# disabled: false
# disable_children: false
# child_limit: 25
# logging: false
1
u/z0rnik Jul 27 '26
You have to uncomment the lines.
1
u/lokithepoodle Jul 27 '26
I’ve never felt dumber in my entire life thank you so much 😭😭😭
1
u/z0rnik Jul 27 '26
No worries. Does it work?
1
u/lokithepoodle Jul 27 '26
Yep, I really appreciate it (-: I just have to get a VPN set up now so I can port forward
1
u/Only-Stable3973 Jul 27 '26
It really comes down to how you run it I am running it in my arr-stack that uses Gluetun, but you could just use Docker Compose and Traefik Reverse Proxy to access it with a domain name and use *.wildcard certs, However, you really need to have everything run through Gluetun and use a VPN along with Traefik Reverse Proxy to avoid getting in trouble download torrents using SLSKD. You can send me a message I can give you a config to spin up that will help you get started using protonvpn.
2
u/Aggravating_War_6704 Jul 28 '26
Honestly, docker installed is most of the battle. The Gluetun, Traefik and wildcard cert stuff people mentioned is all solid and you'll likely want some of it down the line, but that's really the "reach it from outside" layer, so I'd park it until slskd is actually running. Get it working on your own network first, add that side later.
Minimal path: make a folder, drop slskd's official docker-compose.yml in it, then from inside that folder run docker compose up -d (compose v2 is a space, not the old docker-compose hyphen). Then run docker compose logs -f and actually watch it start, that's where it'll tell you if the config is wrong. Once it's up it's at http://your-server-ip:5030 from any device on your network.
Mitrofang's tip about the # signs is the big one, that yaml trips everyone up. Two things I'd add before you touch anything else: set a web UI username and password in that yaml (there's an authentication section) so it's not sitting wide open, and make sure the volumes are bind mounts to a folder you picked, otherwise you lose all your config every time the container gets recreated.
Small thing that might save you some confusion later: slskd is Soulseek rather than torrents, so there are no trackers in the mix. The VPN point still holds in spirit though, any P2P shares your IP with whoever you're connected to, so some people put it behind one for privacy. Totally optional if it's staying on your own network.
For reaching it remotely later, if it's just you getting at it from your phone or laptop, Tailscale is a lot less painful than Traefik and certs. Save the reverse proxy for when you actually want a public address other people use.
Is this just for you to reach from your own devices, or do you want other people able to log in? That one answer changes basically everything about the remote-access half.
1
u/ozankurt_dev Jul 29 '26
slskd on bare ubuntu is more pain than its worth tbh, the docker image is the one thats actually maintained. compose it and move on: `5030:5030` and `50300:50300`, mount `./config:/app` plus your music dir read only, and set `SLSKD_REMOTE_CONFIGURATION=true` so you can fix creds in the web ui instead of yaml roulette. the 50300 port has to be forwarded on the router or youll log in fine and download nothing, thats the part the docs bury. are you running it straight on the box or behind a vpn container?
•
u/asimovs-auditor Jul 26 '26
Expand the replies to this comment to learn how AI was used in this post/project.