mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-10-16 19:24:58 +00:00
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
This commit is contained in:
33
roles/web-app-espocrm/files/set_flags.php
Normal file
33
roles/web-app-espocrm/files/set_flags.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/**
|
||||
* set_flags.php – Ensure EspoCRM runtime flags are set idempotently.
|
||||
*/
|
||||
|
||||
require "/var/www/html/bootstrap.php";
|
||||
|
||||
$app = new \Espo\Core\Application();
|
||||
$c = $app->getContainer();
|
||||
$cfg = $c->get("config");
|
||||
$w = $c->get("injectableFactory")->create("\Espo\Core\Utils\Config\ConfigWriter");
|
||||
|
||||
// Read from ENV
|
||||
$flags = [
|
||||
"maintenanceMode" => in_array(strtolower(getenv("ESPO_INIT_MAINTENANCE_MODE") ?: "false"), ["1","true","yes","on"]),
|
||||
"cronDisabled" => in_array(strtolower(getenv("ESPO_INIT_CRON_DISABLED") ?: "false"), ["1","true","yes","on"]),
|
||||
"useCache" => in_array(strtolower(getenv("ESPO_INIT_USE_CACHE") ?: "true"), ["1","true","yes","on"])
|
||||
];
|
||||
|
||||
$changed = false;
|
||||
foreach ($flags as $k => $v) {
|
||||
if ($cfg->get($k) !== $v) {
|
||||
$w->set($k, $v);
|
||||
$changed = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($changed) {
|
||||
$w->save();
|
||||
echo "CHANGED\n";
|
||||
} else {
|
||||
echo "UNCHANGED\n";
|
||||
}
|
Reference in New Issue
Block a user