aboutsummaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2026-07-16 13:15:18 +0300
committerJan Tuomi <jan@jantuomi.fi>2026-07-16 13:15:18 +0300
commit4d8cfb2a9146e4eefe14364f97536814156e6f07 (patch)
tree9df49bd19ed85cbcbda762a948f25ecffb1fe840 /roles
parent00f6ffae834b7b2735282db8b49dc51474aac572 (diff)
Fix permissions problems in dl jail
Diffstat (limited to 'roles')
-rw-r--r--roles/jails/16_dl/handlers/main.yml38
-rw-r--r--roles/jails/16_dl/tasks/main.yml99
-rw-r--r--roles/jails/16_dl/templates/nzbget.conf.j210
-rw-r--r--roles/jails/16_dl/templates/usr_local_share_nzbget_nzbget.conf.j22
4 files changed, 119 insertions, 30 deletions
diff --git a/roles/jails/16_dl/handlers/main.yml b/roles/jails/16_dl/handlers/main.yml
index f977eb1..73a42fd 100644
--- a/roles/jails/16_dl/handlers/main.yml
+++ b/roles/jails/16_dl/handlers/main.yml
@@ -1,2 +1,38 @@
-- name: Restart wireguard
+- name: Get random wireguard tunnel
shell: /usr/local/bin/wg_random_tunnel
+
+- name: Restart transmission
+ shell: |
+ service transmission stop || true
+ sleep 2
+ service transmission start
+
+- name: Restart nzbget
+ shell: |
+ service nzbget stop || true
+ sleep 2
+ service nzbget start
+
+- name: Restart prowlarr
+ shell: |
+ service prowlarr stop || true
+ sleep 2
+ service prowlarr start
+
+- name: Restart sonarr
+ shell: |
+ service sonarr stop || true
+ sleep 2
+ service sonarr start
+
+- name: Restart radarr
+ shell: |
+ service radarr stop || true
+ sleep 2
+ service radarr start
+
+- name: Restart lidarr
+ shell: |
+ service lidarr stop || true
+ sleep 2
+ service lidarr start
diff --git a/roles/jails/16_dl/tasks/main.yml b/roles/jails/16_dl/tasks/main.yml
index b187447..0b26313 100644
--- a/roles/jails/16_dl/tasks/main.yml
+++ b/roles/jails/16_dl/tasks/main.yml
@@ -2,6 +2,33 @@
name: jail
tasks_from: jail_setup
+- name: Create storage group
+ shell: "pw groupshow storage || pw groupadd storage -g 1001"
+ register: _storage_group
+ changed_when: "'storage' not in _storage_group.stdout"
+
+- name: Create storage user
+ shell: "id storage || pw useradd storage -u 1001 -g 1001 -d / -s /bin/sh"
+ register: _storage_user
+ changed_when: _storage_user.rc != 0
+
+- name: Add service users to storage group
+ shell: "pw groupmod storage -m sonarr,radarr,lidarr,transmission"
+ changed_when: false
+
+- name: Configure transmission to run as storage user
+ community.general.sysrc:
+ name: transmission_user
+ value: storage
+
+- name: Fix transmission config directory ownership
+ file:
+ path: /usr/local/etc/transmission/home
+ state: directory
+ owner: storage
+ group: storage
+ recurse: true
+
- name: Configure transmission download directory
community.general.sysrc:
name: transmission_download_dir
@@ -14,52 +41,86 @@
owner: root
group: wheel
mode: "0644"
- #force: false
+ notify: Restart transmission
-- name: Deploy initial nzbget config
+- name: Deploy nzbget config
template:
- src: "{{ jail_role_dir }}/templates/nzbget.conf.j2"
- dest: /usr/local/share/nzbget/nzbget.conf
+ src: "{{ jail_role_dir }}/templates/usr_local_share_nzbget_nzbget.conf.j2"
+ dest: /usr/local/etc/nzbget.conf
owner: root
group: wheel
- mode: "0644"
- force: false
+ mode: "0444"
+ notify: Restart nzbget
+
+- name: Create nzbget data directory
+ file:
+ path: /var/db/nzbget
+ state: directory
+ owner: storage
+ group: storage
+ mode: "0755"
+
+- name: Configure nzbget config path
+ community.general.sysrc:
+ name: nzbget_conf
+ value: /usr/local/etc/nzbget.conf
+ notify: Restart nzbget
+
+- name: Configure nzbget user
+ community.general.sysrc:
+ name: nzbget_user
+ value: storage
+ notify: Restart nzbget
- name: Deploy initial prowlarr config
template:
src: "{{ jail_role_dir }}/templates/prowlarr_config.xml.j2"
dest: /usr/local/prowlarr/config.xml
- owner: root
- group: wheel
+ owner: prowlarr
+ group: prowlarr
mode: "0644"
- force: false
+ notify: Restart prowlarr
- name: Deploy initial sonarr config
template:
src: "{{ jail_role_dir }}/templates/sonarr_config.xml.j2"
dest: /usr/local/sonarr/config.xml
- owner: root
- group: wheel
+ owner: sonarr
+ group: sonarr
mode: "0644"
- force: false
+ notify: Restart sonarr
- name: Deploy initial radarr config
template:
src: "{{ jail_role_dir }}/templates/radarr_config.xml.j2"
dest: /usr/local/radarr/config.xml
- owner: root
- group: wheel
+ owner: radarr
+ group: radarr
mode: "0644"
- force: false
+ notify: Restart radarr
- name: Deploy initial lidarr config
template:
src: "{{ jail_role_dir }}/templates/lidarr_config.xml.j2"
dest: /usr/local/lidarr/config.xml
- owner: root
- group: wheel
+ owner: lidarr
+ group: lidarr
mode: "0644"
- force: false
+ notify: Restart lidarr
+
+# Replace bundled ffprobe with system version (bundled version lacks VVC/xHE-AAC support)
+- name: Replace bundled ffprobe with system ffprobe
+ file:
+ src: /usr/local/bin/ffprobe
+ dest: "/usr/local/share/{{ item }}/bin/ffprobe"
+ state: link
+ force: true
+ loop:
+ - sonarr
+ - radarr
+ notify:
+ - Restart sonarr
+ - Restart radarr
- name: Create wireguard config directory
file:
@@ -85,6 +146,7 @@
owner: root
group: wheel
mode: "0755"
+ notify: Get random wireguard tunnel
- name: Deploy wg_random_tunnel rc.d script
template:
@@ -93,6 +155,7 @@
owner: root
group: wheel
mode: "0755"
+ notify: Get random wireguard tunnel
- name: Deploy crontab
template:
diff --git a/roles/jails/16_dl/templates/nzbget.conf.j2 b/roles/jails/16_dl/templates/nzbget.conf.j2
deleted file mode 100644
index 754e56f..0000000
--- a/roles/jails/16_dl/templates/nzbget.conf.j2
+++ /dev/null
@@ -1,10 +0,0 @@
-MainDir=/var/db/nzbget
-DestDir=/mnt/storage/downloads
-InterDir=/var/db/nzbget/tmp
-WebDir=/usr/local/share/nzbget/webui
-ConfigTemplate=/usr/local/share/nzbget/nzbget.template.conf
-LockFile=/var/db/nzbget/nzbget.lock
-LogFile=/var/db/nzbget/nzbget.log
-ControlIP=0.0.0.0
-ControlPort=6789
-AuthorizedIP=10.0.0.0/8,192.168.0.0/16
diff --git a/roles/jails/16_dl/templates/usr_local_share_nzbget_nzbget.conf.j2 b/roles/jails/16_dl/templates/usr_local_share_nzbget_nzbget.conf.j2
index f231c87..d6d4340 100644
--- a/roles/jails/16_dl/templates/usr_local_share_nzbget_nzbget.conf.j2
+++ b/roles/jails/16_dl/templates/usr_local_share_nzbget_nzbget.conf.j2
@@ -46,7 +46,7 @@ SecureKey=
AuthorizedIP=192.168.*.*
CertCheck=no
UpdateCheck=stable
-DaemonUsername=root
+DaemonUsername=
UMask=0002
Category1.Name=movies