This commit is contained in:
9
main.yml
9
main.yml
@@ -39,9 +39,6 @@
|
|||||||
- name: Deploy Scrobbling Setup
|
- name: Deploy Scrobbling Setup
|
||||||
import_tasks: tasks/scrobbling.yml
|
import_tasks: tasks/scrobbling.yml
|
||||||
tags: scrobbling_deploy
|
tags: scrobbling_deploy
|
||||||
- name: Deploy Monitoring
|
|
||||||
import_tasks: tasks/monitoring.yml
|
|
||||||
tags: monitoring_deploy
|
|
||||||
- name: Deploy Vaultwarden
|
- name: Deploy Vaultwarden
|
||||||
import_tasks: tasks/vaultwarden.yml
|
import_tasks: tasks/vaultwarden.yml
|
||||||
tags: vaultwarden_deploy
|
tags: vaultwarden_deploy
|
||||||
@@ -69,18 +66,12 @@
|
|||||||
- name: Deploy Uptime Kuma
|
- name: Deploy Uptime Kuma
|
||||||
import_tasks: tasks/uptime-kuma.yml
|
import_tasks: tasks/uptime-kuma.yml
|
||||||
tags: uptime-kuma_deploy
|
tags: uptime-kuma_deploy
|
||||||
- name: Deploy Duplicati
|
|
||||||
import_tasks: tasks/duplicati.yml
|
|
||||||
tags: duplicati_deploy
|
|
||||||
- name: Deploy Romm
|
- name: Deploy Romm
|
||||||
import_tasks: tasks/romm.yml
|
import_tasks: tasks/romm.yml
|
||||||
tags: romm_deploy
|
tags: romm_deploy
|
||||||
- name: Deploy Booklore
|
- name: Deploy Booklore
|
||||||
import_tasks: tasks/booklore.yml
|
import_tasks: tasks/booklore.yml
|
||||||
tags: booklore_deploy
|
tags: booklore_deploy
|
||||||
- name: Deploy Marreta
|
|
||||||
import_tasks: tasks/marreta.yml
|
|
||||||
tags: marreta_deploy
|
|
||||||
- name: Deploy Pelican
|
- name: Deploy Pelican
|
||||||
import_tasks: tasks/pelican.yml
|
import_tasks: tasks/pelican.yml
|
||||||
tags: pelican_deploy
|
tags: pelican_deploy
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
TURNSTILE_SITEKEY: "{{ COBALT_TURNSTILE_SITEKEY }}"
|
TURNSTILE_SITEKEY: "{{ COBALT_TURNSTILE_SITEKEY }}"
|
||||||
TURNSTILE_SECRET: "{{ COBALT_TURNSTILE_SECRET }}"
|
TURNSTILE_SECRET: "{{ COBALT_TURNSTILE_SECRET }}"
|
||||||
JWT_SECRET: "{{ COBALT_JWT_SECRET }}"
|
JWT_SECRET: "{{ COBALT_JWT_SECRET }}"
|
||||||
|
networks:
|
||||||
|
- name: "{{ docker_network_name }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "true"
|
traefik.enable: "true"
|
||||||
traefik.http.routers.cobalt.rule: Host(`dl.alexav.gg`)
|
traefik.http.routers.cobalt.rule: Host(`dl.alexav.gg`)
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
DB_USER: "wikijs"
|
DB_USER: "wikijs"
|
||||||
DB_PASS: "wikijs"
|
DB_PASS: "wikijs"
|
||||||
DB_NAME: "wikijs"
|
DB_NAME: "wikijs"
|
||||||
|
networks:
|
||||||
|
- name: homelab
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "true"
|
traefik.enable: "true"
|
||||||
traefik.http.routers.docs.rule: Host(`docs.fntz.net`)
|
traefik.http.routers.docs.rule: Host(`docs.fntz.net`)
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Deploy Duplicati
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: duplicati
|
|
||||||
directories:
|
|
||||||
- "{{ data_dir }}/duplicati/app"
|
|
||||||
- "{{ data_dir }}/duplicati/backups"
|
|
||||||
image:
|
|
||||||
name: lscr.io/linuxserver/duplicati
|
|
||||||
tag: latest
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/duplicati/app:/config"
|
|
||||||
- "{{ data_dir }}/duplicati/backups:/backups"
|
|
||||||
- "{{ share_path }}:/source:ro"
|
|
||||||
- "{{ DUPLICATI_SSH_KEY_PATH }}:/app/ssh/id_ed25519:ro"
|
|
||||||
- "{{ DUPLICATI_SSH_PUB_KEY_PATH }}:/app/ssh/id_ed25519.pub:ro"
|
|
||||||
env:
|
|
||||||
PUID: "1000"
|
|
||||||
PGID: "1000"
|
|
||||||
SETTINGS_ENCRYPTION_KEY: "{{ DUPLICATI_ENCRYPTION_KEY }}"
|
|
||||||
networks:
|
|
||||||
- name: "homelab"
|
|
||||||
labels:
|
|
||||||
traefik.enable: "true"
|
|
||||||
traefik.http.routers.duplicati.rule: Host(`backups.fntz.net`)
|
|
||||||
traefik.http.routers.duplicati.entrypoints: webSecure
|
|
||||||
traefik.http.routers.duplicati.tls.certresolver: letsencrypt
|
|
||||||
traefik.http.services.duplicati.loadbalancer.server.port: "8200"
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Deploy Marreta
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: marreta
|
|
||||||
network_name: marreta
|
|
||||||
networks:
|
|
||||||
- name: homelab
|
|
||||||
- name: marreta
|
|
||||||
image:
|
|
||||||
name: ghcr.io/manualdousuario/marreta
|
|
||||||
tag: latest
|
|
||||||
env:
|
|
||||||
SITE_NAME: "Marreta"
|
|
||||||
SITE_DESCRIPTION: "Jackson Marreta Instance"
|
|
||||||
SITE_URL: "{{ MARRETA_APP_URL }}"
|
|
||||||
DNS_SERVERS: "1.1.1.1,8.8.8.8"
|
|
||||||
LANGUANGE: "en"
|
|
||||||
LOG_LEVEL: "info"
|
|
||||||
SELENIUM_HOST: "marreta_selenium-hub:4444"
|
|
||||||
CLEANUP_DATS: "7"
|
|
||||||
PROXY_LIST: "url"
|
|
||||||
labels:
|
|
||||||
traefik.enable: "true"
|
|
||||||
traefik.http.routers.marreta.rule: Host(`ladder.fntz.net`)
|
|
||||||
traefik.http.routers.marreta.entrypoints: webSecure
|
|
||||||
traefik.http.routers.marreta.tls.certresolver: letsencrypt
|
|
||||||
traefik.http.services.marreta.loadbalancer.server.port: "80"
|
|
||||||
|
|
||||||
- name: Deploy Selenium Hub
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: marreta_selenium-hub
|
|
||||||
networks:
|
|
||||||
- name: marreta
|
|
||||||
image:
|
|
||||||
name: selenium/hub
|
|
||||||
tag: 4.27.0-20241204
|
|
||||||
env:
|
|
||||||
SE_ENABLE_TRACING: "false"
|
|
||||||
GRID_MAX_SESSION: "10"
|
|
||||||
GRID_BROWSER_TIMEOUT: "10"
|
|
||||||
GRID_TIMEOUT: "10"
|
|
||||||
|
|
||||||
- name: Deploy Selenium Chromium
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: marreta_selenium-chromium
|
|
||||||
shm_size: 2gb
|
|
||||||
networks:
|
|
||||||
- name: marreta
|
|
||||||
image:
|
|
||||||
name: selenium/node-chromium
|
|
||||||
tag: 4.27.0-20241204
|
|
||||||
env:
|
|
||||||
SE_EVENT_BUS_HOST: "marreta_selenium-hub"
|
|
||||||
SE_EVENT_BUS_PUBLISH_PORT: "4442"
|
|
||||||
SE_EVENT_BUS_SUBSCRIBE_PORT: "4443"
|
|
||||||
SE_ENABLE_TRACING: "false"
|
|
||||||
SE_NODE_MAX_SESSIONS: "10"
|
|
||||||
SE_NODE_OVERRIDE_MAX_SESSIONS: "true"
|
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Create folder structure
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
with_items:
|
|
||||||
- "{{ data_dir }}/monitoring"
|
|
||||||
- "{{ data_dir }}/monitoring/grafana"
|
|
||||||
- "{{ data_dir }}/monitoring/loki"
|
|
||||||
- "{{ data_dir }}/monitoring/promtail"
|
|
||||||
- "{{ data_dir }}/monitoring/prometheus"
|
|
||||||
|
|
||||||
# copy configs for loki, promtail & prometheus
|
|
||||||
- name: Create Loki Configuration
|
|
||||||
template:
|
|
||||||
src: templates/monitoring/loki.yaml.j2
|
|
||||||
dest: "{{ data_dir }}/monitoring/loki/loki-config.yaml"
|
|
||||||
- name: Create Promtail Configuration
|
|
||||||
template:
|
|
||||||
src: templates/monitoring/promtail.yaml.j2
|
|
||||||
dest: "{{ data_dir }}/monitoring/promtail/promtail-config.yaml"
|
|
||||||
- name: Create Prometheus Configuration
|
|
||||||
template:
|
|
||||||
src: templates/monitoring/prometheus.yml.j2
|
|
||||||
dest: "{{ data_dir }}/monitoring/prometheus/prometheus.yml"
|
|
||||||
|
|
||||||
- name: Deploy Prometheus
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_prometheus
|
|
||||||
network_name: "monitoring"
|
|
||||||
networks:
|
|
||||||
- name: "monitoring"
|
|
||||||
- name: "homelab"
|
|
||||||
image:
|
|
||||||
name: prom/prometheus
|
|
||||||
tag: latest
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/monitoring/prometheus:/etc/prometheus"
|
|
||||||
- "{{ data_dir }}/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml"
|
|
||||||
labels:
|
|
||||||
traefik.enable: "true"
|
|
||||||
traefik.http.routers.prom.rule: Host(`prom.fntz.net`)
|
|
||||||
traefik.http.routers.prom.entrypoints: webSecure
|
|
||||||
traefik.http.routers.prom.tls.certresolver: letsencrypt
|
|
||||||
traefik.http.services.prom.loadbalancer.server.port: "9090"
|
|
||||||
|
|
||||||
- name: Deploy Promtail
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_promtail
|
|
||||||
image:
|
|
||||||
name: grafana/promtail
|
|
||||||
tag: latest
|
|
||||||
networks:
|
|
||||||
- name: monitoring
|
|
||||||
command: -config.file=/etc/promtail/config.yaml
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/monitoring/promtail/promtail-config.yaml:/etc/promtail/config.yaml"
|
|
||||||
- "/var/log:/var/log:ro"
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
- "/var/lib/docker/containers:/var/lib/docker/containers:ro"
|
|
||||||
|
|
||||||
- name: Deploy Loki
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_loki
|
|
||||||
volume_name: grafana-loki
|
|
||||||
image:
|
|
||||||
name: grafana/loki
|
|
||||||
tag: latest
|
|
||||||
volumes:
|
|
||||||
- "{{ data_dir }}/monitoring/loki/loki-config.yaml:/etc/loki/local-config.yaml"
|
|
||||||
- "grafana-loki:/loki"
|
|
||||||
networks:
|
|
||||||
- name: "monitoring"
|
|
||||||
|
|
||||||
- name: Deploy Node Exporter
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_node-exporter
|
|
||||||
image:
|
|
||||||
name: prom/node-exporter
|
|
||||||
tag: latest
|
|
||||||
command:
|
|
||||||
- "--path.rootfs=host"
|
|
||||||
network_mode: host
|
|
||||||
pid_mode: host
|
|
||||||
volumes:
|
|
||||||
- "/:/host:ro,rslave"
|
|
||||||
|
|
||||||
- name: Deploy CAdvisor
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_cadvisor
|
|
||||||
image:
|
|
||||||
name: ghcr.io/google/cadvisor
|
|
||||||
tag: 0.55.1
|
|
||||||
networks:
|
|
||||||
- name: "monitoring"
|
|
||||||
volumes:
|
|
||||||
- "/:/rootfs:ro"
|
|
||||||
- "/var/run:/var/run:ro"
|
|
||||||
- "/sys:/sys:ro"
|
|
||||||
- "/var/lib/docker:/var/lib/docker:ro"
|
|
||||||
- "/dev/disk:/dev/disk:ro"
|
|
||||||
privileged: true
|
|
||||||
devices:
|
|
||||||
- /dev/kmsg
|
|
||||||
|
|
||||||
- name: Deploy Grafana
|
|
||||||
include_role:
|
|
||||||
name: docker
|
|
||||||
vars:
|
|
||||||
name: monitoring_grafana
|
|
||||||
volume_name: "grafana-storage"
|
|
||||||
networks:
|
|
||||||
- name: "monitoring"
|
|
||||||
- name: "homelab"
|
|
||||||
image:
|
|
||||||
name: grafana/grafana
|
|
||||||
tag: latest
|
|
||||||
user: "{{ PUID }}"
|
|
||||||
volumes:
|
|
||||||
- "grafana-storage:/var/lib/grafana"
|
|
||||||
env:
|
|
||||||
GF_AUTH_ANONYMOUS_ENABLED: "{{ GRAFANA_AUTH_ANONYMOUS_ENABLED }}"
|
|
||||||
labels:
|
|
||||||
traefik.enable: "true"
|
|
||||||
traefik.http.routers.grafana.rule: Host(`grafana.fntz.net`)
|
|
||||||
traefik.http.routers.grafana.entrypoints: webSecure
|
|
||||||
traefik.http.routers.grafana.tls.certresolver: letsencrypt
|
|
||||||
traefik.http.services.grafana.loadbalancer.server.port: "3000"
|
|
||||||
traefik.http.routers.grafana.middlewares: tinyauth
|
|
||||||
@@ -1,24 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Plex
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: plex
|
||||||
- "{{ data_dir }}/plex"
|
image:
|
||||||
|
|
||||||
- name: Pull latest Plex Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: lscr.io/linuxserver/plex
|
name: lscr.io/linuxserver/plex
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
networks:
|
||||||
|
- name: homelab
|
||||||
- name: Deploy Plex Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: plex
|
|
||||||
image: lscr.io/linuxserver/plex
|
|
||||||
network_mode: host
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
devices:
|
devices:
|
||||||
- /dev/dri:/dev/dri
|
- /dev/dri:/dev/dri
|
||||||
env:
|
env:
|
||||||
|
|||||||
Reference in New Issue
Block a user