feat: add ArrStack and Downloaders services with deployment configurations
This commit is contained in:
parent
56b056252c
commit
8087eb6814
@ -39,3 +39,7 @@
|
|||||||
enabled: true
|
enabled: true
|
||||||
- name: beszel
|
- name: beszel
|
||||||
enabled: true
|
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 }}
|
tls {{ caddy_email }}
|
||||||
}
|
}
|
||||||
|
|
||||||
jf.vleeuwen.me jf.mvl.sh {
|
|
||||||
reverse_proxy jellyfin:8096
|
|
||||||
tls {{ caddy_email }}
|
|
||||||
}
|
|
||||||
|
|
||||||
status.vleeuwen.me status.mvl.sh {
|
status.vleeuwen.me status.mvl.sh {
|
||||||
reverse_proxy uptime-kuma:3001
|
reverse_proxy uptime-kuma:3001
|
||||||
tls {{ caddy_email }}
|
tls {{ caddy_email }}
|
||||||
@ -52,3 +47,18 @@ df.mvl.sh {
|
|||||||
redir / https://git.mvl.sh/vleeuwenmenno/dotfiles/raw/branch/master/setup.sh
|
redir / https://git.mvl.sh/vleeuwenmenno/dotfiles/raw/branch/master/setup.sh
|
||||||
tls {{ caddy_email }}
|
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
|
- PUID=1000
|
||||||
- PGID=100
|
- PGID=100
|
||||||
- TZ=Europe/Amsterdam
|
- TZ=Europe/Amsterdam
|
||||||
- JELLYFIN_PublishedServerUrl=https://jellyfin.vleeuwen.me
|
- JELLYFIN_PublishedServerUrl=https://jellyfin.mvl.sh
|
||||||
volumes:
|
volumes:
|
||||||
- {{jellyfin_data_dir}}/jellyfin-config:/config
|
- {{jellyfin_data_dir}}/jellyfin-config:/config
|
||||||
- /mnt/object_storage/movies:/movies
|
- /mnt/object_storage/movies:/movies
|
||||||
@ -24,6 +24,18 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- caddy_network
|
- 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:
|
networks:
|
||||||
caddy_network:
|
caddy_network:
|
||||||
external: true
|
external: true
|
||||||
|
18
config/home-manager/flake.lock
generated
18
config/home-manager/flake.lock
generated
@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742234739,
|
"lastModified": 1742655702,
|
||||||
"narHash": "sha256-zFL6zsf/5OztR1NSNQF33dvS1fL/BzVUjabZq4qrtY4=",
|
"narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "f6af7280a3390e65c2ad8fd059cdc303426cbd59",
|
"rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -23,11 +23,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742268799,
|
"lastModified": 1742751704,
|
||||||
"narHash": "sha256-IhnK4LhkBlf14/F8THvUy3xi/TxSQkp9hikfDZRD4Ic=",
|
"narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "da044451c6a70518db5b730fe277b70f494188f1",
|
"rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -39,11 +39,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742288794,
|
"lastModified": 1742669843,
|
||||||
"narHash": "sha256-Txwa5uO+qpQXrNG4eumPSD+hHzzYi/CdaM80M9XRLCo=",
|
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b6eaf97c6960d97350c584de1b6dcff03c9daf42",
|
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user