mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-10-31 02:10:05 +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
		
			
				
	
	
		
			47 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # General
 | |
| application_id:                   "web-app-espocrm"
 | |
| entity_name:                      "{{ application_id | get_entity_name }}"
 | |
| 
 | |
| # Database
 | |
| database_type:                    "mariadb"
 | |
| 
 | |
| # Webserver
 | |
| location_ws:                      "/ws"
 | |
| ws_port:                          "{{ ports.localhost.websocket[application_id] }}"
 | |
| client_max_body_size:             "100m"
 | |
| vhost_flavour:                    "ws_generic"
 | |
| 
 | |
| # Espocrm
 | |
| 
 | |
| ## Container
 | |
| ESPOCRM_VERSION:                    "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~'.version') }}"
 | |
| ESPOCRM_IMAGE:                      "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~'.image') }}"
 | |
| ESPOCRM_CUSTOM_IMAGE:               "custom_espocrm"
 | |
| ESPOCRM_CONTAINER:                  "{{ applications | get_app_conf(application_id, 'docker.services.' ~ entity_name ~'.name') }}"
 | |
| ESPOCRM_SERVICE:                    "{{ entity_name }}"
 | |
| 
 | |
| ## Volumes
 | |
| ESPOCRM_DATA_VOLUME:                "{{ applications | get_app_conf(application_id, 'docker.volumes.data') }}"
 | |
| 
 | |
| ## Scripts
 | |
| 
 | |
| ### Entrypoint
 | |
| ESPOCRM_ENTRYPOINT_SCRIPT_FILE:     "docker-entrypoint-custom.sh"
 | |
| ESPOCRM_ENTRYPOINT_SCRIPT_HOST_ABS: "{{ [ docker_compose.directories.volumes, ESPOCRM_ENTRYPOINT_SCRIPT_FILE ] | path_join }}"
 | |
| ESPOCRM_ENTRYPOINT_SCRIPT_HOST_REL: "volumes/{{ ESPOCRM_ENTRYPOINT_SCRIPT_FILE }}"
 | |
| ESPOCRM_ENTRYPOINT_SCRIPT_DOCKER:   "{{ [ '/usr/local/bin/', ESPOCRM_ENTRYPOINT_SCRIPT_FILE ] | path_join }}"
 | |
| 
 | |
| ### Set Flag
 | |
| ESPOCRM_SET_FLAG_SCRIPT_FILE:       "set_flags.php"
 | |
| ESPOCRM_SET_FLAG_SCRIPT_HOST_ABS:   "{{ [ docker_compose.directories.volumes, ESPOCRM_SET_FLAG_SCRIPT_FILE ] | path_join }}"
 | |
| ESPOCRM_SET_FLAG_SCRIPT_HOST_REL:   "volumes/{{ ESPOCRM_SET_FLAG_SCRIPT_FILE }}"
 | |
| ESPOCRM_SET_FLAG_SCRIPT_DOCKER:     "{{ [ '/usr/local/bin/', ESPOCRM_SET_FLAG_SCRIPT_FILE ] | path_join }}"
 | |
| 
 | |
| ESPOCRM_CONFIG_FILE_PRIVATE:        "/var/www/html/data/config-internal.php"
 | |
| ESPOCRM_URL:                        "{{ domains | get_url(application_id, WEB_PROTOCOL) }}"
 | |
| ESPOCRM_OIDC_ENABLED:               "{{ applications | get_app_conf(application_id, 'features.oidc') }}"
 | |
| ESPOCRM_USER:                       "www-data"
 | |
| 
 | |
| ESPO_INIT_MAINTENANCE_MODE: "{{ applications | get_app_conf(application_id, 'maintenance_mode') | default(false) }}"
 | |
| ESPO_INIT_CRON_DISABLED:    "{{ ESPO_INIT_MAINTENANCE_MODE }}"        # disable cron only when in maintenance
 | |
| ESPO_INIT_USE_CACHE:        "{{ not ESPO_INIT_MAINTENANCE_MODE }}"    # enable cache when NOT in maintenance |