40da21016b
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>
176 lines
6.7 KiB
YAML
176 lines
6.7 KiB
YAML
---
|
|
- 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
|