This commit is contained in:
9
main.yml
9
main.yml
@@ -39,9 +39,6 @@
|
||||
- name: Deploy Scrobbling Setup
|
||||
import_tasks: tasks/scrobbling.yml
|
||||
tags: scrobbling_deploy
|
||||
- name: Deploy Monitoring
|
||||
import_tasks: tasks/monitoring.yml
|
||||
tags: monitoring_deploy
|
||||
- name: Deploy Vaultwarden
|
||||
import_tasks: tasks/vaultwarden.yml
|
||||
tags: vaultwarden_deploy
|
||||
@@ -69,18 +66,12 @@
|
||||
- name: Deploy Uptime Kuma
|
||||
import_tasks: tasks/uptime-kuma.yml
|
||||
tags: uptime-kuma_deploy
|
||||
- name: Deploy Duplicati
|
||||
import_tasks: tasks/duplicati.yml
|
||||
tags: duplicati_deploy
|
||||
- name: Deploy Romm
|
||||
import_tasks: tasks/romm.yml
|
||||
tags: romm_deploy
|
||||
- name: Deploy Booklore
|
||||
import_tasks: tasks/booklore.yml
|
||||
tags: booklore_deploy
|
||||
- name: Deploy Marreta
|
||||
import_tasks: tasks/marreta.yml
|
||||
tags: marreta_deploy
|
||||
- name: Deploy Pelican
|
||||
import_tasks: tasks/pelican.yml
|
||||
tags: pelican_deploy
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
TURNSTILE_SITEKEY: "{{ COBALT_TURNSTILE_SITEKEY }}"
|
||||
TURNSTILE_SECRET: "{{ COBALT_TURNSTILE_SECRET }}"
|
||||
JWT_SECRET: "{{ COBALT_JWT_SECRET }}"
|
||||
networks:
|
||||
- name: "{{ docker_network_name }}"
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.cobalt.rule: Host(`dl.alexav.gg`)
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
DB_USER: "wikijs"
|
||||
DB_PASS: "wikijs"
|
||||
DB_NAME: "wikijs"
|
||||
networks:
|
||||
- name: homelab
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
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
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
with_items:
|
||||
- "{{ data_dir }}/plex"
|
||||
|
||||
- name: Pull latest Plex Docker Image
|
||||
docker_image:
|
||||
- name: Deploy Plex
|
||||
include_role:
|
||||
name: docker
|
||||
vars:
|
||||
name: plex
|
||||
image:
|
||||
name: lscr.io/linuxserver/plex
|
||||
tag: latest
|
||||
source: pull
|
||||
|
||||
- name: Deploy Plex Docker Container
|
||||
docker_container:
|
||||
name: plex
|
||||
image: lscr.io/linuxserver/plex
|
||||
network_mode: host
|
||||
restart_policy: unless-stopped
|
||||
recreate: true
|
||||
networks:
|
||||
- name: homelab
|
||||
devices:
|
||||
- /dev/dri:/dev/dri
|
||||
env:
|
||||
|
||||
Reference in New Issue
Block a user