4K Step 2: Recyclarr config + systemd-timer sync (radarr-4k/sonarr-4k)
Remux+WEB 2160p (radarr-4k) + WEB-2160p (sonarr-4k) profiles applied and assigned to the Overseerr 4K servers. DTS family explicitly pinned score 0 (Sonos-Arc), Dolby/Atmos at guide default. recyclarr:8, sync via systemd timer (daily, docker-run oneshot). Idempotent (changed=0); keys via ansible-vault, .env not committed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
---
|
||||
- name: Deploy Recyclarr 4K (config + systemd-timer sync) on media-server
|
||||
hosts: media-server
|
||||
become: true
|
||||
vars:
|
||||
app_dir: /home/tommy/recyclarr-4k
|
||||
|
||||
handlers:
|
||||
- name: reload systemd
|
||||
ansible.builtin.systemd_service:
|
||||
daemon_reload: true
|
||||
|
||||
tasks:
|
||||
- name: Create recyclarr-4k config dir
|
||||
ansible.builtin.file:
|
||||
path: "{{ app_dir }}/config"
|
||||
state: directory
|
||||
owner: tommy
|
||||
group: tommy
|
||||
mode: "0755"
|
||||
|
||||
- name: Write recyclarr.yml (no secrets; URLs/keys via !env_var)
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ app_dir }}/config/recyclarr.yml"
|
||||
owner: tommy
|
||||
group: tommy
|
||||
mode: "0644"
|
||||
content: |
|
||||
# yaml-language-server: $schema=https://schemas.recyclarr.dev/v8/config-schema.json
|
||||
# 4K quality-first: radarr-4k (Remux+WEB 2160p) + sonarr-4k (WEB-2160p)
|
||||
# TRaSH guide profiles + recommended naming + DTS neutral (Sonos Arc down-weight).
|
||||
|
||||
radarr:
|
||||
radarr-4k:
|
||||
base_url: !env_var RADARR_4K_URL
|
||||
api_key: !env_var RADARR_4K_APIKEY
|
||||
|
||||
quality_definition:
|
||||
type: movie
|
||||
|
||||
quality_profiles:
|
||||
- trash_id: fd161a61e3ab826d3a22d53f935696dd # Remux + WEB 2160p
|
||||
reset_unmatched_scores:
|
||||
enabled: true
|
||||
|
||||
custom_format_groups:
|
||||
add:
|
||||
- trash_id: ff204bbcecdd487d1cefcefdbf0c278d # [Optional] Golden Rule UHD
|
||||
select:
|
||||
- 839bea857ed2c0a8e084f3cbdbd65ecb # x265 (no HDR/DV)
|
||||
- trash_id: a3ac6af01d78e4f21fcb75f601ac96df # [Unwanted] Unwanted Formats
|
||||
select:
|
||||
- b8cd450cbfa689c0259a01d9e29ba3d6 # 3D
|
||||
- cae4ca30163749b891686f95532519bd # AV1
|
||||
- b6832f586342ef70d9c128d40c07b872 # Bad Dual Groups
|
||||
- cc444569854e9de0b084ab2b8b1532b2 # Black and White Editions
|
||||
- ed38b889b31be83fda192888e2286d83 # BR-DISK
|
||||
- 0a3f082873eb454bde444150b70253cc # Extras
|
||||
- e6886871085226c3da1830830146846c # Generated Dynamic HDR
|
||||
- 90a6f9a284dff5103f6346090e6280c8 # LQ
|
||||
- e204b80c87be9497a8a6eaff48f72905 # LQ (Release Title)
|
||||
- 712d74cd88bceb883ee32f773656b1f5 # Sing-Along Versions
|
||||
- bfd8eb01832d646a0a89c4deb46f8564 # Upscaled
|
||||
|
||||
media_naming:
|
||||
folder: default
|
||||
movie:
|
||||
rename: true
|
||||
standard: standard
|
||||
|
||||
# DTS down-weight (Sonos Arc): neutral score 0 (NOT negative).
|
||||
# Dolby/TrueHD/Atmos left at guide default (unset here).
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
|
||||
- 2f22d89048b01681dde8afe203bf2e95 # DTS:X
|
||||
- 8e109e50e0a0b83a5098b056e13bf6db # DTS-HD HRA
|
||||
- 1c1a4c5e823891c75bc50380a6866f73 # DTS (core)
|
||||
- f9f847ac70a0af62ea4a08280b859636 # DTS-ES
|
||||
assign_scores_to:
|
||||
- name: Remux + WEB 2160p
|
||||
score: 0
|
||||
|
||||
sonarr:
|
||||
sonarr-4k:
|
||||
base_url: !env_var SONARR_4K_URL
|
||||
api_key: !env_var SONARR_4K_APIKEY
|
||||
|
||||
quality_definition:
|
||||
type: series
|
||||
|
||||
quality_profiles:
|
||||
- trash_id: d1498e7d189fbe6c7110ceaabb7473e6 # WEB-2160p
|
||||
reset_unmatched_scores:
|
||||
enabled: true
|
||||
|
||||
custom_format_groups:
|
||||
add:
|
||||
- trash_id: e3f37512790f00d0e89e54fe5e790d1c # [Optional] Golden Rule UHD
|
||||
select:
|
||||
- 9b64dff695c2115facf1b6ea59c9bd07 # x265 (no HDR/DV)
|
||||
- trash_id: 85fae4a2294965b75710ef2989c850eb # [Streaming Services] HD/UHD boost
|
||||
- trash_id: 59c3af66780d08332fdc64e68297098f # [Unwanted] Unwanted Formats
|
||||
select:
|
||||
- 15a05bc7c1a36e2b57fd628f8977e2fc # AV1
|
||||
- 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups
|
||||
- 85c61753df5da1fb2aab6f2a47426b09 # BR-DISK
|
||||
- 6f808933a71bd9666531610cb8c059cc # BR-DISK (BTN)
|
||||
- fbcb31d8dabd2a319072b84fc0b7249c # Extras
|
||||
- 9c11cd3f07101cdba90a2d81cf0e56b4 # LQ
|
||||
- e2315f990da2e2cbfc9fa5b7a6fcfe48 # LQ (Release Title)
|
||||
- 23297a736ca77c0fc8e70f8edd7ee56c # Upscaled
|
||||
|
||||
media_naming:
|
||||
series: default
|
||||
season: default
|
||||
episodes:
|
||||
rename: true
|
||||
standard: default
|
||||
daily: default
|
||||
anime: default
|
||||
|
||||
- name: Write .env (4K instance URLs + keys from ansible-vault)
|
||||
ansible.builtin.copy:
|
||||
dest: "{{ app_dir }}/.env"
|
||||
owner: tommy
|
||||
group: tommy
|
||||
mode: "0600"
|
||||
content: |
|
||||
RADARR_4K_URL=http://192.168.99.183:7879
|
||||
RADARR_4K_APIKEY={{ vault_radarr4k_apikey }}
|
||||
SONARR_4K_URL=http://192.168.99.183:8990
|
||||
SONARR_4K_APIKEY={{ vault_sonarr4k_apikey }}
|
||||
no_log: true
|
||||
|
||||
- name: Install recyclarr-4k sync service (docker-run oneshot, NOT container cron)
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/systemd/system/recyclarr-4k-sync.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Recyclarr 4K sync (radarr-4k + sonarr-4k)
|
||||
After=docker.service
|
||||
Requires=docker.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/docker run --rm --env-file {{ app_dir }}/.env -v {{ app_dir }}/config:/config ghcr.io/recyclarr/recyclarr:8 sync
|
||||
notify: reload systemd
|
||||
|
||||
- name: Install recyclarr-4k sync timer (daily, VPN-monitor pattern)
|
||||
ansible.builtin.copy:
|
||||
dest: /etc/systemd/system/recyclarr-4k-sync.timer
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
content: |
|
||||
[Unit]
|
||||
Description=Daily Recyclarr 4K sync
|
||||
|
||||
[Timer]
|
||||
OnCalendar=*-*-* 04:00:00
|
||||
Persistent=true
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
notify: reload systemd
|
||||
|
||||
- name: Enable recyclarr-4k timer
|
||||
ansible.builtin.systemd_service:
|
||||
name: recyclarr-4k-sync.timer
|
||||
enabled: true
|
||||
state: started
|
||||
Reference in New Issue
Block a user