Files
computer-playbook/roles/web-app-espocrm/config/main.yml
Kevin Veen-Birkenbach e7702948b8 EspoCRM role: custom image + single data volume + runtime flag setter
• Build a custom image and replace upstream entrypoint with docker-entrypoint-custom.sh (strict fail on flag script).

• Introduce set_flags.php and wire via ESPOCRM_SET_FLAGS_SCRIPT; apply flags at container start; clear cache afterwards.

• Keep exactly one Docker volume (data:/var/www/html/); drop separate custom/extensions mounts.

• Compose: use custom image, add healthchecks & depends_on for daemon/websocket; keep service healthy gating.

• Ansible: deploy scripts, build & up via handlers; patch siteUrl as www-data; run upgrade non-fatal; always run flag setter.

• Vars/Env: add ESPO_INIT_* toggles and ESPOCRM_SET_FLAGS_SCRIPT; refactor variables for scripts & custom image paths.

Conversation context: https://chatgpt.com/share/68dd1992-020c-800f-bcf5-2db60cb4aab2
2025-10-01 14:08:09 +02:00

55 lines
1.4 KiB
YAML

features:
matomo: true
css: false
desktop: false # @todo Solve https://chatgpt.com/c/687a50b4-8d78-800f-a202-1631aa05fd4f before setting it to true
ldap: false
oidc: true
central_database: true
logout: true
server:
csp:
flags:
script-src-elem:
unsafe-inline: true
unsafe-eval: true
style-src:
unsafe-inline: true
script-src:
unsafe-eval: true
whitelist:
connect-src:
- "{{ WEBSOCKET_PROTOCOL }}://espocrm.{{ PRIMARY_DOMAIN }}"
- "data:"
frame-src:
- https://s.espocrm.com/
domains:
aliases: []
canonical:
- espo.crm.{{ PRIMARY_DOMAIN }}
email:
from_name: "Customer Relationship Management ({{ PRIMARY_DOMAIN }})"
docker:
services:
database:
enabled: true
espocrm:
image: "espocrm/espocrm"
version: "latest"
name: "espocrm"
cpus: 1.5
mem_reservation: 1.2g
mem_limit: 2g
pids_limit: 768
daemon:
cpus: 0.5
mem_reservation: 0.25g
mem_limit: 0.5g
pids_limit: 384
websocket:
cpus: 0.5
mem_reservation: 0.25g
mem_limit: 0.5g
pids_limit: 384
volumes:
data: espocrm_data
maintenance_mode: false