01_patch_config.ymlΒΆ

---
- name: "🩹 Patch EspoCRM DB config key (idempotent)"
  ansible.builtin.shell:
    cmd: >-
      IFS= read -r CONFIG_VALUE && export CONFIG_VALUE && container exec -i --user root
      -e CONFIG_KEY -e CONFIG_VALUE -e CONFIG_FILE
      {{ ESPOCRM_LOCAL_CID | quote }} sh
    stdin: |-
      {{ item.value }}
      {{ lookup('file', 'shell/patch_config_key.sh') }}
  environment:
    CONFIG_KEY: "{{ item.key }}"
    CONFIG_FILE: "{{ ESPOCRM_CONFIG_FILE_PRIVATE }}"
  loop:
    - { key: host, value: "{{ lookup('database', application_id, 'host') }}" }
    - { key: dbname, value: "{{ lookup('database', application_id, 'name') }}" }
    - { key: user, value: "{{ lookup('database', application_id, 'username') }}" }
    - { key: password, value: "{{ lookup('database', application_id, 'password') }}" }
  loop_control:
    label: "{{ item.key }}"
  register: db_patch
  changed_when: "'CHANGED' in db_patch.stdout"
  notify: compose-up
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: βœ… Ensure siteUrl matches canonical domain
  ansible.builtin.shell:
    cmd: >-
      container exec -i --user {{ ESPOCRM_USER }}
      -e ESPOCRM_URL={{ ESPOCRM_URL | quote }}
      {{ ESPOCRM_LOCAL_CID | quote }} php
    stdin: "{{ lookup('file', 'php/set_siteurl.php') }}"
  register: siteurl_set
  changed_when: "'CHANGED' in siteurl_set.stdout"