mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-03 19:58:14 +00: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";
 | 
						||
}
 |