Added *arr Stack

This commit is contained in:
Annika Merris 2026-01-18 16:19:33 +00:00
parent 0e8b1d7d21
commit 76fc2c64a5
14 changed files with 183 additions and 6 deletions

View file

@ -1,3 +1,3 @@
{ {
"ansible.python.interpreterPath": "/workspace/dev/ansible/minilab/.venv/bin/python" "ansible.python.interpreterPath": "/usr/bin/python"
} }

View file

@ -0,0 +1,16 @@
---
services:
lidarr:
container_name: lidarr
image: ghcr.io/hotio/lidarr:${LIDARR_TAG:-latest}
ports:
- "8686:8686"
environment:
- PUID=1000
- PGID=10000
- UMASK=002
- TZ=America/New_York
- WEBUI_PORTS=8686/tcp
volumes:
- /opt/arr/lidarr/config:/config
- /mnt/storage:/data

View file

@ -0,0 +1,15 @@
---
services:
prowlarr:
container_name: prowlarr
image: ghcr.io/hotio/prowlarr:${PROWLARR_TAG:-latest}
ports:
- "9696:9696"
environment:
- PUID=1000
- PGID=10000
- UMASK=002
- TZ=America/New_York
- WEBUI_PORTS=9696/tcp
volumes:
- /opt/arr/prowlarr/config:/config

View file

@ -0,0 +1,16 @@
---
services:
radarr:
container_name: radarr
image: ghcr.io/hotio/radarr:${RADARR_TAG:-latest}
ports:
- "7878:7878"
environment:
- PUID=1000
- PGID=10000
- UMASK=002
- TZ=America/New_York
- WEBUI_PORTS=7878/tcp
volumes:
- /opt/arr/radarr/config:/config
- /mnt/storage:/data

View file

@ -0,0 +1,15 @@
---
services:
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:${SABNZBD_TAG:-latest}
container_name: sabnzbd
environment:
- PUID=1000
- PGID=10000
- TZ=America/New_York
volumes:
- /opt/arr/sabnzbd/config:/config
- /mnt/storage:/data
ports:
- 8081:8080
restart: unless-stopped

View file

@ -0,0 +1,16 @@
---
services:
sonarr:
container_name: sonarr
image: ghcr.io/hotio/sonarr:${SONARR_TAG:-latest}
ports:
- "8989:8989"
environment:
- PUID=1000
- PGID=10000
- UMASK=002
- TZ=America/New_York
- WEBUI_PORTS=8989/tcp
volumes:
- /opt/arr/sonarr/config:/config
- /mnt/storage:/data

View file

@ -0,0 +1,73 @@
---
- name: Load distro-specific variables
ansible.builtin.include_vars: '{{ item }}'
tags: always
with_first_found:
- files:
- "{{ ansible_facts['distribution'] }}.yaml"
skip: true
- name: Ensure Arr stack is running on this device
block:
- name: Ensure presense of folders for arr stack
tags: packages,docker,arr,sabnzbd
ansible.builtin.file:
path: "/opt/arr/{{ item }}"
state: directory
recurse: true
owner: 1000
group: 1000
loop:
- "sabnzbd/config"
- "radarr/config"
- "sonarr/config"
- "lidarr/config"
- "prowlarr/config"
- "homarr/appdata"
- name: Ensure environment files are present for arr stack
tags: packages,docker,arr,sabnzbd
ansible.builtin.template:
src: env.j2
dest: /opt/arr/{{ item }}/.env
owner: root
group: root
mode: u=rw,g=r,o=r
loop:
- "sabnzbd"
- "radarr"
- "sonarr"
- "lidarr"
- "prowlarr"
- "homarr"
- name: Ensure compose files are present for arr stack
tags: packages,docker,arr,sabnzbd
ansible.builtin.copy:
src: "{{ item }}.yaml"
dest: "/opt/arr/{{ item }}/docker-compose.yaml"
owner: 1000
group: 1000
mode: u=rw,g=r,o=r
loop:
- "sabnzbd"
- "radarr"
- "sonarr"
- "lidarr"
- "prowlarr"
- "homarr"
- name: Ensure docker containers are pulled and running
tags: docker,arr,sabnzbd
community.docker.docker_compose_v2:
project_src: /opt/arr/{{ item }}
pull: always
loop:
- "sabnzbd"
- "radarr"
- "sonarr"
- "lidarr"
- "prowlarr"
- "homarr"
rescue:
- name: Set that this task failed
ansible.builtin.set_fact:
task_failed: true

View file

@ -0,0 +1,6 @@
SABNZBD_TAG={{ arr_sabnzbd_tag }}
RADARR_TAG={{ arr_radarr_tag }}
SONARR_TAG={{ arr_sonarr_tag }}
LIDARR_TAG={{ arr_lidarr_tag }}
PROWLARR_TAG={{ arr_prowlarr_tag }}
HOMARR_TAG={{ arr_homarr_tag }}

View file

@ -0,0 +1,2 @@
username={{ arr_smb_username }}
password={{ arr_smb_password }}

View file

@ -0,0 +1,6 @@
arr_sabnzbd_tag: 4.5.5
arr_radarr_tag: release-6.0.4.10291
arr_sonarr_tag: release-4.0.16.2944
arr_lidarr_tag: release-3.1.0.4875
arr_prowlarr_tag: release-2.3.0.5236
arr_homarr_tag: v1.50.1

View file

@ -1,7 +1,7 @@
--- ---
services: services:
postgresql: postgresql:
image: docker.io/library/postgres:16-alpine image: postgres:16-alpine
restart: unless-stopped restart: unless-stopped
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
@ -18,7 +18,7 @@ services:
env_file: env_file:
- .env - .env
redis: redis:
image: docker.io/library/redis:alpine image: redis:alpine
command: --save 60 1 --loglevel warning command: --save 60 1 --loglevel warning
restart: unless-stopped restart: unless-stopped
healthcheck: healthcheck:

10
doit
View file

@ -2,4 +2,12 @@
clear clear
echo "" > ansible.log echo "" > ansible.log
/workspace/dev/ansible/minilab/.venv/bin/ansible-playbook --vault-password-file vault-password.txt minilab.yaml $@ ANSIBLE_PATH=ansible-playbook
if hash ansible-playbook 2>/dev/null; then
ANSIBLE_PATH=ansible-playbook
else
ANSIBLE_PATH=./.venv/bin/ansible-playbook
fi
$ANSIBLE_PATH --vault-password-file vault-password.txt minilab.yaml $@

View file

@ -15,7 +15,7 @@ all:
# ansible_host: 10.69.1.50 # ansible_host: 10.69.1.50
reir: reir:
ansible_host: 10.69.9.11 ansible_host: 10.69.9.11
trady: trady:
ansible_host: 10.69.2.11 ansible_host: 10.69.2.11
stephanie: stephanie:
ansible_host: 10.69.2.51 ansible_host: 10.69.2.51
@ -66,3 +66,6 @@ all:
caddy: caddy:
hosts: hosts:
nemetona: nemetona:
arr:
hosts:
nemetona:

View file

@ -52,5 +52,6 @@
tags: docker,authentik,caddy tags: docker,authentik,caddy
become: true become: true
roles: roles:
- adhdgirl.minilab.authentik # - adhdgirl.minilab.authentik
- adhdgirl.minilab.caddy - adhdgirl.minilab.caddy
- adhdgirl.minilab.arr