mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-10-10 02:38:10 +02:00
• 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
34 lines
917 B
PHP
34 lines
917 B
PHP
<?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";
|
||
}
|