@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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 }}"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user