427 lines
12 KiB
YAML
427 lines
12 KiB
YAML
- name: Set up static IP
|
|
hosts: emma
|
|
become: yes
|
|
roles:
|
|
- role: any.common.static-ip
|
|
vars:
|
|
interface: "enp2s0"
|
|
static_ip: "192.168.0.2"
|
|
broadcast_ip: "192.168.0.255"
|
|
router_ip: "192.168.0.1"
|
|
- any.common.ssh
|
|
- any.tools.ufw
|
|
tags: networking
|
|
|
|
- name: Configure BTRFS RAID
|
|
hosts: emma
|
|
become: yes
|
|
roles:
|
|
- any.common.raid
|
|
tags: raid
|
|
|
|
- name: Set up backup systems
|
|
hosts: emma
|
|
become: true
|
|
tags: backups
|
|
roles:
|
|
- role: any.tools.restic
|
|
vars:
|
|
restic_version: "0.18.1"
|
|
- role: any.tools.otel-cli
|
|
vars:
|
|
otel_cli_version: "0.4.5"
|
|
# TODO restic-rest subvolumes
|
|
- role: any.software.restic-rest
|
|
vars:
|
|
restic_rest_data_dir: "/mnt/data1/restic-rest"
|
|
restic_rest_version: "0.12.1"
|
|
|
|
- name: Set up OTEL collector
|
|
hosts: emma
|
|
tags: [otel-collector, otel]
|
|
become: true
|
|
roles:
|
|
- any.software.otel-collector
|
|
|
|
- name: Set up Jellyfin
|
|
hosts: emma
|
|
become: yes
|
|
roles:
|
|
- any.software.jellyfin
|
|
tags: jellyfin
|
|
|
|
- name: Set up Miniflux
|
|
hosts: emma
|
|
tags: miniflux
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
become: true
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/miniflux/postgres"
|
|
- role: any.software.miniflux-podman
|
|
vars:
|
|
postgres_data_dir: '/data/miniflux/postgres'
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: "miniflux-postgres"
|
|
type: "podman-postgres"
|
|
user: "debian"
|
|
container: "systemd-miniflux-postgres"
|
|
pg_user: "miniflux"
|
|
database: "miniflux"
|
|
|
|
- name: Set up WebDAV
|
|
hosts: emma
|
|
become: true
|
|
tags: webdav
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/webdav/data"
|
|
- role: any.software.webdav
|
|
vars:
|
|
webdav_version: "5.7.4"
|
|
data_dir: "{{ btrfs_raid.path }}/webdav/data"
|
|
|
|
webdav_user: "{{ vault_webdav_user }}"
|
|
webdav_password: "{{ vault_webdav_password }}"
|
|
webdav_password_bcrypt: "{{ vault_webdav_password_bcrypt }}"
|
|
- role: any.tools.backup-scripts
|
|
vars:
|
|
backups:
|
|
- name: "webdav-data"
|
|
type: "btrfs-subvolume"
|
|
path: "{{ btrfs_raid.path }}/webdav/data"
|
|
|
|
|
|
- name: Set up Gitea
|
|
hosts: emma
|
|
become: yes
|
|
tags: gitea
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
# Data files and LFS are placed on RAID
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/gitea/data"
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/gitea/lfs"
|
|
|
|
# Repositories and database are stored in NVME
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/gitea/repositories"
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/gitea/postgres"
|
|
|
|
- role: any.software.gitea
|
|
vars:
|
|
gitea_data_dir: "{{ btrfs_raid.path }}/gitea/data"
|
|
gitea_lfs_dir: "{{ btrfs_raid.path }}/gitea/lfs"
|
|
gitea_repositories_dir: "{{ btrfs_nvme.path }}/data/gitea/repositories"
|
|
postgres_data_dir: "{{ btrfs_nvme.path }}/data/gitea/postgres"
|
|
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
# TODO: gitea-data, gitea-lfs
|
|
- name: "gitea-postgres"
|
|
type: "podman-postgres"
|
|
user: "debian"
|
|
container: "systemd-gitea-postgres"
|
|
pg_user: "gitea"
|
|
database: "gitea"
|
|
- name: "gitea-repositories"
|
|
type: "btrfs-subvolume"
|
|
path: "/data/gitea/repositories"
|
|
|
|
- name: Set up Otter
|
|
hosts: emma
|
|
become: yes
|
|
tags: otter
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/otter/data"
|
|
- role: any.software.otter
|
|
vars:
|
|
data_dir: "{{ btrfs_nvme.path }}/data/otter/data"
|
|
- role: any.tools.backup-scripts
|
|
vars:
|
|
backups:
|
|
- name: 'otter-data'
|
|
type: 'btrfs-subvolume'
|
|
path: '/data/otter/data'
|
|
|
|
- name: Set up Nefarious
|
|
hosts: emma
|
|
become: yes
|
|
tags: nefarious
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/nefarious/nefarious"
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/nefarious/jackett"
|
|
- role: any.software.nefarious-podman
|
|
vars:
|
|
host_download_dir: "/mnt/data1/media"
|
|
transmission_settings_path: "/etc/nefarious/transmission-settings.json"
|
|
nefarious_config_dir: "/mnt/data1/nefarious/nefarious"
|
|
jackett_data_dir: "/mnt/data1/nefarious/jackett"
|
|
nefarious_admin_user: "{{ vault_nefarious_admin_user }}"
|
|
nefarious_admin_pass: "{{ vault_nefarious_admin_pass }}"
|
|
|
|
- name: Set up Actual
|
|
hosts: emma
|
|
tags: actual
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/actual/data"
|
|
become: true
|
|
- role: any.software.actual-podman
|
|
vars:
|
|
data_dir: '/data/actual/data'
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: 'actual-data'
|
|
type: 'btrfs-subvolume'
|
|
path: '/data/actual/data'
|
|
|
|
- name: Set up Baikal
|
|
hosts: emma
|
|
tags: baikal
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/baikal/config"
|
|
become: true
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/baikal/Specific"
|
|
become: true
|
|
- role: any.software.baikal-podman
|
|
vars:
|
|
baikal_config_dir: "/data/baikal/config"
|
|
baikal_specific_dir: "/data/baikal/Specific"
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: 'baikal-config'
|
|
type: 'btrfs-subvolume'
|
|
path: '/data/baikal/config'
|
|
- name: 'baikal-Specific'
|
|
type: 'btrfs-subvolume'
|
|
path: '/data/baikal/Specific'
|
|
|
|
- name: Set up Syncthing
|
|
hosts: emma
|
|
tags: syncthing
|
|
become: true
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/syncthing/data"
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/syncthing/config"
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/syncthing/home"
|
|
- role: any.software.syncthing
|
|
vars:
|
|
syncthing_data_dir: "/mnt/data1/syncthing/data"
|
|
syncthing_home_dir: "/mnt/data1/syncthing/home"
|
|
syncthing_config_dir: "/mnt/data1/syncthing/config"
|
|
|
|
- name: Set up Monica
|
|
hosts: emma
|
|
tags: monica
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
become: true
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/monica/data"
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/monica/mariadb"
|
|
- role: any.software.monica-podman
|
|
vars:
|
|
monica_data_dir: "/data/monica/data"
|
|
mariadb_data_dir: "/data/monica/mariadb"
|
|
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: 'monica-data'
|
|
type: 'btrfs-subvolume'
|
|
path: '/data/monica/config'
|
|
|
|
- name: 'monica-mariadb'
|
|
type: 'podman-mysql'
|
|
user: 'debian'
|
|
container: 'systemd-monica-mariadb'
|
|
mysql_user: 'monica'
|
|
mysql_password: 'monica'
|
|
database: 'monica'
|
|
|
|
- name: Set up Recipya
|
|
hosts: emma
|
|
tags: recipya
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/recipya/data"
|
|
become: true
|
|
- role: any.software.recipya-podman
|
|
vars:
|
|
data_dir: "/data/recipya/data"
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: "recipya-data"
|
|
type: "btrfs-subvolume"
|
|
path: "/data/recipya/data"
|
|
|
|
- name: Set up Immich
|
|
hosts: emma
|
|
tags: immich
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/immich/postgres"
|
|
- filesystem_uuid: "{{ btrfs_raid.uuid }}"
|
|
filesystem_path: "{{ btrfs_raid.path }}"
|
|
name: "/photos/immich-upload"
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/immich/model-cache"
|
|
become: true
|
|
- role: any.software.immich-podman
|
|
vars:
|
|
immich_postgres_dir: "/data/immich/postgres"
|
|
immich_upload_dir: "/mnt/data1/photos/immich-upload"
|
|
immich_model_cache_dir: "/data/immich/model-cache"
|
|
immich_libraries:
|
|
- path: "/mnt/data1/photos/jef"
|
|
name: "jef"
|
|
- path: "/mnt/data1/photos/lambroek"
|
|
name: "lambroek"
|
|
- role: any.tools.backup-scripts
|
|
become: true
|
|
vars:
|
|
backups:
|
|
- name: "immich-postgres"
|
|
type: "podman-postgres"
|
|
user: "debian"
|
|
container: "systemd-immich-postgres"
|
|
pg_user: "immich"
|
|
database: "immich"
|
|
|
|
- name: Set up Tuwunel
|
|
hosts: emma
|
|
tags: tuwunel
|
|
become: true
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/matrix-tuwunel/data"
|
|
- role: any.software.tuwunel
|
|
vars:
|
|
tuwunel_data_dir: '/data/matrix-tuwunel/data'
|
|
- role: any.tools.backup-scripts
|
|
vars:
|
|
backups:
|
|
- name: "tuwunel-data"
|
|
type: "btrfs-subvolume"
|
|
path: "/data/matrix-tuwunel/data"
|
|
|
|
- name: Set up GreptimeDB
|
|
hosts: emma
|
|
tags: [greptimedb, otel]
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/greptimedb/data"
|
|
become: true
|
|
- role: any.software.greptimedb-podman
|
|
vars:
|
|
greptimedb_data_dir: "/data/greptimedb/data"
|
|
|
|
- name: Set up Grafana
|
|
hosts: emma
|
|
tags: [grafana, otel]
|
|
roles:
|
|
- role: any.common.btrfs-subvolumes
|
|
vars:
|
|
subvolumes:
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/grafana/data"
|
|
- filesystem_uuid: "{{ btrfs_nvme.uuid }}"
|
|
filesystem_path: "{{ btrfs_nvme.path }}"
|
|
name: "/@rootfs/data/grafana/logs"
|
|
- role: any.software.grafana
|
|
vars:
|
|
grafana_data_dir: "/data/grafana/data"
|
|
grafana_logs_dir: "/data/grafana/logs"
|
|
- role: any.tools.backup-scripts
|
|
vars:
|
|
backups:
|
|
- name: "grafana-data"
|
|
type: "btrfs-subvolume"
|
|
path: "/data/grafana/data"
|
|
become: true
|