Cleaned up matomo integration

This commit is contained in:
Kevin Veen-Birkenbach 2025-02-19 12:01:36 +01:00
parent 6282330226
commit 7377aa9c20
5 changed files with 13 additions and 58 deletions

View File

@ -19,13 +19,11 @@
# Priority: 1 # Priority: 1
# Almost all other roles depend on the Matomo tracking # Almost all other roles depend on the Matomo tracking
- hosts: all - name: "setup matomo"
tasks: hosts: matomo
- name: "setup matomo hosts if matomo hosts set or global_matomo_tracking_enabled"
include_role:
name: docker-matomo
when: "'matomo' in group_names or (global_matomo_tracking_enabled | bool)"
become: true become: true
roles:
- role: docker-matomo
# Priority: 2 # Priority: 2
# Much other roles rely on a working ldap setup # Much other roles rely on a working ldap setup

View File

@ -2,39 +2,10 @@
## Overview ## Overview
This document serves as the README for the `docker-matrix` role, a part of the `CyMaIS` project. This role automates the deployment of a Matrix server using Docker. This document serves as the README for the `docker-matrix` role, a part of the `CyMaIS` project. This role automates the deployment of a Matrix server using Docker. This role was developed by [Kevin Veen-Birkenbach](https://www.veen.world/)
Matrix is an open-source project that provides a protocol for secure, decentralized, real-time communication. It offers features like end-to-end encrypted chat, VoIP, and file sharing, catering to both individual and enterprise users. With a focus on interoperability, Matrix can bridge with other communication systems, offering a unified platform for messaging and collaboration. Matrix is an open-source project that provides a protocol for secure, decentralized, real-time communication. It offers features like end-to-end encrypted chat, VoIP, and file sharing, catering to both individual and enterprise users. With a focus on interoperability, Matrix can bridge with other communication systems, offering a unified platform for messaging and collaboration.
## Dependencies
- `nginx-docker-reverse-proxy` (see `meta/main.yml`)
## Files and Their Functions
1. **`vars/main.yml`**: Defines variables such as `docker_compose.directories.instance`.
2. **`handlers/main.yml`**: Contains handlers like `recreate matrix` for restarting the Matrix service.
3. **`tasks/main.yml`**: Contains main tasks like creating directories and configuration files.
4. **`templates/log.config.j2`**: Template for the Matrix server's logging configuration.
5. **`templates/homeserver.yaml.j2`**: Template for the main configuration file of the Matrix server.
6. **`templates/docker-compose.yml.j2`**: Docker-Compose template for setting up the Matrix server and database.
## Important Administration Commands
- **Create Matrix Users**:
```
docker compose exec -it synapse register_new_matrix_user -u [Username] -p [Password] -a -c /data/homeserver.yaml http://localhost:8008
```
- **Execute Docker-Compose Commands**:
- Restart services:
```
docker-compose up -d --force-recreate
```
- View logs:
```
docker-compose logs
```
## Cleanup ## Cleanup
``` ```
# Cleanup Database # Cleanup Database
@ -70,6 +41,7 @@ For login with Token checkout [this guide](https://docs.mau.fi/bridges/go/slack/
- https://cyberhost.uk/element-matrix-setup/ - https://cyberhost.uk/element-matrix-setup/
- https://www.linode.com/docs/guides/how-to-install-the-element-chat-app/ - https://www.linode.com/docs/guides/how-to-install-the-element-chat-app/
- https://hub.docker.com/r/vectorim/element-web - https://hub.docker.com/r/vectorim/element-web
- https://github.com/matrix-org/matrix-synapse-ldap3
## Links to ChatGPT Conversations ## Links to ChatGPT Conversations

View File

@ -1,9 +1,9 @@
# Allow multiple sub_filters {# Allow multiple sub_filters #}
sub_filter_once off; sub_filter_once off;
sub_filter_types text/html; sub_filter_types text/html;
{% if global_matomo_tracking_enabled | bool %} {% if global_matomo_tracking_enabled | bool %}
# Include Global Matomo Tracking {# Include Global Matomo Tracking #}
{% include 'roles/nginx-modifier-matomo/templates/matomo-tracking.conf.j2' %} {% include 'roles/nginx-modifier-matomo/templates/matomo-tracking.conf.j2' %}
{% endif %} {% endif %}
@ -12,6 +12,6 @@ sub_filter_types text/html;
{% endif %} {% endif %}
{% if global_theming_enabled | bool %} {% if global_theming_enabled | bool %}
# Include Global CSS Location {# Include Global CSS Location #}
{% include 'roles/nginx-modifier-css/templates/location.conf.j2' %} {% include 'roles/nginx-modifier-css/templates/location.conf.j2' %}
{% endif %} {% endif %}

View File

@ -4,16 +4,6 @@
notify: restart nginx notify: restart nginx
when: run_once_nginx is not defined when: run_once_nginx is not defined
# I assume the following can be deleted
# @todo Delete
- name: install nginx-mod-headers-more for matomo
pacman:
name: nginx-mod-headers-more
state: present
notify: restart nginx
when: run_once_nginx is not defined and global_matomo_tracking_enabled | bool
- name: "Delete {{nginx.directories.configuration}} directory, when mode_reset" - name: "Delete {{nginx.directories.configuration}} directory, when mode_reset"
file: file:
path: "{{ nginx.directories.configuration }}" path: "{{ nginx.directories.configuration }}"

View File

@ -1,8 +1,3 @@
{% if global_matomo_tracking_enabled | bool %}
# @todo Assume this can be removed. Remove.
load_module /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so;
{% endif %}
worker_processes auto; worker_processes auto;
events events
@ -15,12 +10,12 @@ http
include mime.types; include mime.types;
default_type text/html; default_type text/html;
# caching {# caching #}
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache:20m max_size=20g inactive=14d use_temp_path=off; proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache:20m max_size=20g inactive=14d use_temp_path=off;
# logging and debugging {# logging and debugging #}
{% if enable_debug | bool %} {% if enable_debug | bool %}
# individual log format for better debugging {# individual log format for better debugging #}
log_format debug '$host - $remote_addr [$time_local] ' log_format debug '$host - $remote_addr [$time_local] '
'"$request" $status $body_bytes_sent ' '"$request" $status $body_bytes_sent '
'"Referer: $http_referer" ' '"Referer: $http_referer" '
@ -39,7 +34,7 @@ http
sendfile on; sendfile on;
keepalive_timeout 65; keepalive_timeout 65;
# gzip {# gzip #}
gzip on; gzip on;
gzip_proxied any; gzip_proxied any;
gzip_vary on; gzip_vary on;