diff --git a/ansible/app-configs/sabnzbd_sabnzbd.ini.j2 b/ansible/app-configs/sabnzbd_sabnzbd.ini.j2
index 4c010cc3..f9e2f6e7 100644
--- a/ansible/app-configs/sabnzbd_sabnzbd.ini.j2
+++ b/ansible/app-configs/sabnzbd_sabnzbd.ini.j2
@@ -342,7 +342,7 @@ host = news.newshosting.com
port = 563
timeout = 60
username = thetrezuredone
-password = {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSKD_PASSWORD'] }}
+password = {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSK_USER_PASSWORD'] }}
connections = 8
ssl = 1
ssl_verify = 3
diff --git a/ansible/app-configs/soularr_config.ini.j2 b/ansible/app-configs/soularr_config.ini.j2
new file mode 100644
index 00000000..d2f72e8a
--- /dev/null
+++ b/ansible/app-configs/soularr_config.ini.j2
@@ -0,0 +1,73 @@
+[Lidarr]
+api_key = {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['LIDARR_API_KEY'] }}
+host_url = http://lidarr:8686
+#This should be the path mounted in lidarr that points to your slskd download directory.
+#If Lidarr is not running in Docker then this may just be the same dir as Slskd is using below.
+download_dir = /storage
+
+[Slskd]
+#Api key from Slskd. Need to set this up manually. See link to Slskd docs above.
+api_key = {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSKD_API_KEY'] }}
+host_url = http://gluetun:5030
+#Slskd download directory. Should have set it up when installing Slskd.
+download_dir = /app/downloads
+#Removes searches from Slskd after the search finishes.
+delete_searches = False
+#Maximum time (in seconds) that the script will wait for downloads to complete.
+#This is used to prevent the script from running forever due to a stalled download. Defaults to 1 hour.
+stalled_timeout = 3600
+
+[Release Settings]
+#Selects the release with the most common amount of tracks out of all the releases.
+use_most_common_tracknum = True
+allow_multi_disc = True
+#See full list of countries below.
+accepted_countries = Europe,Japan,United Kingdom,United States,[Worldwide],Australia,Canada
+#See full list of formats below.
+accepted_formats = CD,Digital Media,Vinyl
+
+[Search Settings]
+search_timeout = 5000
+maximum_peer_queue = 50
+#Min upload speed in bit/s
+minimum_peer_upload_speed = 0
+#Min match ratio accepted when comparing lidarr track names to soulseek filenames.
+minimum_filename_match_ratio = 0.5
+#Specify the file types you prefer from most to least. As well as their attributes such as bitrate / samplerate / bitdepth.
+#For flacs you can choose the bitdepth/samplerate. And for mp3s the bitrate.
+#If you do not care about the specific quality you can still just put "flac" or "mp3".
+#Soularr will then just look at the filetype and ignore file attributes.
+allowed_filetypes = flac 24/192,flac 16/44.1,flac,mp3 320,mp3
+ignored_users = User1,User2,Fred,Bob
+#Set to False if you only want to search for complete albums
+search_for_tracks = True
+#Set to True if you want to add the artist's name to the beginning of the search for albums
+album_prepend_artist = False
+track_prepend_artist = True
+#Valid search types: all || incrementing_page || first_page
+ #"all" will search for every wanted record everytime soularr is run.
+ #"incrementing_page" will start with the first page and increment to the next on each run.
+ #"first_page" will repeatedly search the first page.
+#If using the search type "first_page" remove_wanted_on_failure should be enabled.
+search_type = incrementing_page
+#How mancy records to grab each run, must be a number between 1 - 2,147,483,647
+number_of_albums_to_grab = 10
+#Unmonitors the album if Soularr can't find it and places it in "failure_list.txt".
+#Failed albums can be re monitored by filtering "Unmonitored" in the Lidarr wanted list.
+remove_wanted_on_failure = False
+#Comma separated list of words that can't be in the title of albums or tracks. Case insensitive.
+title_blacklist = BlacklistWord1,blacklistword2
+#Lidarr source to use for searching. Accepted values are "all", "missing", or "cutoff_unmet". If "all" is selected
+# then both missing and cutoff_unme will be searched. The default value is "missing".
+search_source = missing
+
+[Logging]
+#These options are passed into the logger's basicConfig() method as-is.
+#This means, if you're familiar with Python's logging module, you can configure
+#the logger with options beyond what's listed here by default.
+#For more information on available options -- https://docs.python.org/3/library/logging.html#logging.basicConfig
+level = INFO
+# Format of log message -- https://docs.python.org/3/library/logging.html#logrecord-attributes
+format = [%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s
+# Format of datetimes -- https://docs.python.org/3/library/time.html#time.strftime
+datefmt = %Y-%m-%dT%H:%M:%S%z
\ No newline at end of file
diff --git a/ansible/app-configs/soulseek_slskd.yml.j2 b/ansible/app-configs/soulseek_slskd.yml.j2
index 802fb1e1..7228204e 100644
--- a/ansible/app-configs/soulseek_slskd.yml.j2
+++ b/ansible/app-configs/soulseek_slskd.yml.j2
@@ -1,238 +1,212 @@
{% set vault_addr = 'https://vault.trez.wtf' %}
{% set secrets_path = 'rinoa-docker/env' %}
-# debug: false
-# remote_configuration: false
-# remote_file_management: false
-# instance_name: default
-# flags:
-# no_logo: false
-# no_start: false
-# no_config_watch: false
-# no_connect: false
-# no_share_scan: false
-# force_share_scan: false
-# no_version_check: false
-# log_sql: false
-# experimental: false
-# volatile: false
-# case_sensitive_reg_ex: false
-# legacy_windows_tcp_keepalive: false
-# relay:
-# enabled: false
-# mode: controller # controller (default), agent, or debug (for local development)
-# # controller config is required when running in 'agent' mode
-# # this specifies the relay controller that will be controlling this agent
-# controller:
-# address: https://some.site.com:5000
-# ignore_certificate_errors: false
-# api_key:
-# secret:
-# downloads: false
-# # agent config is optional when running in 'controller' mode
-# # this specifies all of the agents capable of connecting
-# agents:
-# my_agent:
-# instance_name: my_agent # make sure the top-level instance_name of the agent matches!
-# secret:
-# cidr: 0.0.0.0/0,::/0
-# permissions:
-# file:
-# mode: ~ # not for Windows, chmod syntax, e.g. 644, 777. can't escalate beyond umask
-# directories:
-# incomplete: ~
-# downloads: ~
-# shares:
-# directories:
-# - ~
-# filters:
-# - \.ini$
-# - Thumbs.db$
-# - \.DS_Store$
-# cache:
-# storage_mode: memory
-# workers: 16
-# retention: ~ # retain indefinitely (do not automatically re-scan)
-# rooms:
-# - ~
-# global:
-# upload:
-# slots: 20
-# speed_limit: 1000 # in kibibytes
-# limits:
-# queued:
-# files: 500
-# megabytes: 5000
-# daily:
-# files: 1000
-# megabytes: 10000
-# failures: 200
-# weekly:
-# files: 5000
-# megabytes: 50000
-# failures: 1000
-# download:
-# slots: 500
-# speed_limit: 1000
-# groups:
-# default:
-# upload:
-# priority: 500
-# strategy: roundrobin
-# slots: 10
-# limits:
-# queued:
-# files: 150
-# megabytes: 1500
-# daily: ~ # no daily limits (weekly still apply)
-# weekly:
-# files: 1500
-# megabytes: 15000
-# failures: 150
-# leechers:
-# thresholds:
-# files: 1
-# directories: 1
-# upload:
-# priority: 999
-# strategy: roundrobin
-# slots: 1
-# speed_limit: 100
-# limits:
-# queued:
-# files: 15
-# megabytes: 150
-# daily:
-# files: 30
-# megabytes: 300
-# failures: 10
-# weekly:
-# files: 150
-# megabytes: 1500
-# failures: 30
-# blacklisted:
-# members:
-# -
-# cidrs:
-# -
-# user_defined:
-# my_buddies:
-# upload:
-# priority: 250
-# strategy: firstinfirstout
-# slots: 10
-# limits:
-# queued:
-# files: 1000 # override global default
-# members:
-# - alice
-# - bob
-# blacklist:
-# enabled: true
-# file:
-# filters:
-# search:
-# request:
-# - ^.{1,2}$
-# web:
-# port: 5030
-# https:
-# disabled: false
-# port: 5031
-# force: false
-# certificate:
-# pfx: ~
-# password: ~
-# url_base: /
-# content_path: wwwroot
-# logging: false
-# authentication:
-# disabled: false
-# username: slskd
-# password: slskd
-# jwt:
-# key: ~
-# ttl: 604800000
-# api_keys:
-# my_api_key:
-# key:
-# role: readonly # readonly, readwrite, administrator
-# cidr: 0.0.0.0/0,::/0
-# retention:
-# transfers:
-# upload:
-# succeeded: 1440 # 1 day
-# errored: 30
-# cancelled: 5
-# download:
-# succeeded: 1440 # 1 day
-# errored: 20160 # 2 weeks
-# cancelled: 5
-# files:
-# complete: 20160 # 2 weeks
-# incomplete: 43200 # 30 days
-# logs: 259200 # 180 days
-# logger:
-# disk: false
-# no_color: false
-# loki: ~
-# metrics:
-# enabled: false
-# url: /metrics
-# authentication:
-# disabled: false
-# username: slskd
-# password: slskd
-# feature:
-# swagger: false
-# soulseek:
-# address: vps.slsknet.org
-# port: 2271
-# username: ~
-# password: ~
-# description: |
-# A slskd user. https://github.com/slskd/slskd
-# 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
-# connection:
-# timeout:
-# connect: 10000
-# inactivity: 15000
-# buffer:
-# read: 16384
-# write: 16384
-# transfer: 262144
-# write_queue: 250
-# proxy:
-# enabled: false
-# address: ~
-# port: ~
-# username: ~
-# password: ~
-# integration:
-# ftp:
-# enabled: false
-# address: ~
-# port: ~
-# username: ~
-# password: ~
-# remote_path: /
-# encryption_mode: auto
-# ignore_certificate_errors: false
-# overwrite_existing: true
-# connection_timeout: 5000
-# retry_attempts: 3
-# pushbullet:
-# enabled: false
-# access_token: ~
-# notification_prefix: "From slskd:"
-# notify_on_private_message: true
-# notify_on_room_mention: true
-# retry_attempts: 3
-# cooldown_time: 900000
+directories:
+ incomplete: /app/incomplete
+ downloads: /app/downloads
+shares:
+ directories:
+ - /music
+rooms:
+ - '! meow chat :3'
+ - '#ANUS'
+ - '#CORONAVIRUS'
+ - '#Horrorcore'
+ - '#La France'
+ - '#icilombre-hardcore'
+ - '#polska'
+ - '#vegan'
+ - $$RARE RAP MUSIC$$
+ - ([6)]
+ - +Autism+
+ - +BlackMetal+
+ - +HIP_HOP_SCENE_RELEASES+
+ - /mu/
+ - 60lover
+ - 60lover v2
+ - 70 Rare groove Soul Jazz
+ - 80's 12 Inches & More
+ - 90's Rare Riddim !!
+ - 90's emo
+ - <>Electronics Labels<>
+ - ACID
+ - ARGENTINA
+ - "ATLLUMINATI\u201Cawareness"
+ - AUSTRALIA
+ - Alcohol
+ - Ambient
+ - Anime
+ - Audiobooks
+ - Avantgarde
+ - BDSM
+ - BLUES BUNKER MUSIC
+ - BOB DYLAN ROOM
+ - BigEdsClassicRock
+ - BigedsSixties
+ - Blues&Soul
+ - Bootlegged concerts
+ - Brasil
+ - Breakcore
+ - CHILE
+ - Canada
+ - China Room
+ - Chiptunes
+ - Christians
+ - Classical
+ - Come To The Sabbath !
+ - Communism
+ - DEATH METAL CLUB
+ - Dark Ambient
+ - De Koffie Shop
+ - De Kroeg
+ - Deathrock
+ - DieMilitarmusik
+ - Disco Classics
+ - Doom Metal
+ - Doujin Music
+ - Dub Techno
+ - Dubstep
+ - EBM-GOTHIC-INDUSTRIAL
+ - EBooks
+ - Emo
+ - Eurodance
+ - Eurovision Song Contest
+ - Experimental Electronica
+ - FOLK MUSIC
+ - Free Jazz
+ - Furry
+ - Gay
+ - Gothic
+ - Greece
+ - Grindcore
+ - HEE cum eaters 1! !
+ - HOUSE MUSIC LOVERS (AG)
+ - Happy Hardcore
+ - Hardcore NL
+ - Hardcore/punk
+ - Hip Hop
+ - Horror movies
+ - IDM
+ - INDUSTRIAL
+ - IReGGaeGaLaXy
+ - Incredibly Strange Music
+ - Israel
+ - Jaz (Full CDs)
+ - Jazz
+ - Jazz-Rock-Fusion-Guitar
+ - Juggalo Family
+ - Jungle
+ - Korean Music
+ - LANGUAGE EXCHANGE here
+ - LGBTQ+!!
+ - Last.fm
+ - Linux
+ - Lossless Scores
+ - MOVIES
+ - Mac Users
+ - Metal
+ - MovieMusic
+ - NORWAY
+ - New Crystal Vibrations
+ - New Wave
+ - New Zealand
+ - OLD SKOOL GANGSTA SHIT
+ - OLDSCHOOL 88-94
+ - OLI SHOTA CUB ROOM!
+ - Original Blues Bunker
+ - PSYCHEDELIA
+ - PUNK/HARDCORE/GRIND
+ - Portugal
+ - Post Punk
+ - Post-Hardcore (modern)
+ - Progressive Rock
+ - Psychedelic/Acid Rock
+ - Psytrance
+ - Quebec
+ - REGGAE
+ - Rare Music
+ - RareVHS/DVD/Rips
+ - Retro Gaming
+ - Romania
+ - Room Name
+ - SIsk Idiots !!
+ - SLUDGE!
+ - Slovenia
+ - Soundtracks&Scores
+ - Spain
+ - Stoner HiVe
+ - Stoner Rock
+ - Strange Music
+ - TECHNO, Mixes and Tunes
+ - THC
+ - Talia
+ - The Dangerous Kitchen
+ - TheScoreZone
+ - Thrash Metal
+ - Tinmans Movie Room
+ - Trip-Hop
+ - Ttalian_dancefloor
+ - Twee Folks
+ - UK DUB
+ - URIDDIM!!
+ - Ukraine
+ - Underground Hiphop
+ - VAPORWAVE
+ - Video Game Chat
+ - Vinyl Addicts
+ - Vocaloid
+ - WHATCDs
+ - World Music
+ - Yacht Rock
+ - '[German] [Deutsch]'
+ - abbey road Itd
+ - anime cunny
+ - bleeps&klonks
+ - breakbeat
+ - comics
+ - deep house connection
+ - drum'n'bass
+ - eesti mehed
+ - electro
+ - flacfield
+ - food
+ - for Losers
+ - hungary
+ - indie
+ - japanese music
+ - library music
+ - lossless
+ - minimal music
+ - museek
+ - noise
+ - 'on'
+ - postrock
+ - programming
+ - progressive house
+ - public porn
+ - r/musichoarder
+ - ru
+ - shoegaze
+ - tapekvit
+ - test
+ - trancEaddict
+ - trivia
+ - what.cd
+ - what.cd electronic
+ - what.cd-flac
+ - '{Italo Disco'
+web:
+ authentication:
+ username: slskd
+ password: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSKD_WEB_PASSSWORD'] }}
+ api_keys:
+ my_api_key:
+ key: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSKD_API_KEY'] }}
+ role: readwrite0
+ cidr: 0.0.0.0/0,::/0
+soulseek:
+ address: vps.slsknet.org
+ port: 2271
+ username: Trez.One
+ password: {{ lookup('community.hashi_vault.vault_kv2_get', 'env', engine_mount_point='rinoa-docker', url=vault_addr, token=vault_token_cleaned)['secret']['SLSK_USER_PASSWORD'] }}
+ diagnostic_level: Info
diff --git a/docker-compose.yml b/docker-compose.yml
index 8fbc3281..036bbd02 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4497,6 +4497,30 @@ services:
- ${DOCKER_VOLUME_STORAGE}/downloads:/downloads
#Select where you are storing your config file. Leave "/data" since thats where the script expects the config file to be
- ${DOCKER_VOLUME_CONFIG}/soularr:/data
+ soularr-dashboard:
+ container_name: soularr-dashboard
+ depends_on:
+ - soularr
+ environment:
+ PUID: ${PUID}
+ PGID: ${PGID}
+ TZ: ${TZ}
+ labels:
+ homepage.name: Soularr
+ homepage.group: Downloaders
+ homepage.description: Dashboard for monitoring Soularr
+ homepage.href: https://slsk.${MY_TLD}
+ homepage.icon: /icons/soularr.png
+ image: git.trez.wtf/trez.one/soularr-dashboard:v0.1
+ ports:
+ - 18364:8080
+ restart: unless-stopped
+ volumes:
+ - ${DOCKER_VOLUME_CONFIG}/soularr/dashboard:/app
+ - ${DOCKER_VOLUME_CONFIG}/soularr:/data
+ - ${DOCKER_VOLUME_CONFIG}/soularr/logs:/data/logs
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ working_dir: /app
soulseek:
container_name: soulseek
depends_on:
@@ -4504,11 +4528,6 @@ services:
condition: service_started
required: true
restart: true
- environment:
- SLSKD_PASSWORD: ${SLSKD_PASSWORD}
- SLSKD_REMOTE_CONFIGURATION: true
- SLSKD_SHARED_DIR: /music
- SLSKD_USERNAME: slsk
image: slskd/slskd
labels:
homepage.name: Soulseek
@@ -4526,16 +4545,10 @@ services:
network_mode: service:gluetun
restart: always
volumes:
- - source: ${DOCKER_VOLUME_CONFIG}/soulseek
- target: /app
- type: bind
- bind:
- create_host_path: true
- - source: ${DOCKER_VOLUME_STORAGE}/Audio/Music
- target: /music
- type: bind
- bind:
- create_host_path: true
+ - ${DOCKER_VOLUME_CONFIG}/soulseek:/app
+ - ${DOCKER_VOLUME_STORAGE}/Audio/Music:/music
+ - ${DOCKER_VOLUME_STORAGE}/downloads/completed/slsk:/app/downloads/
+ - ${DOCKER_VOLUME_STORAGE}/downloads/incomplete/slsk:/app/incomplete
sourcebot:
container_name: sourcebot
environment: