Skip to main content

Nicotine+

·318 words·2 mins·
Michael
Author
Michael
some dude that works on datacenters, plays guitar, streams, has a lot of side projects and unhealthy addiction to ow

What is Nicotine+?
#

Nicotine+ is a graphical client for the Soulseek peer-to-peer network. It’s a great way to find high-quality music files and share your own collection with others.

Docker Compose Example
#

# nicotine - https://github.com/sirjmann92/nicotineplus-proper
---
services: 
 nicotineplus-proper:
   image: 'ghcr.io/sirjmann92/nicotineplus-proper:latest' # Or pull from GitHub: 'ghcr.io/sirjmann92/nicotineplus-proper:latest'
   container_name: nicotine
   network_mode: "container:gluetun" # Comment this line out if you're NOT using a VPN container
   #ports: # Comment this line out if you're NOT using a VPN container (line above)
     #- '${NICOTINE_PORT}:${NICOTINE_PORT}'
     #- '2234:2234'
   #env_file: .env # Optionally use a .env file to store environment variables and login credentials
   environment: # All environment variables are optional, defaults are listed (TZ, LANG, UMASK, and FORWARD_PORT have no default)
     - TZ=Your/Timezone
     - LOGIN=${SOUL_SEEK_USERNAME}
     - PASSW=${SOUL_SEEK_PASSWORD}
  #   - PUID=1000
  #   - PGID=1000
     - DARKMODE=True
  #   - LANG=C.UTF-8
  #   - UMASK=022
  #   - UPNP=False 
  #   - AUTO_CONNECT=True
  #   - TRAY_ICON=False
  #   - NOTIFY_FILE=False
  #   - NOTIFY_FOLDER=False
  #   - NOTIFY_TITLE=False
  #   - NOTIFY_PM=False
  #   - NOTIFY_CHATROOM=False
  #   - NOTIFY_MENTION=False
  #   - FORWARD_PORT=12345 # Useful for dynamic port forwarding
  #   - WEB_UI_PORT=${NICOTINE_PORT} # for custom webUI port assignment. Should match 'port' env variable or VPN webUI port
  #   - WEB_UI_USER=YourWebUIUsername # for custom webUI basic auth username
  #   - WEB_UI_PASSWORD=YourWebUIPassword # for custom webUI basic auth password
  #   - HEALTHCHECK_ENABLED=false # Set to false to disable Docker healthcheck (default: true/enabled)
   volumes:
     - nicotine_downloads:/downloads
     #- nicotine_shared:/shared
     - ${DATA_PATH}/config:/config # Save your config persistently
     - ${DATA_PATH}/data:/data # Store your logs, database, and history
   restart: unless-stopped

volumes:
    nicotine_downloads:
        name: nicotine_downloads
        driver_opts:
            type: nfs
            o: addr=${NAS_ADDR},nolock,soft,rw
            device: :${DOWNLOADS_PATH}
    # nicotine_shared:
    #     name: nicotine_shared
    #     driver_opts:
    #         type: nfs
    #         o: addr=${NAS_ADDR},nolock,soft,rw
    #         device: :${DOWNLOADS_PATH}/shared

VPN Integration
#

Like qBittorrent, I route Nicotine+ through Gluetun to ensure all p2p traffic is encrypted and protected by a killswitch.

network_mode: "container:gluetun"

Remember to map the necessary ports in your Gluetun configuration if you want to be “connectable” on the Soulseek network.