diff --git a/config/ansible/tasks/servers/server.yml b/config/ansible/tasks/servers/server.yml index a172f6f..de10f18 100644 --- a/config/ansible/tasks/servers/server.yml +++ b/config/ansible/tasks/servers/server.yml @@ -13,13 +13,9 @@ tags: - juicefs - # Note: Per-service tags should be set in each service's task file (e.g., privatebin.yml). - # The tags here are static and allow selection by service name. - # To target a specific service, use '--tags services,privatebin' so the include is processed and the inner tag matches. - name: Include service tasks ansible.builtin.include_tasks: "services/{{ item.name }}/{{ item.name }}.yml" - loop: "{{ services }}" - when: item.enabled|bool and (inventory_hostname in item.hosts) + loop: "{{ services | selectattr('enabled', 'equalto', true) | selectattr('hosts', 'contains', inventory_hostname) | list if specific_service is not defined else services | selectattr('name', 'equalto', specific_service) | selectattr('enabled', 'equalto', true) | selectattr('hosts', 'contains', inventory_hostname) | list }}" loop_control: label: "{{ item.name }}" tags: @@ -52,7 +48,7 @@ enabled: true hosts: - mennos-cloud-server - # - mennos-server + - mennos-server - name: seafile enabled: true hosts: @@ -76,7 +72,7 @@ - name: downloaders enabled: true hosts: - - mennos-cloud-server + - mennos-server - name: wireguard enabled: true hosts: diff --git a/config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 b/config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 index 98a07d4..7d810a3 100644 --- a/config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 +++ b/config/ansible/tasks/servers/services/arr-stack/docker-compose.yml.j2 @@ -16,7 +16,7 @@ services: - /mnt/object_storage:/storage restart: "unless-stopped" networks: - - arr-stack-net + - arr_stack_net sonarr: image: linuxserver/sonarr:latest @@ -34,7 +34,7 @@ services: - host.docker.internal:host-gateway restart: unless-stopped networks: - - arr-stack-net + - arr_stack_net lidarr: image: linuxserver/lidarr:latest @@ -51,7 +51,7 @@ services: - /mnt/object_storage:/storage restart: unless-stopped networks: - - arr-stack-net + - arr_stack_net prowlarr: container_name: prowlarr @@ -68,7 +68,7 @@ services: - 9696:9696 restart: unless-stopped networks: - - arr-stack-net + - arr_stack_net flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest @@ -84,7 +84,7 @@ services: - host.docker.internal:host-gateway restart: unless-stopped networks: - - arr-stack-net + - arr_stack_net jellyseerr: image: fallenbagel/jellyseerr @@ -101,11 +101,12 @@ services: - host.docker.internal:host-gateway restart: unless-stopped networks: - - arr-stack-net + - arr_stack_net - caddy_network networks: - arr-stack-net: + arr_stack_net: + name: arr_stack_net caddy_network: external: true name: caddy_default diff --git a/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 b/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 index 28b4b5c..8cde984 100644 --- a/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 +++ b/config/ansible/tasks/servers/services/caddy/Caddyfile.j2 @@ -104,7 +104,7 @@ overseerr.mvl.sh jellyseerr.mvl.sh overseerr.vleeuwen.me jellyseerr.vleeuwen.me tls {{ caddy_email }} } -jellyfin.mvl.sh jellyfin.vleeuwen.me { +anime.mvl.sh anime.vleeuwen.me { import country_block reverse_proxy jellyfin:8096 tls {{ caddy_email }} @@ -153,4 +153,9 @@ bin.mvl.sh { reverse_proxy privatebin:8080 tls {{ caddy_email }} } +jellyfin.mvl.sh jellyfin.vleeuwen.me { + import country_block + reverse_proxy jellyfin:8096 + tls {{ caddy_email }} +} {% endif %} diff --git a/config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 b/config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 index d8a1eb1..d84fb66 100644 --- a/config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 +++ b/config/ansible/tasks/servers/services/downloaders/docker-compose.yml.j2 @@ -6,7 +6,7 @@ services: cap_add: - NET_ADMIN networks: - - arr-stack-net + - arr_stack_net ports: - 6881:6881 - 6881:6881/udp @@ -34,6 +34,7 @@ services: volumes: - {{ downloaders_data_dir }}/sabnzbd-config:/config - {{ object_storage_dir }}:/storage + - {{ local_data_dir }}:/local restart: unless-stopped network_mode: "service:gluetun" depends_on: @@ -42,6 +43,7 @@ services: qbittorrent: image: lscr.io/linuxserver/qbittorrent + network_mode: "service:gluetun" environment: - PUID=1000 - PGID=100 @@ -50,13 +52,13 @@ services: volumes: - {{ downloaders_data_dir }}/qbit-config:/config - {{ object_storage_dir }}:/storage - restart: always - network_mode: "service:gluetun" + - {{ local_data_dir }}:/local depends_on: gluetun: condition: service_healthy + restart: always networks: - arr-stack-net: + arr_stack_net: external: true - name: arr-stack_arr-stack-net + name: arr_stack_net diff --git a/config/ansible/tasks/servers/services/downloaders/downloaders.yml b/config/ansible/tasks/servers/services/downloaders/downloaders.yml index 3baa046..86b4205 100644 --- a/config/ansible/tasks/servers/services/downloaders/downloaders.yml +++ b/config/ansible/tasks/servers/services/downloaders/downloaders.yml @@ -4,8 +4,9 @@ - name: Set Downloaders directories ansible.builtin.set_fact: object_storage_dir: "/mnt/object_storage" + local_data_dir: "/mnt/data" downloaders_service_dir: "{{ ansible_env.HOME }}/services/downloaders" - downloaders_data_dir: "/mnt/object_storage/services/downloaders" + downloaders_data_dir: "/mnt/services/downloaders" - name: Create Downloaders directory ansible.builtin.file: @@ -13,6 +14,15 @@ state: directory mode: "0755" + - name: Create Downloaders service directory + ansible.builtin.file: + path: "{{ downloaders_service_dir }}" + state: directory + mode: "0755" + owner: "{{ ansible_user }}" + group: "{{ ansible_user }}" + become: true + - name: Deploy Downloaders docker-compose.yml ansible.builtin.template: src: docker-compose.yml.j2 @@ -20,6 +30,12 @@ mode: "0644" register: downloaders_compose + - name: Ensure arr_stack_net Docker network exists + community.docker.docker_network: + name: arr_stack_net + driver: bridge + state: present + - name: Stop Downloaders service ansible.builtin.command: docker compose -f "{{ downloaders_service_dir }}/docker-compose.yml" down --remove-orphans when: downloaders_compose.changed diff --git a/config/ansible/tasks/servers/services/jellyfin/docker-compose.yml.j2 b/config/ansible/tasks/servers/services/jellyfin/docker-compose.yml.j2 index c34e1af..3b5d21a 100644 --- a/config/ansible/tasks/servers/services/jellyfin/docker-compose.yml.j2 +++ b/config/ansible/tasks/servers/services/jellyfin/docker-compose.yml.j2 @@ -9,9 +9,9 @@ services: - JELLYFIN_PublishedServerUrl=https://jellyfin.mvl.sh volumes: - {{ jellyfin_data_dir }}/jellyfin-config:/config - - {{ '/mnt/movies' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/movies' }}:/movies - - {{ '/mnt/tv_shows' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/tvshows' }}:/tvshows - - {{ '/mnt/music' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/music' }}:/music + - {{ '/mnt/data/movies' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/movies' }}:/movies + - {{ '/mnt/data/tvshows' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/tvshows' }}:/tvshows + - {{ '/mnt/data/music' if inventory_hostname == 'mennos-server' else '/mnt/object_storage/music' }}:/music ports: - 8096:8096 - 8920:8920