Reliability: - Add swap role (2GB, swappiness=10, idempotent via /etc/fstab) - Add mem_limit to plane-worker (512m) and plane-beat (256m) - Add health checks to all services (traefik, vaultwarden, forgejo, plane-*, syncthing, prometheus, grafana, loki) Code quality: - Remove Traefik Docker labels (file provider used, labels were dead code) - Add comment explaining file provider architecture Observability: - Add AlertManager with Telegram notifications - Add Prometheus alert rules: CPU, RAM, disk, swap, container health - Add Loki + Promtail for centralized log aggregation - Add Loki datasource to Grafana - Enable Traefik /ping endpoint for health checks Backups: - Add backup role: pg_dump for forgejo + plane DBs, tar for vaultwarden and forgejo data - 7-day retention, daily cron at 03:00 - Backup script at /usr/local/bin/backup-services Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
779 B
YAML
33 lines
779 B
YAML
---
|
|
- name: Create services root directory
|
|
ansible.builtin.file:
|
|
path: "{{ services_root }}"
|
|
state: directory
|
|
owner: "{{ deploy_user }}"
|
|
group: "{{ deploy_group }}"
|
|
mode: "0755"
|
|
|
|
- name: Create service subdirectories
|
|
ansible.builtin.file:
|
|
path: "{{ services_root }}/{{ item }}"
|
|
state: directory
|
|
owner: "{{ deploy_user }}"
|
|
group: "{{ deploy_group }}"
|
|
mode: "0755"
|
|
loop:
|
|
- traefik
|
|
- traefik/dynamic
|
|
- vaultwarden/data
|
|
- forgejo/data
|
|
- forgejo/db
|
|
- plane/pgdata
|
|
- plane/media
|
|
- syncthing/config
|
|
- syncthing/data
|
|
- act_runner
|
|
- prometheus
|
|
- grafana/provisioning/datasources
|
|
- grafana/provisioning/dashboards
|
|
- grafana/provisioning/dashboards/json
|
|
- prometheus/rules
|
|
- loki
|