feat: add ArrStack and Downloaders services with deployment configurations
This commit is contained in:
parent
56b056252c
commit
8087eb6814
@ -39,3 +39,7 @@
|
||||
enabled: true
|
||||
- name: beszel
|
||||
enabled: true
|
||||
- name: arr-stack
|
||||
enabled: true
|
||||
- name: downloaders
|
||||
enabled: true
|
||||
|
@ -0,0 +1,34 @@
|
||||
---
|
||||
- name: Deploy ArrStack service
|
||||
block:
|
||||
- name: Set ArrStack directories
|
||||
ansible.builtin.set_fact:
|
||||
arr_stack_data_dir: "{{ ansible_env.HOME }}/services/arr-stack"
|
||||
arr_stack_data_dir: "/mnt/object_storage/services/arr-stack"
|
||||
|
||||
- name: Create ArrStack directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ arr_stack_data_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Create ArrStack data directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ arr_stack_data_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Deploy ArrStack docker-compose.yml
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: "{{ arr_stack_data_dir }}/docker-compose.yml"
|
||||
mode: "0644"
|
||||
register: arr-stack_compose
|
||||
|
||||
- name: Stop ArrStack service
|
||||
ansible.builtin.command: docker compose -f "{{ arr_stack_data_dir }}/docker-compose.yml" down --remove-orphans
|
||||
when: arr-stack_compose.changed
|
||||
|
||||
- name: Start ArrStack service
|
||||
ansible.builtin.command: docker compose -f "{{ arr_stack_data_dir }}/docker-compose.yml" up -d
|
||||
when: arr-stack_compose.changed
|
@ -0,0 +1,111 @@
|
||||
name: arr-stack
|
||||
services:
|
||||
radarr:
|
||||
container_name: radarr
|
||||
image: lscr.io/linuxserver/radarr:latest
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 7878:7878
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- {{ arr_stack_data_dir }}/radarr-config:/config
|
||||
- /mnt/object_storage:/storage
|
||||
restart: "unless-stopped"
|
||||
networks:
|
||||
- arr-stack-net
|
||||
|
||||
sonarr:
|
||||
image: linuxserver/sonarr:latest
|
||||
container_name: sonarr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- {{ arr_stack_data_dir }}/sonarr-config:/config
|
||||
- /mnt/object_storage:/storage
|
||||
ports:
|
||||
- 8989:8989
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arr-stack-net
|
||||
|
||||
lidarr:
|
||||
image: linuxserver/lidarr:latest
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 8686:8686
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- {{ arr_stack_data_dir }}/lidarr-config:/config
|
||||
- /mnt/object_storage:/storage
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arr-stack-net
|
||||
|
||||
prowlarr:
|
||||
container_name: prowlarr
|
||||
image: linuxserver/prowlarr:latest
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- {{ arr_stack_data_dir }}/prowlarr-config:/config
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
ports:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arr-stack-net
|
||||
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
- LOG_HTML=${LOG_HTML:-false}
|
||||
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- "8191:8191"
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arr-stack-net
|
||||
|
||||
overseerr:
|
||||
image: lscr.io/linuxserver/overseerr:latest
|
||||
container_name: overseerr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- {{ arr_stack_data_dir }}/overseerr-config:/config
|
||||
ports:
|
||||
- 5055:5055
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- arr-stack-net
|
||||
- caddy_network
|
||||
|
||||
networks:
|
||||
arr-stack-net:
|
||||
caddy_network:
|
||||
external: true
|
||||
name: caddy_default
|
@ -13,11 +13,6 @@ git.vleeuwen.me git.mvl.sh {
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
||||
jf.vleeuwen.me jf.mvl.sh {
|
||||
reverse_proxy jellyfin:8096
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
||||
status.vleeuwen.me status.mvl.sh {
|
||||
reverse_proxy uptime-kuma:3001
|
||||
tls {{ caddy_email }}
|
||||
@ -52,3 +47,18 @@ df.mvl.sh {
|
||||
redir / https://git.mvl.sh/vleeuwenmenno/dotfiles/raw/branch/master/setup.sh
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
||||
overseerr.mvl.sh {
|
||||
reverse_proxy overseerr:5055
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
||||
jellyfin.mvl.sh jellyfin.vleeuwen.me jf.vleeuwen.me jf.mvl.sh {
|
||||
reverse_proxy jellyfin:8096
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
||||
fladder.mvl.sh {
|
||||
reverse_proxy fladder:80
|
||||
tls {{ caddy_email }}
|
||||
}
|
||||
|
@ -0,0 +1,62 @@
|
||||
name: downloaders
|
||||
services:
|
||||
gluetun:
|
||||
image: qmcgaw/gluetun:latest
|
||||
privileged: true
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
networks:
|
||||
- shared_network
|
||||
ports:
|
||||
- 6881:6881
|
||||
- 6881:6881/udp
|
||||
- 8085:8085
|
||||
- 7788:8080
|
||||
devices:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
volumes:
|
||||
- {{ downloaders_data_dir }}/gluetun-config:/gluetun
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- VPN_SERVICE_PROVIDER={{ lookup('community.general.onepassword', 'qm7lxjrv2ctgzsjuwtolxpd5i4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='VPN_SERVICE_PROVIDER') }}
|
||||
- OPENVPN_USER={{ lookup('community.general.onepassword', 'qm7lxjrv2ctgzsjuwtolxpd5i4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='OPENVPN_USER') }}
|
||||
- OPENVPN_PASSWORD={{ lookup('community.general.onepassword', 'qm7lxjrv2ctgzsjuwtolxpd5i4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='OPENVPN_PASSWORD') }}
|
||||
- SERVER_COUNTRIES={{ lookup('community.general.onepassword', 'qm7lxjrv2ctgzsjuwtolxpd5i4', vault='j7nmhqlsjmp2r6umly5t75hzb4', field='SERVER_COUNTRIES') }}
|
||||
restart: always
|
||||
|
||||
sabnzbd:
|
||||
image: lscr.io/linuxserver/sabnzbd:latest
|
||||
container_name: sabnzbd
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- {{ downloaders_data_dir }}/sabnzbd-config:/config
|
||||
- /mnt/object_storage:/storage
|
||||
restart: unless-stopped
|
||||
network_mode: "service:gluetun"
|
||||
depends_on:
|
||||
gluetun:
|
||||
condition: service_healthy
|
||||
|
||||
qbittorrent:
|
||||
image: lscr.io/linuxserver/qbittorrent
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- WEBUI_PORT=8085
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- {{ downloaders_data_dir }}/qbit-config:/config
|
||||
- /mnt/object_storage:/storage
|
||||
restart: always
|
||||
network_mode: "service:gluetun"
|
||||
depends_on:
|
||||
gluetun:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
shared_network:
|
||||
external: true
|
@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: Deploy Downloaders service
|
||||
block:
|
||||
- name: Set Downloaders directories
|
||||
ansible.builtin.set_fact:
|
||||
downloaders_data_dir: "{{ ansible_env.HOME }}/services/downloaders"
|
||||
|
||||
- name: Create Downloaders directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ downloaders_data_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Deploy Downloaders docker-compose.yml
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: "{{ downloaders_data_dir }}/docker-compose.yml"
|
||||
mode: "0644"
|
||||
register: downloaders_compose
|
||||
|
||||
- name: Stop Downloaders service
|
||||
ansible.builtin.command: docker compose -f "{{ downloaders_data_dir }}/docker-compose.yml" down --remove-orphans
|
||||
when: downloaders_compose.changed
|
||||
|
||||
- name: Start Downloaders service
|
||||
ansible.builtin.command: docker compose -f "{{ downloaders_data_dir }}/docker-compose.yml" up -d
|
||||
when: downloaders_compose.changed
|
@ -6,7 +6,7 @@ services:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
- JELLYFIN_PublishedServerUrl=https://jellyfin.vleeuwen.me
|
||||
- JELLYFIN_PublishedServerUrl=https://jellyfin.mvl.sh
|
||||
volumes:
|
||||
- {{jellyfin_data_dir}}/jellyfin-config:/config
|
||||
- /mnt/object_storage/movies:/movies
|
||||
@ -24,6 +24,18 @@ services:
|
||||
networks:
|
||||
- caddy_network
|
||||
|
||||
fladder:
|
||||
image: ghcr.io/donutware/fladder:latest
|
||||
ports:
|
||||
- 5423:80
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=100
|
||||
- TZ=Europe/Amsterdam
|
||||
- BASE_URL=https://fladder.mvl.sh
|
||||
networks:
|
||||
- caddy_network
|
||||
|
||||
networks:
|
||||
caddy_network:
|
||||
external: true
|
||||
|
18
config/home-manager/flake.lock
generated
18
config/home-manager/flake.lock
generated
@ -7,11 +7,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742234739,
|
||||
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=",
|
||||
"lastModified": 1742655702,
|
||||
"narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59",
|
||||
"rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -23,11 +23,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1742268799,
|
||||
"narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=",
|
||||
"lastModified": 1742751704,
|
||||
"narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "da044451c6a70518db5b730fe277b70f494188f1",
|
||||
"rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -39,11 +39,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1742288794,
|
||||
"narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
|
||||
"lastModified": 1742669843,
|
||||
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
|
||||
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user