You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible-homelab/roles/portainer_arr/tasks/main.yml

138 lines
4.6 KiB
YAML

---
- name: "Arr | Restore any missing volumes from S3"
ansible.builtin.include_role:
name: chatton.docker_backup.docker_s3_volume_restore
vars:
docker_backup_s3_volume: "{{ item }}"
with_items:
- name: "{{ arr_portainer_stack_name }}_qbittorrent_config"
- name: "{{ arr_portainer_stack_name }}_radarr_config"
- name: "{{ arr_portainer_stack_name }}_sonarr_config"
- name: "{{ arr_portainer_stack_name }}_jackett_config"
- name: "{{ arr_portainer_stack_name }}_gluetun"
- name: "Arr | Update Portainer."
chatton.portainer.portainer_stack:
username: '{{ portainer_user }}'
password: '{{ portainer.password }}'
base_url: '{{ portainer_base_url }}'
stack_name: '{{ arr_portainer_stack_name }}'
endpoint_id: '{{ portainer_endpoint }}'
state: present
definition:
version: "3.1"
services:
protonwire:
container_name: protonwire
image: "qmcgaw/gluetun"
restart: unless-stopped
environment:
VPN_SERVICE_PROVIDER: protonvpn
VPN_TYPE: wireguard
SERVER_COUNTRIES: Netherlands
WIREGUARD_PRIVATE_KEY: "{{ vpn.wireguard_private_key }}"
FIREWALL_OUTBOUND_SUBNETS: "{{ vpn.lan_network }}"
cap_add:
- NET_ADMIN
volumes:
- gluetun:/gluetun
ports:
# qbittorrent
- "{{ qbittorrent_exposed_web_ui_port }}:15000"
- "{{ qbittorrent_exposed_download_port }}:6881"
- "{{ qbittorrent_exposed_download_port }}:6881/udp"
# radarr
- "{{ radarr_exposed_port }}:7878"
# sonarr
- "{{ sonarr_exposed_port }}:8989"
# jackett
- "{{ jackett_exposed_port }}:9117"
- "8191:8191"
qbittorrent:
labels: "{{ backup_labels}}"
depends_on:
- protonwire
image: "{{ qbittorrent_image }}:{{ qbittorrent_tag }}"
container_name: "{{ qbittorrent_container_name }}"
network_mode: "service:protonwire"
environment:
- "PUID={{ qbittorrent_puid }}"
- "PGID={{ qbittorrent_pgid }}"
- TZ=Europe/London
- "WEBUI_PORT=15000"
volumes:
- qbittorrent_config:/config
- "{{ directories.downloads_dir }}:/downloads"
restart: unless-stopped
radarr:
labels: "{{ backup_labels}}"
depends_on:
- protonwire
image: "{{ radarr_image }}:{{ radarr_tag }}"
container_name: "{{ radarr_container_name }}"
network_mode: "service:protonwire"
environment:
- "PUID={{ radarr_puid }}"
- "PGID={{ radarr_pgid }}"
- TZ=Europe/London
volumes:
- radarr_config:/config
- "{{ directories.movies_dir }}:/movies"
- "{{ directories.downloads_dir }}:/downloads"
restart: unless-stopped
sonarr:
depends_on:
- protonwire
image: "{{ sonarr_image }}:{{ sonarr_tag }}"
labels: "{{ backup_labels}}"
container_name: "{{ sonarr_container_name }}"
network_mode: "service:protonwire"
environment:
- "PUID={{ sonarr_puid }}"
- "PGID={{ sonarr_pgid }}"
- TZ=Europe/London
volumes:
- sonarr_config:/config
- "{{ directories.tv_dir }}:/tv"
- "{{ directories.downloads_dir }}:/downloads"
restart: unless-stopped
jackett:
labels: "{{ backup_labels}}"
depends_on:
- protonwire
image: "{{ jackett_image }}:{{ jackett_tag }}"
container_name: "{{ jackett_container_name }}"
network_mode: "service:protonwire"
environment:
- "PUID={{ jackett_puid }}"
- "PGID={{ jackett_pgid }}"
- TZ=Europe/London
- AUTO_UPDATE=true
volumes:
- jackett_config:/config
- "{{ directories.downloads_dir }}:/downloads"
restart: unless-stopped
flaresolverr:
network_mode: "service:protonwire"
depends_on:
- protonwire
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- "LOG_LEVEL=info"
- "LOG_HTML=false"
- "CAPTCHA_SOLVER=none"
- "TZ=Europe/London"
restart: unless-stopped
volumes:
qbittorrent_config: {}
radarr_config: {}
sonarr_config: {}
jackett_config: {}
gluetun: {}