diff --git a/main.yml b/main.yml index 3a07a82..42beeb4 100644 --- a/main.yml +++ b/main.yml @@ -8,7 +8,7 @@ tasks: - name: Deploy Tinyauth - import_tasks: tasks/tinyauth.yml + import_tasks: tasks/auth/tinyauth.yml tags: tinyauth_deploy - name: Deploy Postgres import_tasks: tasks/postgres.yml @@ -17,77 +17,74 @@ import_tasks: tasks/mariadb.yml tags: mariadb_deploy - name: Deploy AdGuard Home - import_tasks: tasks/adguard.yml + import_tasks: tasks/utility/adguard.yml tags: adguard_deploy - name: Deploy Glance import_tasks: tasks/glance.yml tags: glance_deploy - name: Deploy Dozzle - import_tasks: tasks/dozzle.yml + import_tasks: tasks/utility/dozzle.yml tags: dozzle_deploy - name: Deploy Cup - import_tasks: tasks/cup.yml + import_tasks: tasks/utility/cup.yml tags: cup_deploy - name: Deploy Homebridge - import_tasks: tasks/homebridge.yml + import_tasks: tasks/utility/homebridge.yml tags: homebridge_deploy - name: Deploy Code Server - import_tasks: tasks/codeserver.yml + import_tasks: tasks/utility/codeserver.yml tags: codeserver_deploy - name: Deploy PocketID - import_tasks: tasks/pocketid.yml + import_tasks: tasks/auth/pocketid.yml tags: pocketid_deploy - name: Deploy Scrobbling Setup - import_tasks: tasks/scrobbling.yml + import_tasks: tasks/media/scrobbling.yml tags: scrobbling_deploy - name: Deploy Vaultwarden - import_tasks: tasks/vaultwarden.yml + import_tasks: tasks/utility/vaultwarden.yml tags: vaultwarden_deploy - name: Deploy Immich - import_tasks: tasks/immich.yml + import_tasks: tasks/media/immich.yml tags: immich_deploy - name: Deploy Plex - import_tasks: tasks/plex.yml + import_tasks: tasks/media/plex.yml tags: plex_deploy - name: Deploy ErsatzTV - import_tasks: tasks/ersatztv.yml + import_tasks: tasks/media/ersatztv.yml tags: ersatztv_deploy - name: Deploy Frigate - import_tasks: tasks/frigate.yml + import_tasks: tasks/media/frigate.yml tags: frigate_deploy - name: Deploy Servarr - import_tasks: tasks/servarr.yml + import_tasks: tasks/media/servarr.yml tags: servarr_deploy - name: Deploy NZBGet - import_tasks: tasks/nzbget.yml + import_tasks: tasks/media/nzbget.yml tags: nzbget_deploy - name: Deploy Uptime Kuma - import_tasks: tasks/uptime-kuma.yml + import_tasks: tasks/utility/uptime-kuma.yml tags: uptime-kuma_deploy - name: Deploy Romm - import_tasks: tasks/romm.yml + import_tasks: tasks/gaming/romm.yml tags: romm_deploy - name: Deploy Pelican - import_tasks: tasks/pelican.yml + import_tasks: tasks/gaming/pelican.yml tags: pelican_deploy - name: Deploy Docs - import_tasks: tasks/docs.yml + import_tasks: tasks/utility/docs.yml tags: docs_deploy - name: Deploy Audiobookshelf - import_tasks: tasks/audiobookshelf.yml + import_tasks: tasks/media/audiobookshelf.yml tags: audiobookshelf_deploy - name: Deploy Cloudflared - import_tasks: tasks/cloudflared.yml + import_tasks: tasks/utility/cloudflared.yml tags: cloudflared_deploy - name: Deploy Gitea Runner - import_tasks: tasks/runner.yml + import_tasks: tasks/infra/runner.yml tags: runner_deploy - name: Deploy Weatherstar - import_tasks: tasks/weatherstar.yml + import_tasks: tasks/media/weatherstar.yml tags: weatherstar_deploy - - name: Deploy Plex Webhook - import_tasks: tasks/plexwebhook.yml - tags: plexwebhook_deploy - name: Deploy Nextcloud import_tasks: tasks/nextcloud.yml tags: nextcloud_deploy @@ -103,25 +100,22 @@ import_tasks: tasks/gitea.yml tags: gitea_deploy - name: Deploy API - import_tasks: tasks/api.yml + import_tasks: tasks/utility/api.yml tags: api_deploy - name: Deploy Storage API - import_tasks: tasks/storage-api.yml + import_tasks: tasks/utility/storage-api.yml tags: storage-api_deploy - name: Deploy Plausible - import_tasks: tasks/plausible.yml + import_tasks: tasks/utility/plausible.yml tags: plausible_deploy - - name: Deploy Pelican - import_tasks: tasks/pelican.yml - tags: pelican_deploy - name: Deploy Database - import_tasks: tasks/mariadb.yml + import_tasks: tasks/infra/mariadb.yml tags: mariadb_deploy - name: Deploy Floof - import_tasks: tasks/floof.yml + import_tasks: tasks/gaming/floof.yml tags: floof_deploy - name: Deploy Tinyauth - import_tasks: tasks/tinyauth.yml + import_tasks: tasks/auth/tinyauth.yml tags: tinyauth_deploy - name: Deploy Cobalt import_tasks: tasks/cobalt.yml @@ -130,11 +124,11 @@ import_tasks: tasks/nextcloud.yml tags: nextcloud_deploy - name: Deploy Postgres - import_tasks: tasks/postgres.yml + import_tasks: tasks/infra/postgres.yml tags: postgres_deploy - name: Deploy Dozzle - import_tasks: tasks/dozzle.yml + import_tasks: tasks/utility/dozzle.yml tags: dozzle_deploy - name: Deploy Redis - import_tasks: tasks/redis.yml + import_tasks: tasks/infra/redis.yml tags: redis_deploy diff --git a/tasks/pocketid.yml b/tasks/auth/pocketid.yml similarity index 100% rename from tasks/pocketid.yml rename to tasks/auth/pocketid.yml diff --git a/tasks/tinyauth.yml b/tasks/auth/tinyauth.yml similarity index 100% rename from tasks/tinyauth.yml rename to tasks/auth/tinyauth.yml diff --git a/tasks/cobalt.yml b/tasks/cobalt.yml deleted file mode 100644 index 8b84aa6..0000000 --- a/tasks/cobalt.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -- name: Deploy Cobalt - include_role: - name: docker - vars: - name: cobalt - directories: - - "{{ data_dir }}/cobalt" - image: - name: ghcr.io/imputnet/cobalt - tag: 11 - env: - API_URL: "https://dl.alexav.gg" - JWT_SECRET: "{{ COBALT_JWT_SECRET }}" - API_AUTH_REQUIRED: "1" - API_KEY_URL: "file:///keys.json" - networks: - - name: "{{ docker_network_name }}" - volumes: - - "{{ data_dir }}/cobalt/keys.json:/keys.json:ro" - labels: - traefik.enable: "true" - traefik.http.routers.cobalt.rule: Host(`dl.alexav.gg`) - traefik.http.routers.cobalt.entrypoints: webSecure - traefik.http.routers.cobalt.tls.certresolver: letsencrypt - traefik.http.services.cobalt.loadbalancer.server.port: "9000" diff --git a/tasks/floof.yml b/tasks/gaming/floof.yml similarity index 100% rename from tasks/floof.yml rename to tasks/gaming/floof.yml diff --git a/tasks/pelican.yml b/tasks/gaming/pelican.yml similarity index 100% rename from tasks/pelican.yml rename to tasks/gaming/pelican.yml diff --git a/tasks/pterodactyl.yml b/tasks/gaming/pterodactyl.yml similarity index 100% rename from tasks/pterodactyl.yml rename to tasks/gaming/pterodactyl.yml diff --git a/tasks/romm.yml b/tasks/gaming/romm.yml similarity index 100% rename from tasks/romm.yml rename to tasks/gaming/romm.yml diff --git a/tasks/wings.yml b/tasks/gaming/wings.yml similarity index 100% rename from tasks/wings.yml rename to tasks/gaming/wings.yml diff --git a/tasks/gluetun.yml b/tasks/gluetun.yml deleted file mode 100644 index 683fc60..0000000 --- a/tasks/gluetun.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -- name: Create folder structure - file: - path: "{{ item }}" - state: directory - with_items: - - "{{ data_dir }}/gluetun" - -- name: Pull latest Gluetun Docker Image - docker_image: - name: qmcgaw/gluetun - tag: latest - source: pull - -- name: Deploy Gluetun Docker Container - docker_container: - name: gluetun - image: qmcgaw/gluetun - recreate: true - capabilities: - - NET_ADMIN - devices: - - /dev/net/tun:/dev/net/tun - volumes: - - "{{ data_dir }}/gluetun:/gluetun" - networks: - - name: homelab - published_ports: - - 8888:8888/tcp - - 8388:8388/tcp - - 8388:8388/udp - env: - VPN_SERVICE_PROVIDER: "{{ GLUETUN_VPN_SERVICE_PROVIDER }}" - VPN_TYPE: "wireguard" - WIREGUARD_PRIVATE_KEY: "{{ GLUETUN_WIREGUARD_PRIVATE_KEY }}" - WIREGUARD_ADDRESSES: "{{ GLUETUN_WIREGUARD_ADDRESSES }}" - SERVER_COUNTRIES: "{{ GLUETUN_SERVER_COUNTRIES }}" - SERVER_CITIES: "{{ GLUETUN_SERVER_CITIES }}" - SERVER_HOSTNAMES: "{{ GLUETUN_SERVER_HOSTNAMES }}" - labels: - traefik.enable: "true" - - traefik.http.routers.qbit.rule: Host(`qbit.fntz.net`) - traefik.http.routers.qbit.service: qbit - traefik.http.routers.qbit.entrypoints: webSecure - traefik.http.routers.qbit.tls.certresolver: letsencrypt - traefik.http.services.qbit.loadbalancer.server.port: "8090" - - traefik.http.routers.jackett.rule: Host(`jackett.fntz.net`) - traefik.http.routers.jackett.service: jackett - traefik.http.routers.jackett.entrypoints: webSecure - traefik.http.routers.jackett.tls.certresolver: letsencrypt - traefik.http.services.jackett.loadbalancer.server.port: "9117" diff --git a/tasks/gitea.yml b/tasks/infra/gitea.yml similarity index 100% rename from tasks/gitea.yml rename to tasks/infra/gitea.yml diff --git a/tasks/mariadb.yml b/tasks/infra/mariadb.yml similarity index 100% rename from tasks/mariadb.yml rename to tasks/infra/mariadb.yml diff --git a/tasks/postgres.yml b/tasks/infra/postgres.yml similarity index 100% rename from tasks/postgres.yml rename to tasks/infra/postgres.yml diff --git a/tasks/redis.yml b/tasks/infra/redis.yml similarity index 100% rename from tasks/redis.yml rename to tasks/infra/redis.yml diff --git a/tasks/jackett.yml b/tasks/jackett.yml deleted file mode 100644 index 773ad94..0000000 --- a/tasks/jackett.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- name: Create folder structure - file: - path: "{{ item }}" - state: directory - with_items: - - "{{ data_dir }}/jackett" - -- name: Pull latest Jackett Docker Image - docker_image: - name: lscr.io/linuxserver/jackett - tag: latest - source: pull - -- name: Deploy Jackett Docker Container - docker_container: - name: jackett - image: lscr.io/linuxserver/jackett - recreate: true - restart_policy: unless-stopped - network_mode: "container:gluetun" - volumes: - - "{{ data_dir }}/jackett:/config" - - "{{ media_path}}/Downloads:/downloads" - env: - PUID: "{{ PUID }}" - PGID: "{{ PGID }}" - TZ: "{{ TZ }}" diff --git a/tasks/audiobookshelf.yml b/tasks/media/audiobookshelf.yml similarity index 100% rename from tasks/audiobookshelf.yml rename to tasks/media/audiobookshelf.yml diff --git a/tasks/ersatztv.yml b/tasks/media/ersatztv.yml similarity index 100% rename from tasks/ersatztv.yml rename to tasks/media/ersatztv.yml diff --git a/tasks/frigate.yml b/tasks/media/frigate.yml similarity index 100% rename from tasks/frigate.yml rename to tasks/media/frigate.yml diff --git a/tasks/immich.yml b/tasks/media/immich.yml similarity index 100% rename from tasks/immich.yml rename to tasks/media/immich.yml diff --git a/tasks/nzbget.yml b/tasks/media/nzbget.yml similarity index 100% rename from tasks/nzbget.yml rename to tasks/media/nzbget.yml diff --git a/tasks/plex.yml b/tasks/media/plex.yml similarity index 100% rename from tasks/plex.yml rename to tasks/media/plex.yml diff --git a/tasks/scrobbling.yml b/tasks/media/scrobbling.yml similarity index 100% rename from tasks/scrobbling.yml rename to tasks/media/scrobbling.yml diff --git a/tasks/servarr.yml b/tasks/media/servarr.yml similarity index 100% rename from tasks/servarr.yml rename to tasks/media/servarr.yml diff --git a/tasks/weatherstar.yml b/tasks/media/weatherstar.yml similarity index 100% rename from tasks/weatherstar.yml rename to tasks/media/weatherstar.yml diff --git a/tasks/navidrome.yml b/tasks/navidrome.yml deleted file mode 100644 index 836e3c0..0000000 --- a/tasks/navidrome.yml +++ /dev/null @@ -1,31 +0,0 @@ ---- -- name: Create folder structure - file: - path: "{{ item }}" - state: directory - with_items: - - "{{ data_dir }}/navidrome" - -- name: Pull latest Navidrome Docker Image - docker_image: - name: deluan/navidrome - tag: latest - source: pull - -- name: Create Navidrome Docker Container - docker_container: - name: navidrome - image: deluan/navidrome:latest - restart_policy: unless-stopped - recreate: true - networks: - - name: homelab - volumes: - - "{{ data_dir }}/navidrome:/data" - - "{{ NAVIDROME_MUSIC_PATH }}:/music:ro" - labels: - traefik.enable: "true" - traefik.http.routers.music.rule: Host(`music.fntz.net`) - traefik.http.routers.music.entrypoints: webSecure - traefik.http.routers.music.tls.certresolver: letsencrypt - traefik.http.services.music.loadbalancer.server.port: "4533" diff --git a/tasks/plexwebhook.yml b/tasks/plexwebhook.yml deleted file mode 100644 index 2da1892..0000000 --- a/tasks/plexwebhook.yml +++ /dev/null @@ -1,21 +0,0 @@ -- name: Deploy Plex Webhook - include_role: - name: docker - vars: - name: plex-webhook - image: - name: git.alexav.gg/alex/plex-webhook - tag: latest - networks: - - name: homelab - env: - DISCORD_WEBHOOK: "{{ PLEX_WEBHOOK_DISCORD_WEBHOOK }}" - APPLICATION_TOKEN: "{{ PLEX_WEBHOOK_APPLICATION_TOKEN }}" - PLEX_TOKEN: "{{ PLEX_WEBHOOK_PLEX_TOKEN }}" - STORAGE_TOKEN: "{{ PLEX_WEBHOOK_STORAGE_TOKEN }}" - labels: - traefik.enable: "true" - traefik.http.routers.plexwebhook.rule: Host(`plex-webhook.fntz.net`) - traefik.http.routers.plexwebhook.entrypoints: webSecure - traefik.http.routers.plexwebhook.tls.certresolver: letsencrypt - traefik.http.services.plexwebhook.loadbalancer.server.port: "3000" \ No newline at end of file diff --git a/tasks/qbittorrent.yml b/tasks/qbittorrent.yml deleted file mode 100644 index 5f997c0..0000000 --- a/tasks/qbittorrent.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -- name: Create folder structure - file: - path: "{{ item }}" - state: directory - with_items: - - "{{ data_dir }}/qbittorrent" - -- name: Pull latest QBittorrent Docker Image - docker_image: - name: lscr.io/linuxserver/qbittorrent - tag: latest - source: pull - -- name: Deploy QBittorrent Docker Container - docker_container: - name: qbittorrent - image: lscr.io/linuxserver/qbittorrent - network_mode: "container:gluetun" - recreate: true - env: - PUID: "{{ PUID }}" - PGID: "{{ PGID }}" - TZ: "{{ TZ }}" - WEBUI_PORT: "8090" - TORRENTING_PORT: "6861" diff --git a/tasks/adguard.yml b/tasks/utility/adguard.yml similarity index 100% rename from tasks/adguard.yml rename to tasks/utility/adguard.yml diff --git a/tasks/api.yml b/tasks/utility/api.yml similarity index 100% rename from tasks/api.yml rename to tasks/utility/api.yml diff --git a/tasks/cloudflared.yml b/tasks/utility/cloudflared.yml similarity index 100% rename from tasks/cloudflared.yml rename to tasks/utility/cloudflared.yml diff --git a/tasks/codeserver.yml b/tasks/utility/codeserver.yml similarity index 100% rename from tasks/codeserver.yml rename to tasks/utility/codeserver.yml diff --git a/tasks/cup.yml b/tasks/utility/cup.yml similarity index 100% rename from tasks/cup.yml rename to tasks/utility/cup.yml diff --git a/tasks/docs.yml b/tasks/utility/docs.yml similarity index 100% rename from tasks/docs.yml rename to tasks/utility/docs.yml diff --git a/tasks/dozzle.yml b/tasks/utility/dozzle.yml similarity index 100% rename from tasks/dozzle.yml rename to tasks/utility/dozzle.yml diff --git a/tasks/homebridge.yml b/tasks/utility/homebridge.yml similarity index 100% rename from tasks/homebridge.yml rename to tasks/utility/homebridge.yml diff --git a/tasks/plausible.yml b/tasks/utility/plausible.yml similarity index 100% rename from tasks/plausible.yml rename to tasks/utility/plausible.yml diff --git a/tasks/runner.yml b/tasks/utility/runner.yml similarity index 100% rename from tasks/runner.yml rename to tasks/utility/runner.yml diff --git a/tasks/storage-api.yml b/tasks/utility/storage-api.yml similarity index 100% rename from tasks/storage-api.yml rename to tasks/utility/storage-api.yml diff --git a/tasks/uptime-kuma.yml b/tasks/utility/uptime-kuma.yml similarity index 100% rename from tasks/uptime-kuma.yml rename to tasks/utility/uptime-kuma.yml diff --git a/tasks/vaultwarden.yml b/tasks/utility/vaultwarden.yml similarity index 100% rename from tasks/vaultwarden.yml rename to tasks/utility/vaultwarden.yml