diff --git a/AGENTS.md b/AGENTS.md index 8989d74..f9e6adb 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,7 +11,7 @@ Ansible-проект для автоматизации личного серве - `vars/*.yml` — переменные приложений и образов, `vars/secrets.yml` — зашифрованные секреты (vault). - `roles/` — кастомные роли (`eget`, `owner`, `secrets`), галактические роли в `galaxy.roles/`. - `files//` — docker-compose шаблоны, конфиги, скрипты бэкапов для каждого сервиса. -- `templates/` — общие шаблоны (например `env.j2`). +- `templates/` — общие шаблоны (например `env.template`). - `scripts/` — вспомогательные Python-скрипты (SMTP-утилиты для Yandex Cloud Postbox). - `.gitea/workflows/lint.yml` — CI: yamllint + ansible-lint. - `lefthook.yml` — pre-commit хуки (ruff, mypy, yamllint, ansible-lint, gitleaks, проверка vault). @@ -93,7 +93,7 @@ uv run ansible-galaxy install --role-file requirements.yml ## Шаблоны и переменные -- Суффиксы шаблонов: `.template.yml`, `.yml.j2`, `.template.sh` — рендерятся Ansible модулем `template`. +- Суффиксы шаблонов: `.template.yml`, `.template.sh`, `.template.cfg`, `.template.conf`, `.template.toml`, `.template` (для файлов без естественного расширения) — рендерятся Ansible модулем `template`. Расширение оригинального формата сохраняется после `.template.` ради подсветки синтаксиса в редакторе. - Большинство приложений определяют переменные inline в плейбуке. Отдельные файлы переменных только у homepage и transcriber (`vars/homepage.yml`, `vars/transcriber.yml` + `*.images.yml`). - Общие переменные из `vars/secrets.yml`: `application_dir`, `bin_prefix`, `primary_user` и др. - Каждое приложение: `app_name`, `app_user`, `app_owner_uid`, `app_owner_gid`, `base_dir`, `data_dir`. diff --git a/files/apprise/server.cfg.j2 b/files/apprise/server.template.cfg similarity index 100% rename from files/apprise/server.cfg.j2 rename to files/apprise/server.template.cfg diff --git a/files/backups/restic-shell.sh.j2 b/files/backups/restic-shell.template.sh similarity index 100% rename from files/backups/restic-shell.sh.j2 rename to files/backups/restic-shell.template.sh diff --git a/files/caddyproxy/Caddyfile.j2 b/files/caddyproxy/Caddyfile.template similarity index 100% rename from files/caddyproxy/Caddyfile.j2 rename to files/caddyproxy/Caddyfile.template diff --git a/files/caddyproxy/docker-compose.yml.j2 b/files/caddyproxy/docker-compose.template.yml similarity index 51% rename from files/caddyproxy/docker-compose.yml.j2 rename to files/caddyproxy/docker-compose.template.yml index 24d95e5..0c9dec9 100644 --- a/files/caddyproxy/docker-compose.yml.j2 +++ b/files/caddyproxy/docker-compose.template.yml @@ -1,20 +1,20 @@ services: - {{ service_name }}: + caddyproxy: image: caddy:2.11.2 restart: unless-stopped - container_name: {{ service_name }} + container_name: "caddyproxy" ports: - "80:80" - "443:443" - "443:443/udp" cap_add: - - NET_ADMIN + - NET_ADMIN volumes: - - {{ caddy_file_dir }}:/etc/caddy - - {{ data_dir }}:/data - - {{ config_dir }}:/config - - {{ caddy_logs_dir }}:/var/log/caddy + - "{{ caddy_file_dir }}:/etc/caddy" + - "{{ data_dir }}:/data" + - "{{ config_dir }}:/config" + - "{{ caddy_logs_dir }}:/var/log/caddy" networks: - "web_proxy_network" diff --git a/files/gitea/backup.sh.j2 b/files/gitea/backup.template.sh similarity index 100% rename from files/gitea/backup.sh.j2 rename to files/gitea/backup.template.sh diff --git a/files/gitea/docker-compose.yml.j2 b/files/gitea/docker-compose.template.yml similarity index 83% rename from files/gitea/docker-compose.yml.j2 rename to files/gitea/docker-compose.template.yml index 0b5e26f..2033167 100644 --- a/files/gitea/docker-compose.yml.j2 +++ b/files/gitea/docker-compose.template.yml @@ -7,10 +7,10 @@ services: ports: - "2222:22" volumes: - - {{ data_dir }}:/data - - {{ backups_dir }}:/backups - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro + - "{{ data_dir }}:/data" + - "{{ backups_dir }}:/backups" + - "/etc/timezone:/etc/timezone:ro" + - "/etc/localtime:/etc/localtime:ro" networks: - "web_proxy_network" environment: diff --git a/files/memos/backup.sh.j2 b/files/memos/backup.template.sh similarity index 100% rename from files/memos/backup.sh.j2 rename to files/memos/backup.template.sh diff --git a/files/memos/gobackup.yml.j2 b/files/memos/gobackup.template.yml similarity index 100% rename from files/memos/gobackup.yml.j2 rename to files/memos/gobackup.template.yml diff --git a/files/remembos/docker-compose.template.yml b/files/remembos/docker-compose.template.yml index 214ee70..d6d5893 100644 --- a/files/remembos/docker-compose.template.yml +++ b/files/remembos/docker-compose.template.yml @@ -1,7 +1,7 @@ services: remembos_app: - image: "{{ yc_container_registry_repository }}/remembos:v0.1.5" + image: "{{ yc_container_registry_repository }}/remembos:v0.2.0" container_name: remembos_app restart: unless-stopped user: "{{ owner_create_result.uid }}:{{ owner_create_result.group }}" diff --git a/files/rssbridge/docker-compose.yml.j2 b/files/rssbridge/docker-compose.template.yml similarity index 98% rename from files/rssbridge/docker-compose.yml.j2 rename to files/rssbridge/docker-compose.template.yml index 479bebf..1b5a43c 100644 --- a/files/rssbridge/docker-compose.yml.j2 +++ b/files/rssbridge/docker-compose.template.yml @@ -1,5 +1,5 @@ services: - + rssbridge_app: image: rssbridge/rss-bridge:2025-08-05 container_name: rssbridge_app diff --git a/files/wakapi/backup.sh.j2 b/files/wakapi/backup.template.sh similarity index 100% rename from files/wakapi/backup.sh.j2 rename to files/wakapi/backup.template.sh diff --git a/files/wakapi/docker-compose.yml.j2 b/files/wakapi/docker-compose.template.yml similarity index 100% rename from files/wakapi/docker-compose.yml.j2 rename to files/wakapi/docker-compose.template.yml diff --git a/files/wakapi/gobackup.yml.j2 b/files/wakapi/gobackup.template.yml similarity index 100% rename from files/wakapi/gobackup.yml.j2 rename to files/wakapi/gobackup.template.yml diff --git a/playbook-apprise.yml b/playbook-apprise.yml index 5bc1adb..2e63150 100644 --- a/playbook-apprise.yml +++ b/playbook-apprise.yml @@ -37,7 +37,7 @@ - name: "Copy apprise config" ansible.builtin.template: - src: "./files/{{ app_name }}/server.cfg.j2" + src: "./files/{{ app_name }}/server.template.cfg" dest: "{{ config_dir }}/server.cfg" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/playbook-backups.yml b/playbook-backups.yml index 0e1892e..44ea7ea 100644 --- a/playbook-backups.yml +++ b/playbook-backups.yml @@ -40,7 +40,7 @@ - name: "Copy restic shell script" ansible.builtin.template: - src: "files/backups/restic-shell.sh.j2" + src: "files/backups/restic-shell.template.sh" dest: "{{ restic_shell_script }}" owner: root group: root diff --git a/playbook-caddyproxy.yml b/playbook-caddyproxy.yml index 5a57cd5..183af31 100644 --- a/playbook-caddyproxy.yml +++ b/playbook-caddyproxy.yml @@ -73,7 +73,7 @@ - name: "Copy caddy file" ansible.builtin.template: - src: "./files/{{ app_name }}/Caddyfile.j2" + src: "./files/{{ app_name }}/Caddyfile.template" dest: "{{ (caddy_file_dir, 'Caddyfile') | path_join }}" owner: "{{ app_user }}" group: "{{ app_user }}" @@ -81,7 +81,7 @@ - name: "Copy docker compose file" ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" + src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/playbook-gitea.yml b/playbook-gitea.yml index ec6b157..840f2ef 100644 --- a/playbook-gitea.yml +++ b/playbook-gitea.yml @@ -38,7 +38,7 @@ - name: "Copy backup script" ansible.builtin.template: - src: "files/{{ app_name }}/backup.sh.j2" + src: "files/{{ app_name }}/backup.template.sh" dest: "{{ base_dir }}/backup.sh" owner: "{{ app_user }}" group: "{{ app_user }}" @@ -46,7 +46,7 @@ - name: "Copy docker compose file" ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" + src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/playbook-memos.yml b/playbook-memos.yml index 7485d8b..faa9850 100644 --- a/playbook-memos.yml +++ b/playbook-memos.yml @@ -39,7 +39,7 @@ - name: "Copy gobackup config" ansible.builtin.template: - src: "./files/{{ app_name }}/gobackup.yml.j2" + src: "./files/{{ app_name }}/gobackup.template.yml" dest: "{{ gobackup_config }}" owner: "{{ app_user }}" group: "{{ app_user }}" @@ -47,7 +47,7 @@ - name: "Copy backup script" ansible.builtin.template: - src: "files/{{ app_name }}/backup.sh.j2" + src: "files/{{ app_name }}/backup.template.sh" dest: "{{ base_dir }}/backup.sh" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/playbook-rssbridge.yml b/playbook-rssbridge.yml index 1a5ba13..50bc943 100644 --- a/playbook-rssbridge.yml +++ b/playbook-rssbridge.yml @@ -34,7 +34,7 @@ - name: "Copy docker compose file" ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" + src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/playbook-wakapi.yml b/playbook-wakapi.yml index 71afc53..6c07755 100644 --- a/playbook-wakapi.yml +++ b/playbook-wakapi.yml @@ -39,7 +39,7 @@ - name: "Copy gobackup config" ansible.builtin.template: - src: "./files/{{ app_name }}/gobackup.yml.j2" + src: "./files/{{ app_name }}/gobackup.template.yml" dest: "{{ gobackup_config }}" owner: "{{ app_user }}" group: "{{ app_user }}" @@ -47,7 +47,7 @@ - name: "Copy backup script" ansible.builtin.template: - src: "files/{{ app_name }}/backup.sh.j2" + src: "files/{{ app_name }}/backup.template.sh" dest: "{{ base_dir }}/backup.sh" owner: "{{ app_user }}" group: "{{ app_user }}" @@ -55,7 +55,7 @@ - name: "Copy docker compose file" ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" + src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/roles/owner/tasks/main.yml b/roles/owner/tasks/main.yml index 6ccc2fd..39c6d0f 100644 --- a/roles/owner/tasks/main.yml +++ b/roles/owner/tasks/main.yml @@ -39,7 +39,7 @@ - name: 'Set up environment variables for user "{{ owner_name }}".' ansible.builtin.template: - src: env.j2 + src: env.template dest: "/home/{{ owner_name }}/.env" owner: "{{ owner_name }}" group: "{{ owner_group }}" diff --git a/roles/owner/templates/env.j2 b/roles/owner/templates/env.template similarity index 100% rename from roles/owner/templates/env.j2 rename to roles/owner/templates/env.template diff --git a/templates/env.j2 b/templates/env.template similarity index 100% rename from templates/env.j2 rename to templates/env.template