Add soularr
This commit is contained in:
@@ -7,6 +7,7 @@ docker_compose_directory_mask: 0775
|
|||||||
docker_compose_file_mask: 0664
|
docker_compose_file_mask: 0664
|
||||||
install_directory: /srv
|
install_directory: /srv
|
||||||
|
|
||||||
|
vpn_listen_port: 61383
|
||||||
|
|
||||||
sonarr_api_key: !vault |
|
sonarr_api_key: !vault |
|
||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
@@ -26,4 +27,26 @@ radarr_api_key: !vault |
|
|||||||
66613735373430636437343135303238663534316632363534323130313934306536633862303632
|
66613735373430636437343135303238663534316632363534323130313934306536633862303632
|
||||||
6431656565666466303837336430613062346331646432306164
|
6431656565666466303837336430613062346331646432306164
|
||||||
|
|
||||||
vpn_listen_port: 61383
|
slskd_api_key: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
39666166376666636338643866636262356665363135386336343030326539363163333963626163
|
||||||
|
6666313861613930663433623933343439366562356563340a663639363566336435376436303762
|
||||||
|
65613536356139356364653432643736366436333139666165383736323834656130393036306339
|
||||||
|
3065646663366136320a383936643239343039656334336236623232313035633664303434383030
|
||||||
|
66626663303961333936306661623339333634653433633035633734373261366231333365383062
|
||||||
|
33633863366639326236373234326264616136656463353164353730376366373939643061306239
|
||||||
|
36353234333363386563643066313861343633376236333162313737366536613066303633363566
|
||||||
|
36633636653261343431356230666234626162333630333536633233313036326661373836333766
|
||||||
|
39343331396465323261393563306631666632343330306637636365373963613430633236656539
|
||||||
|
63663665386334306235336262656438396336633037363534666438373534623333333061646130
|
||||||
|
653230663539386239396337306130373531
|
||||||
|
|
||||||
|
lidarr_api_key: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
64336163343037336539353364636235383462643538396534636630323266333730353636366235
|
||||||
|
3938396634613464613639356466616365353738633433320a323333333339316332613266373939
|
||||||
|
33613133653436316230623634323066383535653961386465643334396166353064666135343030
|
||||||
|
3638613966616630390a613261336531343934393634316263303632353038643634663236666162
|
||||||
|
62653835383739653661363962303862613338333865363430383335643635353037656537323034
|
||||||
|
6164633230363736306565646233333466313362653738303065
|
||||||
|
|
||||||
|
@@ -13,7 +13,9 @@
|
|||||||
- ntfy
|
- ntfy
|
||||||
- gluetun
|
- gluetun
|
||||||
- autobrr
|
- autobrr
|
||||||
- name: lidarr
|
- name: slskd
|
||||||
|
tags: test
|
||||||
|
- name: soularr
|
||||||
tags: test
|
tags: test
|
||||||
- beets
|
- beets
|
||||||
- qbittorrent
|
- qbittorrent
|
||||||
@@ -29,7 +31,7 @@
|
|||||||
- firefly3
|
- firefly3
|
||||||
- sabnzbd
|
- sabnzbd
|
||||||
- unifi-controller
|
- unifi-controller
|
||||||
- slskd
|
- lidarr
|
||||||
- navidrome
|
- navidrome
|
||||||
- recyclarr
|
- recyclarr
|
||||||
- lubelogger
|
- lubelogger
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
- name: restart service
|
- name: restart service
|
||||||
community.docker.docker_compose_v2:
|
community.docker.docker_compose_v2:
|
||||||
project_src: "{{ install_directory }}/{{ role_name }}"
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
restarted: true
|
state: restarted
|
||||||
|
@@ -8,7 +8,7 @@ services:
|
|||||||
user: "{{ service_user.uid }}:{{ media_gid }}"
|
user: "{{ service_user.uid }}:{{ media_gid }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/{{ role_name }}:/app"
|
- "{{ data_dir }}/{{ role_name }}:/app"
|
||||||
- "{{ media_storage_mnt }}/data/import/music/soulseek:/downloads"
|
- "{{ media_storage_mnt }}/data/ddl/soulseek:/downloads"
|
||||||
- "{{ media_storage_mnt }}/data/media/music:/music:ro"
|
- "{{ media_storage_mnt }}/data/media/music:/music:ro"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: true
|
traefik.enable: true
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
# debug: false
|
# debug: false
|
||||||
remote_configuration: true
|
remote_configuration: false
|
||||||
|
|
||||||
directories:
|
directories:
|
||||||
downloads: /downloads
|
downloads: /downloads
|
||||||
@@ -34,3 +34,8 @@ web:
|
|||||||
port: 5030
|
port: 5030
|
||||||
url_base: /
|
url_base: /
|
||||||
logging: false
|
logging: false
|
||||||
|
authentication:
|
||||||
|
api_keys:
|
||||||
|
my_api_key:
|
||||||
|
key: "{{ slskd_api_key }}"
|
||||||
|
#cidr: 10.0.0.0/24,172.16.0.0/12
|
||||||
|
4
ansible/roles/soularr/handlers/main.yml
Normal file
4
ansible/roles/soularr/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
- name: restart service
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
state: restarted
|
44
ansible/roles/soularr/tasks/main.yml
Normal file
44
ansible/roles/soularr/tasks/main.yml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
- name: Create service user
|
||||||
|
user:
|
||||||
|
name: "{{ role_name }}"
|
||||||
|
system: true
|
||||||
|
register: service_user
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create install directory
|
||||||
|
file:
|
||||||
|
path: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ docker_user }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create config directory
|
||||||
|
file:
|
||||||
|
path: "{{ data_dir }}/{{ role_name }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ service_user.uid }}"
|
||||||
|
group: "{{ media_gid }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Copy docker-compose file to destination
|
||||||
|
template:
|
||||||
|
src: docker-compose.yml
|
||||||
|
dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml"
|
||||||
|
owner: "{{ docker_user }}"
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
validate: docker compose -f %s config
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install config.ini
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: config.ini
|
||||||
|
dest: "{{ data_dir }}/{{ role_name }}/config.ini"
|
||||||
|
notify: restart service
|
||||||
|
|
||||||
|
- name: Start docker container
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: "{{ install_directory }}/{{ role_name }}"
|
||||||
|
pull: always
|
||||||
|
remove_orphans: yes
|
44
ansible/roles/soularr/templates/config.ini
Normal file
44
ansible/roles/soularr/templates/config.ini
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[Lidarr]
|
||||||
|
api_key = {{ lidarr_api_key }}
|
||||||
|
host_url = https://lidarr.local.{{ personal_domain }}
|
||||||
|
# This is the soulseek downloads directory as lidarr sees it
|
||||||
|
download_dir = /data/ddl/soulseek
|
||||||
|
disable_sync = False
|
||||||
|
|
||||||
|
[Slskd]
|
||||||
|
api_key = {{ slskd_api_key }}
|
||||||
|
host_url = https://soulseek.local.{{ personal_domain }}
|
||||||
|
url_base = /
|
||||||
|
download_dir = /downloads
|
||||||
|
delete_searches = False
|
||||||
|
stalled_timeout = 3600
|
||||||
|
|
||||||
|
[Release Settings]
|
||||||
|
use_most_common_tracknum = True
|
||||||
|
allow_multi_disc = True
|
||||||
|
accepted_countries = Europe,Japan,United Kingdom,United States,[Worldwide],Australia,Canada
|
||||||
|
skip_region_check = False
|
||||||
|
accepted_formats = CD,Digital Media,Vinyl
|
||||||
|
|
||||||
|
[Search Settings]
|
||||||
|
search_timeout = 5000
|
||||||
|
maximum_peer_queue = 50
|
||||||
|
minimum_peer_upload_speed = 0
|
||||||
|
minimum_filename_match_ratio = 0.8
|
||||||
|
allowed_filetypes = flac 24/192,flac 16/44.1,flac
|
||||||
|
ignored_users = User1,User2,Fred,Bob
|
||||||
|
search_for_tracks = True
|
||||||
|
album_prepend_artist = False
|
||||||
|
track_prepend_artist = True
|
||||||
|
search_type = incrementing_page
|
||||||
|
number_of_albums_to_grab = 10
|
||||||
|
remove_wanted_on_failure = False
|
||||||
|
title_blacklist = BlacklistWord1,blacklistword2
|
||||||
|
search_source = missing
|
||||||
|
|
||||||
|
[Logging]
|
||||||
|
level = INFO
|
||||||
|
# https://docs.python.org/3/library/logging.html#logrecord-attributes
|
||||||
|
format = [%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s
|
||||||
|
# https://docs.python.org/3/library/time.html#time.strftime
|
||||||
|
datefmt = %Y-%m-%dT%H:%M:%S%z
|
11
ansible/roles/soularr/templates/docker-compose.yml
Normal file
11
ansible/roles/soularr/templates/docker-compose.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
services:
|
||||||
|
soularr:
|
||||||
|
container_name: "soularr"
|
||||||
|
image: mrusse08/soularr:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
user: "{{ service_user.uid }}:{{ media_gid }}"
|
||||||
|
environment:
|
||||||
|
- "TZ={{ timezone }}"
|
||||||
|
volumes:
|
||||||
|
- "{{ data_dir }}/{{ role_name }}:/data"
|
||||||
|
- "{{ media_storage_mnt }}/data/ddl/soulseek:/downloads"
|
Reference in New Issue
Block a user