- playbook.yml (hosts: monoco) + vars/default.yml, requirements.yml - roles: network (shared docker network), greatbear (registry pull, bind mount /var/lib/greatbear/pb_data, .env upload, health wait), caddy (blockinfile snippet into the shared Caddyfile + docker exec reload) - image honors PB_DATA_DIR and runs as root to match the bind-mount pattern - frontend on www.greatbear.in (+apex) with /api/* and /_* proxied to PocketBase; admin.greatbear.in redirects to the admin UI
27 lines
859 B
YAML
27 lines
859 B
YAML
---
|
|
- name: Read snippet from template file
|
|
ansible.builtin.set_fact:
|
|
caddy_snippet_block: "{{ lookup('template', 'files/Caddyfile.j2') }}"
|
|
|
|
- name: Read current Caddyfile
|
|
ansible.builtin.slurp:
|
|
path: "{{ caddy_caddyfile_path }}"
|
|
register: caddy_caddyfile_raw
|
|
|
|
- name: Decode Caddyfile content
|
|
ansible.builtin.set_fact:
|
|
caddy_caddyfile_content: "{{ caddy_caddyfile_raw['content'] | b64decode }}"
|
|
|
|
- name: Check if snippet already exists
|
|
ansible.builtin.set_fact:
|
|
caddy_snippet_present: "{{ caddy_snippet_block in caddy_caddyfile_content }}"
|
|
|
|
- name: Add or update snippet in Caddyfile
|
|
ansible.builtin.blockinfile:
|
|
path: "{{ caddy_caddyfile_path }}"
|
|
marker: "# {mark} Ansible managed Caddy snippet for {{ host }}"
|
|
block: "{{ caddy_snippet_block }}"
|
|
create: true
|
|
mode: "0644"
|
|
notify: Reload Caddy configuration
|