mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-03 19:58:14 +00:00 
			
		
		
		
	Optimized Matomo role
This commit is contained in:
		@@ -17,6 +17,7 @@ HOST_DECIMAL_MARK:        ","
 | 
				
			|||||||
deployment_mode:        "single"      # Use single, if you deploy on one server. Use cluster if you setup in cluster mode.
 | 
					deployment_mode:        "single"      # Use single, if you deploy on one server. Use cluster if you setup in cluster mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
web_protocol:           "https"       # Web protocol type. Use https or http. If you run local you need to change it to http
 | 
					web_protocol:           "https"       # Web protocol type. Use https or http. If you run local you need to change it to http
 | 
				
			||||||
 | 
					web_port:               "{{ 443 if web_protocol == 'https' else 80 }}"  # Default port web applications will listen to
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Domain
 | 
					## Domain
 | 
				
			||||||
primary_domain_tld:     "localhost"                                     # Top Level Domain of the server
 | 
					primary_domain_tld:     "localhost"                                     # Top Level Domain of the server
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,17 @@
 | 
				
			|||||||
    COMPOSE_HTTP_TIMEOUT: 600
 | 
					    COMPOSE_HTTP_TIMEOUT: 600
 | 
				
			||||||
    DOCKER_CLIENT_TIMEOUT: 600
 | 
					    DOCKER_CLIENT_TIMEOUT: 600
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# default setup for docker compose files
 | 
					- name: Validate Docker Compose configuration
 | 
				
			||||||
 | 
					  command:
 | 
				
			||||||
 | 
					    cmd: docker compose -f {{ docker_compose.files.docker_compose }} config --quiet
 | 
				
			||||||
 | 
					    chdir: "{{ docker_compose.directories.instance }}"
 | 
				
			||||||
 | 
					  register: dc_validate
 | 
				
			||||||
 | 
					  changed_when: false
 | 
				
			||||||
 | 
					  failed_when: dc_validate.rc != 0
 | 
				
			||||||
 | 
					  listen:
 | 
				
			||||||
 | 
					    - docker compose up
 | 
				
			||||||
 | 
					    - docker compose restart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: docker compose up
 | 
					- name: docker compose up
 | 
				
			||||||
  shell: docker-compose -p {{ application_id }} up -d --force-recreate --remove-orphans --build
 | 
					  shell: docker-compose -p {{ application_id }} up -d --force-recreate --remove-orphans --build
 | 
				
			||||||
  args:
 | 
					  args:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- name: "Create central database"
 | 
					- name: "Create central database"
 | 
				
			||||||
  include_role:
 | 
					  include_role:
 | 
				
			||||||
    name: "web-app-{{database_type}}"
 | 
					    name: "svc-rdbms-{{database_type}}"
 | 
				
			||||||
  when: applications | is_feature_enabled('central_database',application_id)
 | 
					  when: applications | is_feature_enabled('central_database',application_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: "Add database to backup"
 | 
					- name: "Add database to backup"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										51
									
								
								roles/web-app-matomo/tasks/constructor.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								roles/web-app-matomo/tasks/constructor.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,51 @@
 | 
				
			|||||||
 | 
					- name: "include svc-rdbms-central"
 | 
				
			||||||
 | 
					  include_role: 
 | 
				
			||||||
 | 
					    name: svc-rdbms-central
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: "include role srv-web-proxy-domain for {{application_id}}"
 | 
				
			||||||
 | 
					  include_role:
 | 
				
			||||||
 | 
					    name: srv-web-proxy-domain
 | 
				
			||||||
 | 
					  vars:
 | 
				
			||||||
 | 
					    domain:   "{{ domains | get_domain(application_id) }}"
 | 
				
			||||||
 | 
					    http_port:   "{{ ports.localhost.http[application_id] }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: flush docker service
 | 
				
			||||||
 | 
					  meta: flush_handlers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Wait for API
 | 
				
			||||||
 | 
					- name: Exclude global IPs in Matomo
 | 
				
			||||||
 | 
					  uri:
 | 
				
			||||||
 | 
					    url: "{{ matomo_index_php_url }}"
 | 
				
			||||||
 | 
					    method: POST
 | 
				
			||||||
 | 
					    body_format: form-urlencoded
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      module: API
 | 
				
			||||||
 | 
					      method: SitesManager.setGlobalExcludedIps
 | 
				
			||||||
 | 
					      excludedIps: "{{ matomo_excluded_ips | join(',') }}"
 | 
				
			||||||
 | 
					      format: json
 | 
				
			||||||
 | 
					      token_auth: "{{ matomo_auth_token }}"
 | 
				
			||||||
 | 
					    return_content: yes
 | 
				
			||||||
 | 
					    status_code: 200
 | 
				
			||||||
 | 
					  register: matomo_exclude
 | 
				
			||||||
 | 
					  until: matomo_exclude.status == 200
 | 
				
			||||||
 | 
					  retries: 5
 | 
				
			||||||
 | 
					  delay: 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Exclude CSP-CheckerBot user agent in Matomo
 | 
				
			||||||
 | 
					  uri:
 | 
				
			||||||
 | 
					    url: "{{ matomo_index_php_url }}"
 | 
				
			||||||
 | 
					    method: POST
 | 
				
			||||||
 | 
					    body_format: form-urlencoded
 | 
				
			||||||
 | 
					    body:
 | 
				
			||||||
 | 
					      module: API
 | 
				
			||||||
 | 
					      method: SitesManager.setGlobalExcludedUserAgents
 | 
				
			||||||
 | 
					      excludedUserAgents: "CSP-CheckerBot"
 | 
				
			||||||
 | 
					      format: json
 | 
				
			||||||
 | 
					      token_auth: "{{ matomo_auth_token }}"
 | 
				
			||||||
 | 
					    return_content: yes
 | 
				
			||||||
 | 
					    status_code: 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: run the docker matomo tasks once
 | 
				
			||||||
 | 
					  set_fact:
 | 
				
			||||||
 | 
					    run_once_web_app_matomo: true
 | 
				
			||||||
 | 
					  when: run_once_web_app_matomo is not defined
 | 
				
			||||||
@@ -1,46 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
- name: "include svc-rdbms-central"
 | 
					- name: "construct {{ role_name }}"
 | 
				
			||||||
  include_role: 
 | 
					  include_tasks: constructor.yml 
 | 
				
			||||||
    name: svc-rdbms-central
 | 
					  when: run_once_web_app_matomo is not defined
 | 
				
			||||||
  when: run_once_docker_matomo is not defined
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: "include role srv-web-proxy-domain for {{application_id}}"
 | 
					 | 
				
			||||||
  include_role:
 | 
					 | 
				
			||||||
    name: srv-web-proxy-domain
 | 
					 | 
				
			||||||
  vars:
 | 
					 | 
				
			||||||
    domain:   "{{ domains | get_domain(application_id) }}"
 | 
					 | 
				
			||||||
    http_port:   "{{ ports.localhost.http[application_id] }}"
 | 
					 | 
				
			||||||
  when: run_once_docker_matomo is not defined
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: run the docker matomo tasks once
 | 
					 | 
				
			||||||
  set_fact:
 | 
					 | 
				
			||||||
    run_once_docker_matomo: true
 | 
					 | 
				
			||||||
  when: run_once_docker_matomo is not defined
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Exclude global IPs in Matomo
 | 
					 | 
				
			||||||
  uri:
 | 
					 | 
				
			||||||
    url: "{{ matomo_index_php_url }}"
 | 
					 | 
				
			||||||
    method: POST
 | 
					 | 
				
			||||||
    body_format: form-urlencoded
 | 
					 | 
				
			||||||
    body:
 | 
					 | 
				
			||||||
      module: API
 | 
					 | 
				
			||||||
      method: SitesManager.setGlobalExcludedIps
 | 
					 | 
				
			||||||
      excludedIps: "{{ matomo_excluded_ips | join(',') }}"
 | 
					 | 
				
			||||||
      format: json
 | 
					 | 
				
			||||||
      token_auth: "{{ matomo_auth_token }}"
 | 
					 | 
				
			||||||
    return_content: yes
 | 
					 | 
				
			||||||
    status_code: 200
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- name: Exclude CSP-CheckerBot user agent in Matomo
 | 
					 | 
				
			||||||
  uri:
 | 
					 | 
				
			||||||
    url: "{{ matomo_index_php_url }}"
 | 
					 | 
				
			||||||
    method: POST
 | 
					 | 
				
			||||||
    body_format: form-urlencoded
 | 
					 | 
				
			||||||
    body:
 | 
					 | 
				
			||||||
      module: API
 | 
					 | 
				
			||||||
      method: SitesManager.setGlobalExcludedUserAgents
 | 
					 | 
				
			||||||
      excludedUserAgents: "CSP-CheckerBot"
 | 
					 | 
				
			||||||
      format: json
 | 
					 | 
				
			||||||
      token_auth: "{{ matomo_auth_token }}"
 | 
					 | 
				
			||||||
    return_content: yes
 | 
					 | 
				
			||||||
    status_code: 200
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user