Added more update tasks for ESPOCRM config

This commit is contained in:
Kevin Veen-Birkenbach 2025-08-21 16:23:08 +02:00
parent 658003f5b9
commit 535094d15d
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
6 changed files with 61 additions and 34 deletions

View File

@ -38,4 +38,4 @@ docker:
version: "latest"
name: "espocrm"
volumes:
data: espocrm_data
data: ESPOCRM_data

View File

@ -1,25 +1,25 @@
- name: Update DB host
command: >
docker exec --user root {{ espocrm_name }}
sed -i "s/'host' => .*/'host' => '{{ database_host }}',/" {{ espocrm_config_file }}
docker exec --user root {{ ESPOCRM_NAME }}
sed -i "s/'host' => .*/'host' => '{{ database_host }}',/" {{ ESPOCRM_CONFIG_FILE_PRIVATE }}
notify: docker compose restart
- name: Update DB name
command: >
docker exec --user root {{ espocrm_name }}
sed -i "s/'dbname' => .*/'dbname' => '{{ database_name }}',/" {{ espocrm_config_file }}
docker exec --user root {{ ESPOCRM_NAME }}
sed -i "s/'dbname' => .*/'dbname' => '{{ database_name }}',/" {{ ESPOCRM_CONFIG_FILE_PRIVATE }}
notify: docker compose restart
- name: Update DB user
command: >
docker exec --user root {{ espocrm_name }}
sed -i "s/'user' => .*/'user' => '{{ database_username }}',/" {{ espocrm_config_file }}
docker exec --user root {{ ESPOCRM_NAME }}
sed -i "s/'user' => .*/'user' => '{{ database_username }}',/" {{ ESPOCRM_CONFIG_FILE_PRIVATE }}
notify: docker compose restart
- name: Update DB password
command: >
docker exec --user root {{ espocrm_name }}
sed -i "s/'password' => .*/'password' => '{{ database_password }}',/" {{ espocrm_config_file }}
docker exec --user root {{ ESPOCRM_NAME }}
sed -i "s/'password' => .*/'password' => '{{ database_password }}',/" {{ ESPOCRM_CONFIG_FILE_PRIVATE }}
notify: docker compose restart
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
@ -31,7 +31,7 @@
$c = $app->getContainer();
$cfg = $c->get("config");
$writer = $c->get("injectableFactory")->create("\Espo\Core\Utils\Config\ConfigWriter");
$new = "{{ espocrm_url }}";
$new = "{{ ESPOCRM_URL }}";
if ($cfg->get("siteUrl") !== $new) {
$writer->set("siteUrl", $new);
$writer->save();
@ -41,4 +41,28 @@
args:
chdir: "{{ docker_compose.directories.instance }}"
register: siteurl_set
changed_when: "'CHANGED' in siteurl_set.stdout"
changed_when: "'CHANGED' in siteurl_set.stdout"
- name: Disable EspoCRM maintenance mode
ansible.builtin.shell: |
docker exec -u root {{ ESPOCRM_NAME }} \
sed -i "s/'maintenanceMode' => true/'maintenanceMode' => false/" {{ ESPOCRM_CONFIG_FILE_PUBLIC }}
register: disable_maintenance
changed_when: disable_maintenance.rc == 0
failed_when: disable_maintenance.rc != 0
- name: Enable EspoCRM cache
ansible.builtin.shell: |
docker exec -u root {{ ESPOCRM_NAME }} \
sed -i "s/'useCache' => false/'useCache' => true/" {{ ESPOCRM_CONFIG_FILE_PUBLIC }}
register: enable_cache
changed_when: enable_cache.rc == 0
failed_when: enable_cache.rc != 0
- name: Enable EspoCRM cron
ansible.builtin.shell: |
docker exec -u root {{ ESPOCRM_NAME }} \
sed -i "s/'cronDisabled' => true/'cronDisabled' => false/" {{ ESPOCRM_CONFIG_FILE_PUBLIC }}
register: enable_cron
changed_when: enable_cron.rc == 0
failed_when: enable_cron.rc != 0

View File

@ -6,7 +6,7 @@
docker_compose_flush_handlers: true
- name: Check if config.php exists in EspoCRM
command: docker exec --user root {{ espocrm_name }} test -f {{ espocrm_config_file }}
command: docker exec --user root {{ ESPOCRM_NAME }} test -f {{ ESPOCRM_CONFIG_FILE_PRIVATE }}
register: config_file_exists
changed_when: false
failed_when: false
@ -30,4 +30,5 @@
$writer->save();
'
args:
chdir: "{{ docker_compose.directories.instance }}"
chdir: "{{ docker_compose.directories.instance }}"
when: ESPOCRM_OIDC_ENABLED | bool

View File

@ -1,7 +1,7 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
web:
container_name: {{ espocrm_name }}
image: "{{ espocrm_image }}:{{ espocrm_version }}"
container_name: {{ ESPOCRM_NAME }}
image: "{{ ESPOCRM_IMAGE }}:{{ ESPOCRM_VERSION }}"
{% include 'roles/docker-container/templates/base.yml.j2' %}
{% include 'roles/docker-container/templates/healthcheck/curl.yml.j2' %}
ports:
@ -12,7 +12,7 @@
- data:/var/www/html
daemon:
image: "{{ espocrm_image }}:{{ espocrm_version }}"
image: "{{ ESPOCRM_IMAGE }}:{{ ESPOCRM_VERSION }}"
restart: {{ DOCKER_RESTART_POLICY }}
logging:
driver: journald
@ -22,7 +22,7 @@
- data:/var/www/html
websocket:
image: "{{ espocrm_image }}:{{ espocrm_version }}"
image: "{{ ESPOCRM_IMAGE }}:{{ ESPOCRM_VERSION }}"
restart: {{ DOCKER_RESTART_POLICY }}
logging:
driver: journald
@ -41,6 +41,6 @@
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
data:
name: {{ espocrm_volume }}
name: {{ ESPOCRM_VOLUME }}
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@ -23,7 +23,7 @@ ESPOCRM_ADMIN_USERNAME={{ applications | get_app_conf(application_id, 'users.adm
ESPOCRM_ADMIN_PASSWORD={{ applications | get_app_conf(application_id, 'credentials.administrator_password', True) }}
# Public base URL of the EspoCRM instance
ESPOCRM_SITE_URL={{ espocrm_url }}
ESPOCRM_SITE_URL={{ ESPOCRM_URL }}
# ------------------------------------------------
# General UI & locale settings
@ -77,7 +77,7 @@ ESPOCRM_CONFIG_LDAP_USER_LOGIN_FILTER=(sAMAccountName=%USERNAME%)
# OpenID Connect settings (optional)
# Applied only if the feature flag is true
# ------------------------------------------------
{% if applications | get_app_conf(application_id, 'features.oidc', False) %}
{% if ESPOCRM_OIDC_ENABLED | bool %}
# ------------------------------------------------
# OpenID Connect settings
@ -94,12 +94,12 @@ ESPOCRM_CONFIG_OIDC_TOKEN_ENDPOINT={{ OIDC.CLIENT.TOKEN_URL }}
ESPOCRM_CONFIG_OIDC_USER_INFO_ENDPOINT={{ OIDC.CLIENT.USER_INFO_URL }}
ESPOCRM_CONFIG_OIDC_JWKS_ENDPOINT={{ OIDC.CLIENT.CERTS }}
ESPOCRM_CONFIG_OIDC_AUTHORIZATION_REDIRECT_URI={{ espocrm_url }}/oidc/callback
ESPOCRM_CONFIG_OIDC_AUTHORIZATION_REDIRECT_URI={{ ESPOCRM_URL }}/oidc/callback
#ESPOCRM_CONFIG_OIDC_SCOPES=openid,profile,email # Defined in main.yml
ESPOCRM_CONFIG_OIDC_CREATE_USER=true
ESPOCRM_CONFIG_OIDC_SYNC=true
ESPOCRM_CONFIG_OIDC_USERNAME_CLAIM={{OIDC.ATTRIBUTES.USERNAME}}
ESPOCRM_CONFIG_OIDC_USERNAME_CLAIM={{ OIDC.ATTRIBUTES.USERNAME }}
# ESPOCRM_CONFIG_OIDC_SYNC_TEAMS=true
# ESPOCRM_CONFIG_OIDC_GROUP_CLAIM=group
{% endif %}

View File

@ -1,19 +1,21 @@
# General
application_id: "web-app-espocrm"
application_id: "web-app-espocrm"
# Database
database_type: "mariadb"
database_type: "mariadb"
# Webserver
location_ws: "/ws"
ws_port: "{{ ports.localhost.websocket[application_id] }}"
client_max_body_size: "100m"
vhost_flavour: "ws_generic"
location_ws: "/ws"
ws_port: "{{ ports.localhost.websocket[application_id] }}"
client_max_body_size: "100m"
vhost_flavour: "ws_generic"
# Espocrm
espocrm_version: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.version', True) }}"
espocrm_image: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.image', True) }}"
espocrm_name: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.name', True) }}"
espocrm_volume: "{{ applications | get_app_conf(application_id, 'docker.volumes.data', True) }}"
espocrm_config_file: "/var/www/html/data/config-internal.php"
espocrm_url: "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
ESPOCRM_VERSION: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.version', True) }}"
ESPOCRM_IMAGE: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.image', True) }}"
ESPOCRM_NAME: "{{ applications | get_app_conf(application_id, 'docker.services.espocrm.name', True) }}"
ESPOCRM_VOLUME: "{{ applications | get_app_conf(application_id, 'docker.volumes.data', True) }}"
ESPOCRM_CONFIG_FILE_PRIVATE: "/var/www/html/data/config-internal.php"
ESPOCRM_CONFIG_FILE_PUBLIC: "/var/www/html/data/config.php"
ESPOCRM_URL: "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
ESPOCRM_OIDC_ENABLED: "{{ applications | get_app_conf(application_id, 'features.central_database', False) }}"