• 5 Posts
  • 15 Comments
Joined 1 year ago
cake
Cake day: April 24th, 2025

help-circle
  • services:
    
     gluetunslskd:
      image: qmcgaw/gluetun:latest
      container_name: gluetunslskd
      cap_add:
       - NET_ADMIN
      devices:
       - /dev/net/tun:/dev/net/tun
      ports:
       - 8000:8000
       - 5031:5031
      volumes:
       - ./app:/app
      environment:
       PUID: 1000
       PGID: 1000
       VPN_SERVICE_PROVIDER: protonvpn
       VPN_TYPE: wireguard
       WIREGUARD_PRIVATE_KEY: -----
       WIREGUARD_ADDRESSES: -----
       SERVER_COUNTRIES: -----
       TZ: -----
       PORT_FORWARD_ONLY: on
       VPN_PORT_FORWARDING: on
       HTTP_CONTROL_SERVER_AUTH_DEFAULT_ROLE: '{"auth":"apikey","apikey":"-----"}'
       VPN_PORT_FORWARDING_UP_COMMAND: >
        '/bin/sh -c "sed -i 's/listen_port:.*/listen_port\: {{PORTS}}/' /app/slskd.yml"'
      restart: unless-stopped
    
     slskd:
      image: slskd/slskd:latest
      container_name: slskd
      environment:
       TZ: -----
       PUID: 1000
       PGID: 1000
       SLSKD_SLSK_ADDRESS: server.slsknet.org
       SLSKD_SLSK_PORT: 2242
       SLSKD_SHARED_DIR: /music
       SLSKD_DOWNLOADS_DIR: /downloads
       SLSKD_INCOMPLETE_DIR: /incomplete
       SLSKD_USERNAME: -----
       SLSKD_PASSWORD: -----
       SLSKD_SLSK_USERNAME: -----
       SLSKD_SLSK_PASSWORD: -----
       SLSKD_VPN: true
       SLSKD_VPN_PORT_FORWARDING: true
       SLSKD_VPN_GLUETUN_URL: http://localhost:8000/
       SLSKD_VPN_GLUETUN_API_KEY: -----
      volumes:
       - ./app:/app
       - /home/user/media/music/library:/music:ro
       - /home/user/media/music/downloads:/downloads:rw
       - /home/user/media/music/incomplete:/incomplete:rw
      network_mode: 'service:gluetunslskd'
      depends_on:
       gluetunslskd:
        condition: service_healthy
      restart: unless-stopped
    

  • Things seem to be working now; I can reach my slskd profile from other user profiles, browse and download shares, etc.

    I didn’t need to mess with my router at all. Instead, I made use of this guide to enable slskd’s baked-in gluetun integration with a control server.

    I am still a little confused about why I needed a control server, and it seems to be forwarding the wrong port, but things appear as they should on the client side.

    I’ll comment my compose.yaml under this. I hope this is helpful.