Compare commits
46 Commits
8ad24c030b
...
aa952d1f1c
Author | SHA1 | Date | |
---|---|---|---|
aa952d1f1c | |||
fbb482fd4e | |||
dc413ca366 | |||
|
9af010657d | ||
|
6eaa8ac65a | ||
|
60bf8bef9c | ||
|
09ac6a0e8c | ||
|
94777d5f0e | ||
|
12be1033e5 | ||
|
967e5d6f37 | ||
|
7b8b595e81 | ||
|
dae117c91b | ||
|
9688d071a8 | ||
|
4586efebd7 | ||
|
ff3bd12015 | ||
|
0434e3bf8f | ||
|
dcda17595a | ||
|
add313c7be | ||
|
17fc055d53 | ||
|
8f70f0f877 | ||
|
c6c68e00a4 | ||
|
439c3fddc2 | ||
|
65182ea0f2 | ||
|
fc593bc8ab | ||
|
c8a8035de4 | ||
|
39fa852ed6 | ||
|
63f5a88fa0 | ||
|
76745342f4 | ||
|
124b9608fc | ||
|
e80cf7d92c | ||
|
32f15e9bf0 | ||
|
28fe9ffed4 | ||
|
0a10077c63 | ||
|
c81ac90a05 | ||
|
0231302db9 | ||
|
d09609b3bd | ||
|
feda83abf0 | ||
|
be17792466 | ||
|
d31cdb071a | ||
|
06bcdcf9d2 | ||
|
5f6bbafa17 | ||
|
7b33fc8e19 | ||
|
ce41674e61 | ||
|
dd4dc22619 | ||
|
4209c4208c | ||
|
d9fa2f7ed4 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,7 +1,3 @@
|
||||
/inventory/*
|
||||
!/inventory/.gitkeep
|
||||
!/inventory/host_vars/.gitkeep
|
||||
!/inventory/scripts
|
||||
/roles/*/files/scratchpad
|
||||
.DS_Store
|
||||
.python-version
|
||||
|
@ -1,6 +1,11 @@
|
||||
[defaults]
|
||||
|
||||
vault_password_file = gpg/open_vault.sh
|
||||
|
||||
retry_files_enabled = False
|
||||
stdout_callback = yaml
|
||||
|
||||
inventory = inventory/hosts
|
||||
|
||||
[connection]
|
||||
pipelining = True
|
||||
|
@ -21,6 +21,6 @@ matrix_architecture: "arm32"
|
||||
|
||||
## Implementation details
|
||||
|
||||
For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used everywhere, because all images are available for this architecture.
|
||||
For `amd64`, prebuilt container images (see the [container images we use](container-images.md)) are used for all components (except [Hydrogen](configuring-playbook-client-hydrogen.md), which goes through self-building).
|
||||
|
||||
For other architectures, components which have a prebuilt image make use of it. If the component is not available for the specific architecture, [self-building](self-building.md) will be used. Not all components support self-building though, so your mileage may vary.
|
||||
|
@ -51,7 +51,7 @@ docker run -it --rm \
|
||||
-v `pwd`:/work \
|
||||
-v $HOME/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
|
||||
--entrypoint=/bin/sh \
|
||||
docker.io/devture/ansible:2.9.14-r0
|
||||
docker.io/devture/ansible:2.10.7-r0
|
||||
```
|
||||
|
||||
The above command tries to mount an SSH key (`$HOME/.ssh/id_rsa`) into the container (at `/root/.ssh/id_rsa`).
|
||||
|
@ -55,9 +55,41 @@ Name | Description
|
||||
`matrix_synapse_metrics_enabled`|Set this to `true` to make Synapse expose metrics (locally, on the container network)
|
||||
`matrix_nginx_proxy_proxy_synapse_metrics`|Set this to `true` to make matrix-nginx-proxy expose the Synapse metrics at `https://matrix.DOMAIN/_synapse/metrics`
|
||||
`matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled`|Set this to `true` to password-protect (using HTTP Basic Auth) `https://matrix.DOMAIN/_synapse/metrics` (the username is always `prometheus`, the password is defined in `matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key`)
|
||||
`matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key`|Set this to a password to use for HTTP Basic Auth for protecting `https://matrix.DOMAIN/_synapse/metrics` (the username is always `prometheus` - it's not configurable)
|
||||
`matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_key`|Set this to a password to use for HTTP Basic Auth for protecting `https://matrix.DOMAIN/_synapse/metrics` (the username is always `prometheus` - it's not configurable). Do not write the password in plain text. See `man 1 htpasswd` or use `htpasswd -c mypass.htpasswd prometheus` to generate the expected hash for nginx.
|
||||
`matrix_server_fqn_grafana`|Use this variable to override the domain at which the Grafana web user-interface is at (defaults to `stats.DOMAIN`)
|
||||
|
||||
### Collecting worker metrics to an external Prometheus server
|
||||
|
||||
If you are using workers (`matrix_synapse_workers_enabled`) and have enabled `matrix_nginx_proxy_proxy_synapse_metrics` as described above, the playbook will also automatically proxy the all worker threads's metrics to `https://matrix.DOMAIN/_synapse-worker-TYPE-ID/metrics`, where `TYPE` corresponds to the type and `ID` to the instanceId of a worker as exemplified in `matrix_synapse_workers_enabled_list`.
|
||||
|
||||
The playbook also generates an exemplary prometheus.yml config file (`matrix_base_data_path/external_prometheus.yml.template`) with all the correct paths which you can copy to your Prometheus server and adapt to your needs, especially edit the specified `password_file` path and contents and path to your `synapse-v2.rules`.
|
||||
It will look a bit like this:
|
||||
```yaml
|
||||
scrape_configs:
|
||||
- job_name: 'synapse'
|
||||
metrics_path: /_synapse/metrics
|
||||
scheme: https
|
||||
basic_auth:
|
||||
username: prometheus
|
||||
password_file: /etc/prometheus/password.pwd
|
||||
static_configs:
|
||||
- targets: ['matrix.DOMAIN:443']
|
||||
labels:
|
||||
job: "master"
|
||||
index: 1
|
||||
- job_name: 'synapse-generic_worker-1'
|
||||
metrics_path: /_synapse-worker-generic_worker-18111/metrics
|
||||
scheme: https
|
||||
basic_auth:
|
||||
username: prometheus
|
||||
password_file: /etc/prometheus/password.pwd
|
||||
static_configs:
|
||||
- targets: ['matrix.DOMAIN:443']
|
||||
labels:
|
||||
job: "generic_worker"
|
||||
index: 18111
|
||||
```
|
||||
|
||||
### Collecting system and Postgres metrics to an external Prometheus server (advanced)
|
||||
|
||||
When you normally enable the Prometheus and Grafana via the playbook, it will also show general system (via node-exporter) and Postgres (via postgres-exporter) stats. If you are instead collecting your metrics to an external Prometheus server, you can follow this advanced configuration example to also export these stats.
|
||||
|
@ -5,7 +5,7 @@ https://matrix.DOMAIN {
|
||||
|
||||
root /matrix/static-files
|
||||
|
||||
header {
|
||||
header / {
|
||||
Access-Control-Allow-Origin *
|
||||
Strict-Transport-Security "mag=age=31536000;"
|
||||
X-Frame-Options "DENY"
|
||||
@ -13,10 +13,10 @@ https://matrix.DOMAIN {
|
||||
}
|
||||
|
||||
# Identity server traffic
|
||||
proxy /_matrix/identity matrix-msisd:8090 {
|
||||
proxy /_matrix/identity matrix-ma1sd:8090 {
|
||||
transparent
|
||||
}
|
||||
proxy /_matrix/client/r0/user_directory/search matrix-msisd:8090 {
|
||||
proxy /_matrix/client/r0/user_directory/search matrix-ma1sd:8090 {
|
||||
transparent
|
||||
}
|
||||
|
||||
|
5
gpg/open_vault.sh
Executable file
5
gpg/open_vault.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e -u
|
||||
|
||||
gpg2 --batch --use-agent --decrypt $(dirname $0)/vault_passphrase.gpg 2>/dev/null
|
18
gpg/vault_passphrase.gpg
Normal file
18
gpg/vault_passphrase.gpg
Normal file
@ -0,0 +1,18 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMAxEs7W/4x4lxARAAssinIzR2rGs+Qkm0Q2tRdSXSXRx3OhH+2T5p0Rz3YkqU
|
||||
iyiUtyT/Ll7RMUAlAEDZITvirXe4ZZImDcxQegEzFgO7BowQYJDRdhaRmLKZpiuQ
|
||||
foRnJAAR12sf49arjJjaBQb91ViOp5MkxAtXiiqWyXwSSII+cV88flMq143cFmfC
|
||||
C5OdIQd3SqrbFhGRTjUzoIMqnJH8xksjwph9GS811dY14rQv5X1Ybt5zehMJ7/m/
|
||||
luLNg2zgQgYOUxcovddCVMI54ThXyDubDox/5xLvVjyVOFHgwC/VLn+QXHuPY/r5
|
||||
+rVzz/30eq0uOLKD3LnDBQskCWRVWGC2ulKaZtlylBq6KRzIM6c6+VPSHCjoFyES
|
||||
RRpRHeIXGLs31eLkr8dc+VNbPKpMsjm/E/4ZVE2JBpy7S/kh1XYVQxT6ahDKT1tD
|
||||
4YN9O0JyNXzjiyNaTTLwNGh5+ICEd3ZCfa4O/og2LySGPOw6mX8ukgP029LHVp6+
|
||||
0tRwSWiIM3US/NIVGA+o9e9I/I5Bp/cnzJgd7faUIlzcVPP+euCbo4GsYWpX3Nca
|
||||
eRcr7AVY3wwuZtl7/s8KbQKk0ulLxS4Lo2XmdpQl8CPGwASdbMf/H8B256+xiUQ3
|
||||
ml400ZaCC7Loeduwl1ez1H/dFFzmpUziaxxtWW4aFtOUYhGeSCTu6ZIgxVq3eBnS
|
||||
jAGv8bt+0Xnrpih3mZWM92cw2VKfzYD9WG+dCB4DtZMKhl1ub2bkeTC/B9F+QuP6
|
||||
anlonYHs2wmPXzjcx8ajonbYrYXanoNRHDId6OqVAbjYqbua6TG6H9LUFweIj1RV
|
||||
yhUPejzhA8xEB0nUcKJZKLvuqvwPbr06GODnAKY5TQ4yILMAnBx0pNzfQNzo
|
||||
=Cecg
|
||||
-----END PGP MESSAGE-----
|
@ -1212,7 +1212,7 @@ matrix_ma1sd_container_image_self_build: "{{ matrix_architecture != 'amd64' }}"
|
||||
# Normally, matrix-nginx-proxy is enabled and nginx can reach ma1sd over the container network.
|
||||
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it, you can expose
|
||||
# ma1sd's web-server port.
|
||||
matrix_ma1sd_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:8090' }}"
|
||||
matrix_ma1sd_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:' + matrix_ma1sd_default_port|string }}"
|
||||
|
||||
# We enable Synapse integration via its Postgres database by default.
|
||||
# When using another Identity store, you might wish to disable this and define
|
||||
@ -1294,8 +1294,8 @@ matrix_nginx_proxy_proxy_matrix_corporal_api_addr_with_container: "matrix-corpor
|
||||
matrix_nginx_proxy_proxy_matrix_corporal_api_addr_sans_container: "127.0.0.1:41081"
|
||||
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_enabled: "{{ matrix_ma1sd_enabled }}"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_default_port }}"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_default_port }}"
|
||||
|
||||
# By default, we do TLS termination for the Matrix Federation API (port 8448) at matrix-nginx-proxy.
|
||||
# Unless this is handled there OR Synapse's federation listener port is disabled, we'll reverse-proxy.
|
||||
@ -1339,6 +1339,8 @@ matrix_nginx_proxy_synapse_media_repository_locations: "{{matrix_synapse_workers
|
||||
matrix_nginx_proxy_synapse_user_dir_locations: "{{ matrix_synapse_workers_user_dir_endpoints|default([]) }}"
|
||||
matrix_nginx_proxy_synapse_frontend_proxy_locations: "{{ matrix_synapse_workers_frontend_proxy_endpoints|default([]) }}"
|
||||
|
||||
matrix_nginx_proxy_proxy_synapse_workers_enabled_list: "{{ matrix_synapse_workers_enabled_list }}"
|
||||
|
||||
matrix_nginx_proxy_systemd_wanted_services_list: |
|
||||
{{
|
||||
(['matrix-synapse.service'] if matrix_synapse_enabled else [])
|
||||
@ -1707,8 +1709,8 @@ matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm6
|
||||
|
||||
# When ma1sd is enabled, we can use it to validate email addresses and phone numbers.
|
||||
# Synapse can validate email addresses by itself as well, but it's probably not what we want by default when we have an identity server.
|
||||
matrix_synapse_account_threepid_delegates_email: "{{ 'http://matrix-ma1sd:8090' if matrix_ma1sd_enabled else '' }}"
|
||||
matrix_synapse_account_threepid_delegates_msisdn: "{{ 'http://matrix-ma1sd:8090' if matrix_ma1sd_enabled else '' }}"
|
||||
matrix_synapse_account_threepid_delegates_email: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_default_port|string if matrix_ma1sd_enabled else '' }}"
|
||||
matrix_synapse_account_threepid_delegates_msisdn: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_default_port|string if matrix_ma1sd_enabled else '' }}"
|
||||
|
||||
# Normally, matrix-nginx-proxy is enabled and nginx can reach Synapse over the container network.
|
||||
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it,
|
||||
|
339
inventory/host_vars/matrix.finallycoffee.eu/vars.yml
Normal file
339
inventory/host_vars/matrix.finallycoffee.eu/vars.yml
Normal file
@ -0,0 +1,339 @@
|
||||
#
|
||||
# General config
|
||||
# Domain of the matrix server and SSL config
|
||||
#
|
||||
matrix_domain: finallycoffee.eu
|
||||
matrix_ssl_retrieval_method: none
|
||||
matrix_nginx_proxy_enabled: false
|
||||
matrix_base_data_path: "{{ vault_matrix_base_data_path }}"
|
||||
matrix_server_fqn_element: "chat.{{ matrix_domain }}"
|
||||
|
||||
web_user: "web"
|
||||
revproxy_autoload_dir: "/vault/services/web/sites.d"
|
||||
|
||||
#matrix_client_element_version: v1.8.4
|
||||
#matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}matrixdotorg/synapse:v1.37.1"
|
||||
#matrix_mautrix_telegram_version: v0.10.0
|
||||
|
||||
#
|
||||
# General Synapse config
|
||||
#
|
||||
matrix_postgres_connection_password: "{{ vault_matrix_postgres_connection_password }}"
|
||||
# A secret used to protect access keys issued by the server.
|
||||
matrix_synapse_macaroon_secret_key: "{{ vault_matrix_synapse_macaroon_secret_key }}"
|
||||
# Make synapse accept larger media aswell
|
||||
matrix_synapse_max_upload_size_mb: 100
|
||||
# Enable metrics at (default) :9100/_synapse/metrics
|
||||
matrix_synapse_metrics_enabled: true
|
||||
matrix_synapse_enable_group_creation: true
|
||||
matrix_synapse_turn_shared_secret: "{{ vault_matrix_coturn_turn_static_auth_secret }}"
|
||||
matrix_synapse_turn_uris:
|
||||
- "turns:voip.matrix.finallycoffee.eu?transport=udp"
|
||||
- "turns:voip.matrix.finallycoffee.eu?transport=tcp"
|
||||
# Auto-join all users into those rooms
|
||||
matrix_synapse_auto_join_rooms:
|
||||
- "#welcome:finallycoffee.eu"
|
||||
- "#announcements:finallycoffee.eu"
|
||||
|
||||
## Synapse rate limits
|
||||
matrix_synapse_rc_federation:
|
||||
window_size: 1000
|
||||
sleep_limit: 25
|
||||
sleep_delay: 500
|
||||
reject_limit: 50
|
||||
concurrent: 5
|
||||
matrix_synapse_rc_message:
|
||||
per_second: 0.5
|
||||
burst_count: 25
|
||||
|
||||
## Synapse cache tuning
|
||||
matrix_synapse_caches_global_factor: 0.7
|
||||
matrix_synapse_event_cache_size: "200K"
|
||||
|
||||
## Synapse workers
|
||||
matrix_synapse_workers_enabled: true
|
||||
matrix_synapse_workers_preset: "little-federation-helper"
|
||||
matrix_synapse_workers_generic_worker_client_server_count: 0
|
||||
matrix_synapse_workers_media_repository_workers_count: 0
|
||||
matrix_synapse_workers_federation_sender_workers_count: 1
|
||||
matrix_synapse_workers_pusher_workers_count: 0
|
||||
matrix_synapse_workers_appservice_workers_count: 1
|
||||
|
||||
# Static secret auth for matrix-synapse-shared-secret-auth
|
||||
matrix_synapse_ext_password_provider_shared_secret_auth_enabled: true
|
||||
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: "{{ vault_matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||
matrix_synapse_ext_password_provider_rest_auth_enabled: true
|
||||
matrix_synapse_ext_password_provider_rest_auth_endpoint: "http://matrix-ma1sd:8090"
|
||||
matrix_synapse_ext_password_provider_rest_auth_registration_enforce_lowercase: false
|
||||
matrix_synapse_ext_password_provider_rest_auth_registration_profile_name_autofill: true
|
||||
matrix_synapse_ext_password_provider_rest_auth_login_profile_name_autofill: false
|
||||
|
||||
# Enable experimental spaces support
|
||||
matrix_synapse_configuration_extension_yaml: |
|
||||
experimental_features:
|
||||
spaces_enabled: true
|
||||
|
||||
#
|
||||
# synapse-admin tool
|
||||
#
|
||||
matrix_synapse_admin_enabled: true
|
||||
matrix_synapse_admin_container_http_host_bind_port: 8985
|
||||
|
||||
|
||||
#
|
||||
# VoIP / CoTURN config
|
||||
#
|
||||
# A shared secret (between Synapse and Coturn) used for authentication.
|
||||
matrix_coturn_turn_static_auth_secret: "{{ vault_matrix_coturn_turn_static_auth_secret }}"
|
||||
# Disable coturn, as we use own instance
|
||||
matrix_coturn_enabled: false
|
||||
|
||||
|
||||
#
|
||||
# dimension (integration manager) config
|
||||
#
|
||||
matrix_dimension_enabled: true
|
||||
matrix_dimension_admins: "{{ vault_matrix_dimension_admins }}"
|
||||
matrix_server_fqn_dimension: "dimension.matrix.{{ matrix_domain }}"
|
||||
matrix_dimension_access_token: "{{ vault_matrix_dimension_access_token }}"
|
||||
matrix_dimension_configuration_extension_yaml: |
|
||||
telegram:
|
||||
botToken: "{{ vault_matrix_dimension_configuration_telegram_bot_token }}"
|
||||
|
||||
|
||||
#
|
||||
# mautrix-whatsapp config
|
||||
#
|
||||
matrix_mautrix_whatsapp_enabled: true
|
||||
matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port: 9402
|
||||
matrix_mautrix_whatsapp_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}"
|
||||
matrix_mautrix_whatsapp_configuration_extension_yaml: |
|
||||
bridge:
|
||||
displayname_template: "{% raw %}{{.Name}} ({{if .Notify}}{{.Notify}}{{else}}{{.Jid}}{{end}}) (via WhatsApp){% endraw %}"
|
||||
max_connection_attempts: 5
|
||||
connection_timeout: 30
|
||||
contact_wait_delay: 5
|
||||
private_chat_portal_meta: true
|
||||
login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||
logging:
|
||||
print_level: info
|
||||
metrics:
|
||||
enabled: true
|
||||
listen: 0.0.0.0:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}
|
||||
whatsapp:
|
||||
os_name: Linux mautrix-whatsapp
|
||||
browser_name: Chrome
|
||||
|
||||
|
||||
#
|
||||
# mautrix-telegram config
|
||||
#
|
||||
matrix_mautrix_telegram_enabled: true
|
||||
matrix_mautrix_telegram_api_id: "{{ vault_matrix_mautrix_telegram_api_id }}"
|
||||
matrix_mautrix_telegram_api_hash: "{{ vault_matrix_mautrix_telegram_api_hash }}"
|
||||
matrix_mautrix_telegram_public_endpoint: '/bridge/telegram'
|
||||
matrix_mautrix_telegram_container_http_monitoring_host_bind_port: 9401
|
||||
matrix_mautrix_telegram_container_http_host_bind_port_public: 8980
|
||||
matrix_mautrix_telegram_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}"
|
||||
- "-p 127.0.0.1:{{ matrix_mautrix_telegram_container_http_host_bind_port_public }}:80"
|
||||
matrix_mautrix_telegram_configuration_extension_yaml: |
|
||||
bridge:
|
||||
displayname_template: "{displayname} (via Telegram)"
|
||||
parallel_file_transfer: false
|
||||
inline_images: false
|
||||
image_as_file_size: 20
|
||||
delivery_receipts: true
|
||||
login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||
animated_sticker:
|
||||
target: webm
|
||||
encryption:
|
||||
allow: true
|
||||
default: true
|
||||
permissions:
|
||||
"@transcaffeine:finallycoffee.eu": "admin"
|
||||
"gruenhage.xyz": "full"
|
||||
logging:
|
||||
root:
|
||||
level: INFO
|
||||
metrics:
|
||||
enabled: true
|
||||
listen_port: {{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}
|
||||
# permissions: "{{ vault_matrix_mautrix_telegram_permission_map | from_yaml }}"
|
||||
|
||||
|
||||
#
|
||||
# mautrix-signal config
|
||||
#
|
||||
matrix_mautrix_signal_enabled: true
|
||||
matrix_mautrix_signal_container_http_monitoring_host_bind_port: 9408
|
||||
matrix_mautrix_signal_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}"
|
||||
matrix_mautrix_signal_configuration_extension_yaml: |
|
||||
bridge:
|
||||
displayname_template: "{displayname} (via Signal)"
|
||||
community_id: "+signal:finallycoffee.eu"
|
||||
encryption:
|
||||
allow: true
|
||||
default: true
|
||||
key_sharing:
|
||||
allow: true
|
||||
require_verification: false
|
||||
delivery_receipts: true
|
||||
logging:
|
||||
root:
|
||||
level: INFO
|
||||
metrics:
|
||||
enabled: true
|
||||
listen_port: {{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
|
||||
|
||||
|
||||
#
|
||||
# mx-puppet-instagram configuration
|
||||
#
|
||||
matrix_mx_puppet_instagram_enabled: true
|
||||
matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port: 9403
|
||||
matrix_mx_puppet_instagram_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}"
|
||||
matrix_mx_puppet_instagram_configuration_extension_yaml: |
|
||||
bridge:
|
||||
enableGroupSync: true
|
||||
avatarUrl: mxc://finallycoffee.eu/acmiSAinuHDOULofFFeolTvr
|
||||
metrics:
|
||||
enabled: true
|
||||
port: {{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}
|
||||
path: /metrics
|
||||
presence:
|
||||
enabled: true
|
||||
interval: 3000
|
||||
|
||||
|
||||
#
|
||||
# mx-puppet-skype configuration
|
||||
#
|
||||
matrix_mx_puppet_skype_enabled: true
|
||||
matrix_mx_puppet_skype_container_http_monitoring_host_bind_port: 9405
|
||||
matrix_mx_puppet_skype_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}"
|
||||
matrix_mx_puppet_skype_configuration_extension_yaml: |
|
||||
bridge:
|
||||
enableGroupSync: true
|
||||
avatarUrl: mxc://finallycoffee.eu/jjXDuFqtpFOBOnywoHgzTuYt
|
||||
metrics:
|
||||
enabled: true
|
||||
port: {{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}
|
||||
path: /metrics
|
||||
|
||||
|
||||
#
|
||||
# mx-puppet-discord configuration
|
||||
#
|
||||
matrix_mx_puppet_discord_enabled: true
|
||||
matrix_mx_puppet_discord_client_id: "{{ vault_matrix_mx_puppet_discord_client_id }}"
|
||||
matrix_mx_puppet_discord_client_secret: "{{ vault_matrix_mx_puppet_discord_client_secret }}"
|
||||
matrix_mx_puppet_discord_container_http_monitoring_host_bind_port: 9404
|
||||
matrix_mx_puppet_discord_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}"
|
||||
matrix_mx_puppet_discord_configuration_extension_yaml: |
|
||||
bridge:
|
||||
enableGroupSync: true
|
||||
avatarUrl: mxc://finallycoffee.eu/BxcAAhjXmglMbtthStEHtCzd
|
||||
metrics:
|
||||
enabled: true
|
||||
port: {{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}
|
||||
path: /metrics
|
||||
limits:
|
||||
maxAutojoinUsers: 500
|
||||
roomUserAutojoinDelay: 50
|
||||
presence:
|
||||
enabled: true
|
||||
interval: 3000
|
||||
|
||||
|
||||
#
|
||||
# mx-puppet-slack configuration
|
||||
#
|
||||
matrix_mx_puppet_slack_enabled: true
|
||||
matrix_mx_puppet_slack_client_id: "{{ vault_matrix_mx_puppet_slack_client_id }}"
|
||||
matrix_mx_puppet_slack_client_secret: "{{ vault_matrix_mx_puppet_slack_client_secret }}"
|
||||
matrix_mx_puppet_slack_redirect_path: '/bridge/slack/oauth'
|
||||
matrix_mx_puppet_slack_container_http_auth_host_bind_port: 8981
|
||||
matrix_mx_puppet_slack_container_http_monitoring_host_bind_port: 9406
|
||||
matrix_mx_puppet_slack_container_extra_arguments:
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}"
|
||||
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_auth_host_bind_port }}:8008"
|
||||
matrix_mx_puppet_slack_configuration_extension_yaml: |
|
||||
bridge:
|
||||
enableGroupSync: true
|
||||
metrics:
|
||||
enabled: true
|
||||
port: {{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
|
||||
path: /metrics
|
||||
limits:
|
||||
maxAutojoinUsers: 500
|
||||
roomUserAutojoinDelay: 50
|
||||
presence:
|
||||
enabled: true
|
||||
interval: 3000
|
||||
|
||||
|
||||
#
|
||||
# Element web configuration
|
||||
#
|
||||
# Branding config
|
||||
matrix_client_element_brand: "Chat"
|
||||
matrix_client_element_default_theme: "dark"
|
||||
matrix_client_element_themes_enabled: true
|
||||
matrix_client_element_welcome_headline: "Welcome to chat.finallycoffee.eu"
|
||||
matrix_client_element_welcome_text: |
|
||||
Decentralised, encrypted chat & collaboration,<br />
|
||||
hosted on finallycoffee.eu, powered by element.io &
|
||||
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">
|
||||
<img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg" />
|
||||
</a>
|
||||
matrix_client_element_welcome_logo: "welcome/images/logo.png"
|
||||
matrix_client_element_welcome_logo_link: "https://{{ matrix_domain }}"
|
||||
matrix_client_element_branding_authHeaderLogoUrl: "welcome/images/logo.png"
|
||||
matrix_client_element_branding_welcomeBackgroundUrl: "welcome/images/background.jpg"
|
||||
matrix_client_element_container_extra_arguments:
|
||||
- "-v {{ matrix_client_element_data_path }}/background.jpg:/app/{{ matrix_client_element_branding_welcomeBackgroundUrl }}:ro"
|
||||
- "-v {{ matrix_client_element_data_path }}/logo.png:/app/{{ matrix_client_element_branding_authHeaderLogoUrl }}:ro"
|
||||
# Integration and capabilites config
|
||||
matrix_client_element_integrations_ui_url: "https://{{ matrix_server_fqn_dimension }}/element"
|
||||
matrix_client_element_integrations_rest_url: "https://{{ matrix_server_fqn_dimension }}/api/v1/scalar"
|
||||
matrix_client_element_integrations_widgets_urls:
|
||||
- "https://{{ matrix_server_fqn_dimension }}/widgets"
|
||||
- "https://scalar.vector.im/api"
|
||||
matrix_client_element_integrations_jitsi_widget_url: "https://{{ matrix_server_fqn_dimension }}/widgets/jitsi"
|
||||
matrix_client_element_disable_custom_urls: false
|
||||
matrix_client_element_roomdir_servers:
|
||||
- "matrix.org"
|
||||
- "finallycoffee.eu"
|
||||
- "entropia.de"
|
||||
matrix_client_element_enable_presence_by_hs_url:
|
||||
https://matrix.org: false
|
||||
|
||||
|
||||
# Matrix ma1sd extended configuration
|
||||
matrix_ma1sd_configuration_extension_yaml: |
|
||||
hashing:
|
||||
enabled: true
|
||||
pepperLength: 20
|
||||
rotationPolicy: per_requests
|
||||
requests: 10
|
||||
hashStorageType: sql
|
||||
algorithms:
|
||||
- none
|
||||
- sha256
|
||||
|
||||
|
||||
# Matrix mail notification relay setup
|
||||
matrix_mailer_enabled: true
|
||||
matrix_mailer_sender_address: "Matrix on finallycoffee.eu <system-matrix@{{ matrix_domain }}>"
|
||||
matrix_mailer_relay_use: true
|
||||
matrix_mailer_relay_host_name: "{{ vault_matrix_mailer_relay_host_name }}"
|
||||
matrix_mailer_relay_host_port: 587
|
||||
matrix_mailer_relay_auth: true
|
||||
matrix_mailer_relay_auth_username: "{{ vault_matrix_mailer_relay_auth_username }}"
|
||||
matrix_mailer_relay_auth_password: "{{ vault_matrix_mailer_relay_auth_password }}"
|
100
inventory/host_vars/matrix.finallycoffee.eu/vault.yml
Normal file
100
inventory/host_vars/matrix.finallycoffee.eu/vault.yml
Normal file
@ -0,0 +1,100 @@
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
64343261653838626666353837393238353033353632393763363634303466613033376235386235
|
||||
6333386536323034643139656232636133386463393264300a663333333237656337343562366336
|
||||
66663064393930656566396636333430373233373362346339383866623066316133323366663961
|
||||
3732666162363238300a636230346163656334393063343030333064393962663431326461653239
|
||||
36653030393234623335313335383832646463663835653035303765633064666435373464653336
|
||||
31323433373734633531353562333065623039623633633163376235353737343935623133326663
|
||||
65333761383130336165356439623066363964313033666433316231663533393532333738333430
|
||||
36633463343335366364343565353862363531376539626237613263303331323631333366363830
|
||||
33613937346531323139343166613839366233383663363732353561643238383362353964373135
|
||||
61633430353037316266343962376238383238366562323764373135646365383030626130383433
|
||||
32313263663165656366313633653431663332636532656465623465353062643934343738633434
|
||||
63346333326331633830363663666631326466353138646233383235313532383864633233613134
|
||||
39363734353165653065343938643861646630376334303832613163663265373839323765396234
|
||||
38633336393739666565346565343865346233373639363530383533386533616337373033613865
|
||||
66353434653262663263326237626265636430646630313866383532376264383933343933326264
|
||||
65316337323863343935306138343462336666313332396439656234613831356262663630663038
|
||||
31376539653638333263333933633134303734656662343039396563343636366433396130653830
|
||||
33326539636432646438613236356430343435623539333062666630373265306635343233646333
|
||||
39653934323738303239643834663463396165656235393437396635623131316532333465316231
|
||||
65373130393463383932383837383830656637653963666638653665356437303239376262613062
|
||||
34613830613164323365636461303035616136636330323531383164376334363862383762366665
|
||||
62643839333662373461363038326436616639326264633735316139346536373839666236653634
|
||||
30376536386137636336363562376339393261373739333162373461656364353139626339346637
|
||||
30366431336534663037653438376330346238636562383932653561306134626566333861333630
|
||||
39633536653233393161333136316564623631313839633461333438633166363064303238663464
|
||||
65353338353464313635333934623833303965393462373530303666643537336662376266613434
|
||||
37356664616539323631373535316434383361323935376638666437646538316537613030653231
|
||||
62636263663935646466383663306535626465633239366562373038356366366331333537333663
|
||||
64363130386535306362646533393161643737366662313631623132356465636565313530353363
|
||||
35366165383837326564623363636632616331393834313130303937303664353436363266323033
|
||||
61373532383962393937666261626263666631346235646237656337363831633734623733633835
|
||||
39613736373031633263396530626566303665343039663866333632636565633034376366356635
|
||||
35383633336465636331306232353434653739653339396437363163313630393035366665383263
|
||||
34353238656563306366336466376363316430636666353965356535653334343630633532313034
|
||||
64626436643030656335616337653564653331326463383461643739333163613361333133633639
|
||||
66656137313937356134646362623536363065633564633166343766356436313130373663663334
|
||||
63626138356562303761323336646332383761646663383032386261623936633661653735343637
|
||||
35326137343532333635353436376665326633633135656537623631326336353138346136636239
|
||||
37396135326362613039663136333964626237353562343966383764613231363061333534316233
|
||||
38636130313261643061613138656235396530656366313132346362383430333734663866383666
|
||||
61633631353830643565313437306664636262666135353133656531623563616335643737373438
|
||||
63633235363566616466663262333466383939373336383139643362376365623763386137666332
|
||||
39353363636437393236303764343337633233386236303563636634353836363537383632306434
|
||||
33653632373064646361616364323133343138363437373436636232373261663639616330666465
|
||||
37333130393435613134366437396361363830656137663963643132303334633331633661363061
|
||||
38356439666161643431356532353334383539353566386333666461663562613231383331623063
|
||||
33336435636239343663663937353864306363363264663033303539616434333436353134383034
|
||||
64663533366134306462366565333236383235373233656132396538663437616333343534333166
|
||||
66646566623734636532666230326530633538656639353262343665316235386534376534386634
|
||||
65663032303930353661363162373533363762353237393030346238306532326264303636383264
|
||||
63363063326265396166313533663362346539333532386665316466386131623161313738623239
|
||||
66386236656561396539356634636234393436323239396330366237333539343761393431336138
|
||||
66396230656435356365356530343132373861376336346532653063666331343366393761373131
|
||||
66313864373362326139316461666232386132306535616561663566623963353034313961666266
|
||||
34373534363834626334386139653532656564333863323363343165643538336430386434613235
|
||||
64386564643564636530313565326433623365303738386433323463396437653066636134313564
|
||||
33383035393436393163373864353331376163653137316136376564643066636335313735396664
|
||||
33623735353438643237333734353766363863313763653737633135353332363066336232363131
|
||||
33333532653737633033666336326331376561636330643935323636626562303439346338633135
|
||||
33663035366461336339666665663835373235633338613664636439393837303932643363643830
|
||||
63333862643430383235663836653161376637373265646463313538386531666362376532663738
|
||||
62333536383537613562336235666431393164616263303863323834343735326133646131303063
|
||||
62623836313730363832313764363562306666383337396561633865336561396632303539333166
|
||||
35623063336534653531303134653630666264333133393864626665623564313466363731316339
|
||||
36646666653062326665346332373963376439396538396663656130616333316533623331346461
|
||||
39643862356663316338333662646464353233356635303931626366323831303136366462366133
|
||||
34303234343064393265303866636137646461336530653733623264383261653864633332346435
|
||||
62383065353662303564633239326664356364366365626466666266326466333834316437383134
|
||||
35383261373437643261623533623533326335393932356632653634326432376235393038333464
|
||||
33626361366565316533663537343237316563343730363632663639623930313963316665663965
|
||||
33386435663462626435383733383336343064333935356364623436626632356535333430343262
|
||||
62363136353562633631613965353062363231343037626166363035376530646537646136363730
|
||||
35303530343361616230383662333139333533333138613834323437636238656538656436623433
|
||||
38353363336665346637643631663934633061626532376330633731316565336166313936393533
|
||||
35323535376539633937376532333536323234376632306362633438626565376234353235353836
|
||||
37663735366165393963313536356437653361306232313736356164656635616333306332356637
|
||||
39353465633536313539366264646364343231653466346165313863623365333465623336376635
|
||||
37396663333638356565306439636365653438623935363361356464316663613465303933346537
|
||||
61303863323631343264613665323866363935383265323562326364346364343133393965333135
|
||||
33306434646533333662613930666337646330303439333938326433376161613836663237303534
|
||||
63636139636338656664333034356635653330666362633563366663616661303266326135643036
|
||||
34383939613035323331366261356531343961303239626365383332313633393561623963643134
|
||||
30353239356234336635616663313830396133643035663838653837613262616364623637616237
|
||||
37363662663466396330323830343963366262643339316162643164353430663763613634346233
|
||||
62303539336433313066346339363163336236373334613938613061613038613466636632336335
|
||||
35326133373061323164623436623338316466396261393630623466313164393736353566356237
|
||||
34396530383361613464643461313336663331643438313136353039386263633134616534666464
|
||||
33373536326637316635326461656130383333613832386662643431666435663565343565616266
|
||||
35303738656362663266653735373833613765356366626436336437326665396635636335616566
|
||||
32663733396432656430356335383262613133623066636238623166613839393833616436653936
|
||||
34306536343664643732356262663435623834313732373564613337373765373130653734386632
|
||||
35623038623639346564393466393463613238363231663965633037353337353332663464336539
|
||||
33616131353734663463336436303866306334336339316364313962346430383338306161636462
|
||||
64303064313135346236346434316333346434303764356237636530663239633631383561393537
|
||||
66383836326634666362613661353533363432303437663235393336396331356465633031326430
|
||||
35333263633731626564326430613937343136633562386432396537363663653438333333366135
|
||||
33333339376165303736643661343535356561353938346131653662363966643839653262363537
|
||||
38373331353539313463363236383633326138366534313064303739626337343962653830653663
|
||||
626263633730663932376165333438323835
|
22
inventory/hosts
Normal file
22
inventory/hosts
Normal file
@ -0,0 +1,22 @@
|
||||
$ANSIBLE_VAULT;1.1;AES256
|
||||
31336566376336626265653165306635633033376662656164383037383834653239656136333734
|
||||
3833666339393037323035343565343235396163636166370a643933333933386133366564396465
|
||||
30393637613164356564393337633361653432333232383664303739363736633435363764343530
|
||||
3532313739363963660a343434356534316230623133636366386334323465376139363162616238
|
||||
39396638366262313531653635326361616537396338363533303961623165343931373939306239
|
||||
31336632643166633662653765333231393461643933306464303165633037343061323636313034
|
||||
34376631656563646665373566633431366638383863666130323264316337663237343135306236
|
||||
66323536346164663239343139623430303230333466633437643337343930363530653964626163
|
||||
38336363633730393136333637383631636266396636646533356262376630646139303636666538
|
||||
32366437353163663865623234643061313639646162643965393535353938313133326237313265
|
||||
66646163333535396539646461356334633532313530653834623263386265383765356130333466
|
||||
30373531306137393935363030313739666536363138363962646565306439393239303030643162
|
||||
33333166663430393866666439653532623034396130313066383035396535646633366237303264
|
||||
36356665366461323664373038366364623937386233313039323837666333653764616462333365
|
||||
31326264633236373937313537633961633164323138356135633765663639323537656263633766
|
||||
38653836323263386333376131333330326237393666363064326463663961633839393039323835
|
||||
61306265333232623037356465393133323733363634646364336261326333366239346565366338
|
||||
61646132333033373866623739343830336164316461646366666237313565626639323537623732
|
||||
38323830656136323137323530343764666433633432366136643538323832653130376363653135
|
||||
64376261386635636533353961613335663962306337353866616464613636303735336230623962
|
||||
3336
|
@ -15,7 +15,7 @@
|
||||
"type": "multiplechoice"
|
||||
},
|
||||
{
|
||||
"question_name": "Discord Client ID",
|
||||
"question_name": "Discord OAuth2 Client ID",
|
||||
"question_description": "The OAuth2 'CLIENT ID' which can be found in the 'OAuth2' tab of your new discord application: https://discord.com/developers/applications",
|
||||
"required": true,
|
||||
"min": 0,
|
||||
|
@ -30,7 +30,7 @@
|
||||
insertafter: '# Synapse Extension Start'
|
||||
with_dict:
|
||||
'matrix_synapse_awx_password_provider_rest_auth_enabled': 'true'
|
||||
'matrix_synapse_awx_password_provider_rest_auth_endpoint': '"http://matrix-ma1sd:8090"'
|
||||
'matrix_synapse_awx_password_provider_rest_auth_endpoint': '"http://matrix-ma1sd:{{ matrix_ma1sd_default_port }}"'
|
||||
when: awx_matrix_ma1sd_auth_store == 'LDAP/AD'
|
||||
|
||||
- name: Remove entire ma1sd configuration extension
|
||||
|
@ -7,7 +7,7 @@ matrix_appservice_irc_container_self_build: false
|
||||
matrix_appservice_irc_docker_repo: "https://github.com/matrix-org/matrix-appservice-irc.git"
|
||||
matrix_appservice_irc_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-irc/docker-src"
|
||||
|
||||
matrix_appservice_irc_version: release-0.31.0
|
||||
matrix_appservice_irc_version: release-0.32.1
|
||||
matrix_appservice_irc_docker_image: "{{ matrix_container_global_registry_prefix }}matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_version }}"
|
||||
matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}"
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
matrix_heisenbridge_enabled: true
|
||||
|
||||
matrix_heisenbridge_version: 1.3.0
|
||||
matrix_heisenbridge_version: 1.5.0
|
||||
matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}"
|
||||
matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}"
|
||||
|
||||
|
@ -110,6 +110,8 @@ matrix_mautrix_telegram_configuration_extension: "{{ matrix_mautrix_telegram_con
|
||||
# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_telegram_configuration_yaml`.
|
||||
matrix_mautrix_telegram_configuration: "{{ matrix_mautrix_telegram_configuration_yaml|from_yaml|combine(matrix_mautrix_telegram_configuration_extension, recursive=True) }}"
|
||||
|
||||
matrix_mautrix_telegram_sender_localpart: "telegrambot"
|
||||
|
||||
matrix_mautrix_telegram_registration_yaml: |
|
||||
id: telegram
|
||||
as_token: "{{ matrix_mautrix_telegram_appservice_token }}"
|
||||
@ -123,10 +125,10 @@ matrix_mautrix_telegram_registration_yaml: |
|
||||
aliases:
|
||||
- exclusive: true
|
||||
regex: '^#telegram_.+:{{ matrix_mautrix_telegram_homeserver_domain|regex_escape }}$'
|
||||
# See https://github.com/mautrix/signal/issues/43
|
||||
sender_localpart: _bot_{{ matrix_mautrix_telegram_appservice_bot_username }}
|
||||
url: {{ matrix_mautrix_telegram_appservice_address }}
|
||||
rate_limited: false
|
||||
de.sorunome.msc2409.push_ephemeral: true
|
||||
# sender_localpart: "bridges_{{ matrix_mautrix_telegram_sender_localpart }}"
|
||||
|
||||
matrix_mautrix_telegram_registration: "{{ matrix_mautrix_telegram_registration_yaml|from_yaml }}"
|
||||
|
@ -25,7 +25,7 @@ presence:
|
||||
# Bridge Discord online/offline status
|
||||
enabled: true
|
||||
# How often to send status to the homeserver in milliseconds
|
||||
interval: 500
|
||||
interval: 10000
|
||||
|
||||
provisioning:
|
||||
# Regex of Matrix IDs allowed to use the puppet bridge
|
||||
@ -70,7 +70,7 @@ namePatterns:
|
||||
#
|
||||
# name: username of the user
|
||||
# discriminator: hashtag of the user (ex. #1234)
|
||||
user: :name
|
||||
user: ":name (#:discriminator) (via Discord)"
|
||||
|
||||
# A user's guild-specific displayname - if they've set a custom nick in
|
||||
# a guild
|
||||
@ -82,7 +82,7 @@ namePatterns:
|
||||
# displayname: the user's custom group-specific nick
|
||||
# channel: the name of the channel
|
||||
# guild: the name of the guild
|
||||
userOverride: :name
|
||||
userOverride: ":displayname (:name#:discriminator) (via Discord)"
|
||||
|
||||
# Room names for bridged Discord channels
|
||||
#
|
||||
@ -90,7 +90,7 @@ namePatterns:
|
||||
#
|
||||
# name: name of the channel
|
||||
# guild: name of the guild
|
||||
room: :name
|
||||
room: "#:name (:guild on Discord)"
|
||||
|
||||
# Group names for bridged Discord servers
|
||||
#
|
||||
|
@ -2,8 +2,12 @@ matrix_client_element_enabled: true
|
||||
|
||||
matrix_client_element_container_image_self_build: false
|
||||
matrix_client_element_container_image_self_build_repo: "https://github.com/vector-im/riot-web.git"
|
||||
# Controls whether to patch webpack.config.js when self-building, so that building can pass on low-memory systems (< 4 GB RAM):
|
||||
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357
|
||||
# - https://github.com/vector-im/element-web/issues/19544
|
||||
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}"
|
||||
|
||||
matrix_client_element_version: v1.9.2
|
||||
matrix_client_element_version: v1.9.3
|
||||
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}"
|
||||
matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||
matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}"
|
||||
|
BIN
roles/matrix-client-element/files/antifa_coffee_cups.png
Normal file
BIN
roles/matrix-client-element/files/antifa_coffee_cups.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 188 KiB |
BIN
roles/matrix-client-element/files/background.jpg
Normal file
BIN
roles/matrix-client-element/files/background.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
BIN
roles/matrix-client-element/files/background_small.jpg
Normal file
BIN
roles/matrix-client-element/files/background_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 747 KiB |
@ -20,8 +20,14 @@
|
||||
- setup-all
|
||||
- setup-client-element
|
||||
|
||||
- import_tasks: "{{ role_path }}/tasks/setup.yml"
|
||||
when: run_setup|bool
|
||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||
when: "run_setup|bool and matrix_client_element_enabled|bool"
|
||||
tags:
|
||||
- setup-all
|
||||
- setup-client-element
|
||||
|
||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||
when: "run_setup|bool and not matrix_client_element_enabled|bool"
|
||||
tags:
|
||||
- setup-all
|
||||
- setup-client-element
|
||||
|
@ -1,9 +1,5 @@
|
||||
---
|
||||
|
||||
#
|
||||
# Tasks related to setting up Element
|
||||
#
|
||||
|
||||
- name: Ensure Element paths exists
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
@ -14,7 +10,7 @@
|
||||
with_items:
|
||||
- { path: "{{ matrix_client_element_data_path }}", when: true }
|
||||
- { path: "{{ matrix_client_element_docker_src_files_path }}", when: "{{ matrix_client_element_container_image_self_build }}" }
|
||||
when: matrix_client_element_enabled|bool and item.when
|
||||
when: "item.when|bool"
|
||||
|
||||
- name: Ensure Element Docker image is pulled
|
||||
docker_image:
|
||||
@ -22,7 +18,7 @@
|
||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||
force_source: "{{ matrix_client_element_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_client_element_docker_image_force_pull }}"
|
||||
when: matrix_client_element_enabled|bool and not matrix_client_element_container_image_self_build
|
||||
when: "not matrix_client_element_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure Element repository is present on self-build
|
||||
git:
|
||||
@ -31,7 +27,21 @@
|
||||
version: "{{ matrix_client_element_docker_image.split(':')[1] }}"
|
||||
force: "yes"
|
||||
register: matrix_client_element_git_pull_results
|
||||
when: "matrix_client_element_enabled|bool and matrix_client_element_container_image_self_build|bool"
|
||||
when: "matrix_client_element_container_image_self_build|bool"
|
||||
|
||||
# See:
|
||||
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357
|
||||
# - https://github.com/vector-im/element-web/issues/19544
|
||||
- name: Patch webpack.config.js to support building on low-memory (<4G RAM) devices
|
||||
lineinfile:
|
||||
path: "{{ matrix_client_element_docker_src_files_path }}/webpack.config.js"
|
||||
regexp: '(\s+)splitChunks: \{'
|
||||
line: '\1splitChunks: { maxSize: 100000,'
|
||||
backrefs: yes
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
when: "matrix_client_element_container_image_self_build|bool and matrix_client_element_container_image_self_build_low_memory_system_patch_enabled|bool"
|
||||
|
||||
- name: Ensure Element Docker image is built
|
||||
docker_image:
|
||||
@ -43,7 +53,7 @@
|
||||
dockerfile: Dockerfile
|
||||
path: "{{ matrix_client_element_docker_src_files_path }}"
|
||||
pull: yes
|
||||
when: "matrix_client_element_enabled|bool and matrix_client_element_container_image_self_build|bool"
|
||||
when: "matrix_client_element_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure Element configuration installed
|
||||
copy:
|
||||
@ -52,7 +62,6 @@
|
||||
mode: 0644
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
when: matrix_client_element_enabled|bool
|
||||
|
||||
- name: Ensure Element config files installed
|
||||
template:
|
||||
@ -65,6 +74,18 @@
|
||||
- {src: "{{ role_path }}/templates/nginx.conf.j2", name: "nginx.conf"}
|
||||
- {src: "{{ matrix_client_element_page_template_welcome_path }}", name: "welcome.html"}
|
||||
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
||||
when: "item.src is not none"
|
||||
|
||||
- name: Copy Element costum files
|
||||
copy:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
||||
mode: 0644
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
with_items:
|
||||
- {src: "{{ role_path }}/files/background.jpg", name: "background.jpg"}
|
||||
- {src: "{{ role_path }}/files/antifa_coffee_cups.png", name: "logo.png"}
|
||||
when: "matrix_client_element_enabled|bool and item.src is not none"
|
||||
|
||||
- name: Ensure Element config files removed
|
||||
@ -73,7 +94,7 @@
|
||||
state: absent
|
||||
with_items:
|
||||
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
||||
when: "matrix_client_element_enabled|bool and item.src is none"
|
||||
when: "item.src is none"
|
||||
|
||||
- name: Ensure matrix-client-element.service installed
|
||||
template:
|
||||
@ -81,50 +102,8 @@
|
||||
dest: "{{ matrix_systemd_path }}/matrix-client-element.service"
|
||||
mode: 0644
|
||||
register: matrix_client_element_systemd_service_result
|
||||
when: matrix_client_element_enabled|bool
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-element.service installation
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "matrix_client_element_enabled and matrix_client_element_systemd_service_result.changed"
|
||||
|
||||
#
|
||||
# Tasks related to getting rid of Element (if it was previously enabled)
|
||||
#
|
||||
|
||||
- name: Check existence of matrix-client-element.service
|
||||
stat:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-element.service"
|
||||
register: matrix_client_element_service_stat
|
||||
when: "not matrix_client_element_enabled|bool"
|
||||
|
||||
- name: Ensure matrix-client-element is stopped
|
||||
service:
|
||||
name: matrix-client-element
|
||||
state: stopped
|
||||
daemon_reload: yes
|
||||
register: stopping_result
|
||||
when: "not matrix_client_element_enabled|bool and matrix_client_element_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure matrix-client-element.service doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-element.service"
|
||||
state: absent
|
||||
when: "not matrix_client_element_enabled|bool and matrix_client_element_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-element.service removal
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "not matrix_client_element_enabled|bool and matrix_client_element_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure Element paths doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_client_element_data_path }}"
|
||||
state: absent
|
||||
when: "not matrix_client_element_enabled|bool"
|
||||
|
||||
- name: Ensure Element Docker image doesn't exist
|
||||
docker_image:
|
||||
name: "{{ matrix_client_element_docker_image }}"
|
||||
state: absent
|
||||
when: "not matrix_client_element_enabled|bool"
|
||||
when: "matrix_client_element_systemd_service_result.changed|bool"
|
35
roles/matrix-client-element/tasks/setup_uninstall.yml
Normal file
35
roles/matrix-client-element/tasks/setup_uninstall.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
- name: Check existence of matrix-client-element.service
|
||||
stat:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-element.service"
|
||||
register: matrix_client_element_service_stat
|
||||
|
||||
- name: Ensure matrix-client-element is stopped
|
||||
service:
|
||||
name: matrix-client-element
|
||||
state: stopped
|
||||
daemon_reload: yes
|
||||
register: stopping_result
|
||||
when: "matrix_client_element_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure matrix-client-element.service doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-element.service"
|
||||
state: absent
|
||||
when: "matrix_client_element_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-element.service removal
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "matrix_client_element_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure Element paths doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_client_element_data_path }}"
|
||||
state: absent
|
||||
|
||||
- name: Ensure Element Docker image doesn't exist
|
||||
docker_image:
|
||||
name: "{{ matrix_client_element_docker_image }}"
|
||||
state: absent
|
@ -33,7 +33,7 @@ h1::after {
|
||||
}
|
||||
|
||||
.mx_Logo {
|
||||
height: 54px;
|
||||
height: 92px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ matrix_client_hydrogen_enabled: true
|
||||
matrix_client_hydrogen_container_image_self_build: true
|
||||
matrix_client_hydrogen_container_image_self_build_repo: "https://github.com/vector-im/hydrogen-web.git"
|
||||
|
||||
matrix_client_hydrogen_version: v0.2.7
|
||||
matrix_client_hydrogen_version: v0.2.19
|
||||
matrix_client_hydrogen_docker_image: "{{ matrix_client_hydrogen_docker_image_name_prefix }}vectorim/hydrogen-web:{{ matrix_client_hydrogen_version }}"
|
||||
matrix_client_hydrogen_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_hydrogen_container_image_self_build }}"
|
||||
matrix_client_hydrogen_docker_image_force_pull: "{{ matrix_client_hydrogen_docker_image.endswith(':latest') }}"
|
||||
|
@ -8,8 +8,14 @@
|
||||
- setup-all
|
||||
- setup-client-hydrogen
|
||||
|
||||
- import_tasks: "{{ role_path }}/tasks/setup.yml"
|
||||
when: run_setup|bool
|
||||
- import_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
||||
when: "run_setup|bool and matrix_client_hydrogen_enabled|bool"
|
||||
tags:
|
||||
- setup-all
|
||||
- setup-client-hydrogen
|
||||
|
||||
- import_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
||||
when: "run_setup|bool and not matrix_client_hydrogen_enabled|bool"
|
||||
tags:
|
||||
- setup-all
|
||||
- setup-client-hydrogen
|
||||
|
@ -1,9 +1,5 @@
|
||||
---
|
||||
|
||||
#
|
||||
# Tasks related to setting up Hydrogen
|
||||
#
|
||||
|
||||
- name: Ensure Hydrogen paths exists
|
||||
file:
|
||||
path: "{{ item.path }}"
|
||||
@ -14,7 +10,7 @@
|
||||
with_items:
|
||||
- { path: "{{ matrix_client_hydrogen_data_path }}", when: true }
|
||||
- { path: "{{ matrix_client_hydrogen_docker_src_files_path }}", when: "{{ matrix_client_hydrogen_container_image_self_build }}" }
|
||||
when: matrix_client_hydrogen_enabled|bool and item.when
|
||||
when: "item.when|bool"
|
||||
|
||||
- name: Ensure Hydrogen Docker image is pulled
|
||||
docker_image:
|
||||
@ -22,7 +18,7 @@
|
||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||
force_source: "{{ matrix_client_hydrogen_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_client_hydrogen_docker_image_force_pull }}"
|
||||
when: matrix_client_hydrogen_enabled|bool and not matrix_client_hydrogen_container_image_self_build
|
||||
when: "not matrix_client_hydrogen_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure Hydrogen repository is present on self-build
|
||||
git:
|
||||
@ -31,7 +27,7 @@
|
||||
version: "{{ matrix_client_hydrogen_docker_image.split(':')[1] }}"
|
||||
force: "yes"
|
||||
register: matrix_client_hydrogen_git_pull_results
|
||||
when: "matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_container_image_self_build|bool"
|
||||
when: "matrix_client_hydrogen_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure Hydrogen configuration installed
|
||||
copy:
|
||||
@ -40,7 +36,7 @@
|
||||
mode: 0644
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
when: "matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_container_image_self_build|bool"
|
||||
when: "matrix_client_hydrogen_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure Hydrogen additional config files installed
|
||||
template:
|
||||
@ -51,7 +47,7 @@
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
with_items:
|
||||
- {src: "{{ role_path }}/templates/nginx.conf.j2", name: "nginx.conf"}
|
||||
when: "matrix_client_hydrogen_enabled|bool and item.src is not none"
|
||||
when: "item.src is not none"
|
||||
|
||||
# This step MUST come after the steps to install the configuration files because the config files
|
||||
# are currently only read at build time, not at run time like most other components in the playbook
|
||||
@ -64,7 +60,7 @@
|
||||
dockerfile: Dockerfile
|
||||
path: "{{ matrix_client_hydrogen_docker_src_files_path }}"
|
||||
pull: yes
|
||||
when: "matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_container_image_self_build|bool"
|
||||
when: "matrix_client_hydrogen_container_image_self_build|bool"
|
||||
|
||||
- name: Ensure matrix-client-hydrogen.service installed
|
||||
template:
|
||||
@ -72,50 +68,8 @@
|
||||
dest: "{{ matrix_systemd_path }}/matrix-client-hydrogen.service"
|
||||
mode: 0644
|
||||
register: matrix_client_hydrogen_systemd_service_result
|
||||
when: matrix_client_hydrogen_enabled|bool
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-hydrogen.service installation
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "matrix_client_hydrogen_enabled and matrix_client_hydrogen_systemd_service_result.changed"
|
||||
|
||||
#
|
||||
# Tasks related to getting rid of Hydrogen (if it was previously enabled)
|
||||
#
|
||||
|
||||
- name: Check existence of matrix-client-hydrogen.service
|
||||
stat:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-hydrogen.service"
|
||||
register: matrix_client_hydrogen_service_stat
|
||||
when: "not matrix_client_hydrogen_enabled|bool"
|
||||
|
||||
- name: Ensure matrix-client-hydrogen is stopped
|
||||
service:
|
||||
name: matrix-client-hydrogen
|
||||
state: stopped
|
||||
daemon_reload: yes
|
||||
register: stopping_result
|
||||
when: "not matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure matrix-client-hydrogen.service doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-hydrogen.service"
|
||||
state: absent
|
||||
when: "not matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-hydrogen.service removal
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "not matrix_client_hydrogen_enabled|bool and matrix_client_hydrogen_service_stat.stat.exists"
|
||||
|
||||
- name: Ensure Hydrogen paths doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_client_hydrogen_data_path }}"
|
||||
state: absent
|
||||
when: "not matrix_client_hydrogen_enabled|bool"
|
||||
|
||||
- name: Ensure Hydrogen Docker image doesn't exist
|
||||
docker_image:
|
||||
name: "{{ matrix_client_hydrogen_docker_image }}"
|
||||
state: absent
|
||||
when: "not matrix_client_hydrogen_enabled|bool"
|
||||
when: "matrix_client_hydrogen_systemd_service_result.changed|bool"
|
35
roles/matrix-client-hydrogen/tasks/setup_uninstall.yml
Normal file
35
roles/matrix-client-hydrogen/tasks/setup_uninstall.yml
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
- name: Check existence of matrix-client-hydrogen.service
|
||||
stat:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-hydrogen.service"
|
||||
register: matrix_client_hydrogen_service_stat
|
||||
|
||||
- name: Ensure matrix-client-hydrogen is stopped
|
||||
service:
|
||||
name: matrix-client-hydrogen
|
||||
state: stopped
|
||||
daemon_reload: yes
|
||||
register: stopping_result
|
||||
when: "matrix_client_hydrogen_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure matrix-client-hydrogen.service doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_systemd_path }}/matrix-client-hydrogen.service"
|
||||
state: absent
|
||||
when: "matrix_client_hydrogen_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure systemd reloaded after matrix-client-hydrogen.service removal
|
||||
service:
|
||||
daemon_reload: yes
|
||||
when: "matrix_client_hydrogen_service_stat.stat.exists|bool"
|
||||
|
||||
- name: Ensure Hydrogen paths doesn't exist
|
||||
file:
|
||||
path: "{{ matrix_client_hydrogen_data_path }}"
|
||||
state: absent
|
||||
|
||||
- name: Ensure Hydrogen Docker image doesn't exist
|
||||
docker_image:
|
||||
name: "{{ matrix_client_hydrogen_docker_image }}"
|
||||
state: absent
|
@ -3,7 +3,7 @@
|
||||
|
||||
matrix_grafana_enabled: false
|
||||
|
||||
matrix_grafana_version: 8.1.4
|
||||
matrix_grafana_version: 8.2.2
|
||||
matrix_grafana_docker_image: "{{ matrix_container_global_registry_prefix }}grafana/grafana:{{ matrix_grafana_version }}"
|
||||
matrix_grafana_docker_image_force_pull: "{{ matrix_grafana_docker_image.endswith(':latest') }}"
|
||||
|
||||
|
@ -19,7 +19,8 @@ matrix_ma1sd_docker_src_files_path: "{{ matrix_ma1sd_base_path }}/docker-src/ma1
|
||||
matrix_ma1sd_config_path: "{{ matrix_ma1sd_base_path }}/config"
|
||||
matrix_ma1sd_data_path: "{{ matrix_ma1sd_base_path }}/data"
|
||||
|
||||
# Controls whether the matrix-ma1sd container exposes its HTTP port (tcp/8090 in the container).
|
||||
matrix_ma1sd_default_port: 8090
|
||||
# Controls whether the matrix-ma1sd container exposes its HTTP port (tcp/{{ matrix_ma1sd_default_port }} in the container).
|
||||
#
|
||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8090"), or empty string to not expose.
|
||||
matrix_ma1sd_container_http_host_bind_port: ''
|
||||
|
@ -26,7 +26,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-ma1sd \
|
||||
--tmpfs=/tmp:rw,exec,nosuid,size=10m \
|
||||
--network={{ matrix_docker_network }} \
|
||||
{% if matrix_ma1sd_container_http_host_bind_port %}
|
||||
-p {{ matrix_ma1sd_container_http_host_bind_port }}:8090 \
|
||||
-p {{ matrix_ma1sd_container_http_host_bind_port }}:{{ matrix_ma1sd_default_port }} \
|
||||
{% endif %}
|
||||
{% if matrix_ma1sd_verbose_logging %}
|
||||
-e MA1SD_LOG_LEVEL=debug \
|
||||
|
@ -165,23 +165,24 @@ matrix_nginx_proxy_proxy_matrix_corporal_api_addr_sans_container: "127.0.0.1:410
|
||||
# This can be used to forward the API endpoint to another service, augmenting the functionality of Synapse's own User Directory Search.
|
||||
# To learn more, see: https://github.com/ma1uta/ma1sd/blob/master/docs/features/directory.md
|
||||
matrix_nginx_proxy_proxy_matrix_user_directory_search_enabled: false
|
||||
matrix_nginx_proxy_proxy_matrix_user_directory_search_addr_with_container: "matrix-ma1sd:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_user_directory_search_addr_sans_container: "127.0.0.1:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_user_directory_search_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_default_port }}"
|
||||
matrix_nginx_proxy_proxy_matrix_user_directory_search_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_default_port }}"
|
||||
|
||||
# Controls whether proxying for 3PID-based registration (`/_matrix/client/r0/register/(email|msisdn)/requestToken`) should be done (on the matrix domain).
|
||||
# This allows another service to control registrations involving 3PIDs.
|
||||
# To learn more, see: https://github.com/ma1uta/ma1sd/blob/master/docs/features/registration.md
|
||||
matrix_nginx_proxy_proxy_matrix_3pid_registration_enabled: false
|
||||
matrix_nginx_proxy_proxy_matrix_3pid_registration_addr_with_container: "matrix-ma1sd:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_3pid_registration_addr_sans_container: "127.0.0.1:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_3pid_registration_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_default_port }}"
|
||||
matrix_nginx_proxy_proxy_matrix_3pid_registration_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_default_port }}"
|
||||
|
||||
# Controls whether proxying for the Identity API (`/_matrix/identity`) should be done (on the matrix domain)
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_enabled: false
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:8090"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_default_port }}"
|
||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_default_port }}"
|
||||
|
||||
# Controls whether proxying for metrics (`/_synapse/metrics`) should be done (on the matrix domain)
|
||||
matrix_nginx_proxy_proxy_synapse_metrics: false
|
||||
matrix_nginx_proxy_synapse_workers_enabled_list: []
|
||||
matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled: false
|
||||
# The following value will be written verbatim to the htpasswd file that stores the password for nginx to check against and needs to be encoded appropriately.
|
||||
# Read the manpage at `man 1 htpasswd` to learn more, then encrypt your password, and paste the encrypted value here.
|
||||
@ -226,7 +227,7 @@ matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_prefix_regexes: |
|
||||
+
|
||||
(['/_synapse/admin'] if matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_admin_api_enabled else [])
|
||||
+
|
||||
(['/_synapse/metrics'] if matrix_nginx_proxy_proxy_synapse_metrics else [])
|
||||
(['/_synapse.*/metrics'] if matrix_nginx_proxy_proxy_synapse_metrics else [])
|
||||
}}
|
||||
|
||||
# Specifies where requests for the root URI (`/`) on the `matrix.` domain should be redirected.
|
||||
|
@ -38,6 +38,15 @@
|
||||
mode: 0400
|
||||
when: "matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled|bool and matrix_nginx_proxy_proxy_synapse_metrics|bool"
|
||||
|
||||
- name: Generate sample prometheus.yml for external scraping
|
||||
template:
|
||||
src: "{{ role_path }}/templates/prometheus/external_prometheus.yml.example.j2"
|
||||
dest: "{{ matrix_base_data_path }}/external_prometheus.yml.example"
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
mode: 0644
|
||||
when: matrix_nginx_proxy_proxy_synapse_metrics|bool
|
||||
|
||||
- name: Ensure Matrix nginx-proxy configured (generic)
|
||||
template:
|
||||
src: "{{ role_path }}/templates/nginx/conf.d/nginx-http.conf.j2"
|
||||
@ -270,3 +279,9 @@
|
||||
path: "{{ matrix_nginx_proxy_data_path }}/matrix-synapse-metrics-htpasswd"
|
||||
state: absent
|
||||
when: "not matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled|bool or not matrix_nginx_proxy_proxy_synapse_metrics|bool"
|
||||
|
||||
- name: Ensure sample prometheus.yml for external scraping is deleted
|
||||
file:
|
||||
path: "{{ matrix_base_data_path }}/external_prometheus.yml.example"
|
||||
state: absent
|
||||
when: "not matrix_nginx_proxy_proxy_synapse_metrics|bool"
|
||||
|
@ -62,7 +62,9 @@
|
||||
|
||||
server {
|
||||
listen 12080;
|
||||
{% if matrix_nginx_proxy_enabled %}
|
||||
server_name {{ matrix_nginx_proxy_proxy_synapse_hostname }};
|
||||
{% endif %}
|
||||
|
||||
server_tokens off;
|
||||
root /dev/null;
|
||||
@ -153,6 +155,24 @@ server {
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
{% if matrix_nginx_proxy_enabled and matrix_nginx_proxy_proxy_synapse_metrics %}
|
||||
{% for worker in matrix_nginx_proxy_proxy_synapse_workers_enabled_list %}
|
||||
{% if worker.metrics_port != 0 %}
|
||||
location /_synapse-worker-{{ worker.type }}-{{ worker.instanceId }}/metrics {
|
||||
resolver 127.0.0.11 valid=5s;
|
||||
set $backend "matrix-synapse-worker-{{ worker.type }}-{{ worker.instanceId }}:{{ worker.metrics_port }}";
|
||||
proxy_pass http://$backend/_synapse/metrics;
|
||||
proxy_set_header Host $host;
|
||||
|
||||
{% if matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled %}
|
||||
auth_basic "protected";
|
||||
auth_basic_user_file /nginx-data/matrix-synapse-metrics-htpasswd;
|
||||
{% endif %}
|
||||
}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{# Everything else just goes to the API server ##}
|
||||
location / {
|
||||
{% if matrix_nginx_proxy_enabled %}
|
||||
@ -176,8 +196,10 @@ server {
|
||||
{% if matrix_nginx_proxy_proxy_synapse_federation_api_enabled %}
|
||||
server {
|
||||
listen 12088;
|
||||
|
||||
{% if matrix_nginx_proxy_enabled %}
|
||||
server_name {{ matrix_nginx_proxy_proxy_synapse_hostname }};
|
||||
{% endif %}
|
||||
|
||||
server_tokens off;
|
||||
|
||||
root /dev/null;
|
||||
|
@ -0,0 +1,40 @@
|
||||
global:
|
||||
scrape_interval: 5s
|
||||
|
||||
# Attach these labels to any time series or alerts when communicating with
|
||||
# external systems (federation, remote storage, Alertmanager).
|
||||
external_labels:
|
||||
monitor: 'synapse-{{ matrix_domain }}'
|
||||
|
||||
rule_files:
|
||||
- /etc/prometheus/synapse-v2.rules
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'synapse'
|
||||
metrics_path: /_synapse/metrics
|
||||
scheme: {{ 'https' if matrix_nginx_proxy_https_enabled else 'http' }}
|
||||
{% if matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled %}
|
||||
basic_auth:
|
||||
username: prometheus
|
||||
password_file: /path/to/your/passwordfile.pwd
|
||||
{% endif %}
|
||||
static_configs:
|
||||
- targets: ['{{ matrix_server_fqn_matrix }}:{{ matrix_nginx_proxy_container_https_host_bind_port if matrix_nginx_proxy_https_enabled else matrix_nginx_proxy_container_http_host_bind_port }}']
|
||||
labels:
|
||||
job: "master"
|
||||
index: 1
|
||||
{% for worker in matrix_nginx_proxy_proxy_synapse_workers_enabled_list %}
|
||||
- job_name: 'synapse-{{ worker.type }}-{{ worker.instanceId }}'
|
||||
metrics_path: /_synapse-worker-{{ worker.type }}-{{ worker.instanceId }}/metrics
|
||||
scheme: {{ 'https' if matrix_nginx_proxy_https_enabled else 'http' }}
|
||||
{% if matrix_nginx_proxy_proxy_synapse_metrics_basic_auth_enabled %}
|
||||
basic_auth:
|
||||
username: prometheus
|
||||
password_file: /path/to/your/passwordfile.pwd
|
||||
{% endif %}
|
||||
static_configs:
|
||||
- targets: ['{{ matrix_server_fqn_matrix }}:{{ matrix_nginx_proxy_container_https_host_bind_port if matrix_nginx_proxy_https_enabled else matrix_nginx_proxy_container_http_host_bind_port }}']
|
||||
labels:
|
||||
job: "{{ worker.type }}"
|
||||
index: {{ worker.instanceId }}
|
||||
{% endfor %}
|
@ -11,6 +11,10 @@ Environment="HOME={{ matrix_systemd_unit_home_path }}"
|
||||
ExecStartPre=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} kill matrix-postgres 2>/dev/null'
|
||||
ExecStartPre=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} rm matrix-postgres 2>/dev/null'
|
||||
|
||||
# We need /dev/shm to be larger than the default to allow VACUUM to work.
|
||||
# See:
|
||||
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1362
|
||||
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1268
|
||||
ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-postgres \
|
||||
--log-driver=none \
|
||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
||||
@ -18,6 +22,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-postgres \
|
||||
--read-only \
|
||||
--tmpfs=/tmp:rw,noexec,nosuid,size=100m \
|
||||
--tmpfs=/run/postgresql:rw,noexec,nosuid,size=100m \
|
||||
--shm-size=256m \
|
||||
--network={{ matrix_docker_network }} \
|
||||
{% if matrix_postgres_container_postgres_bind_port %}
|
||||
-p {{ matrix_postgres_container_postgres_bind_port }}:5432 \
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
matrix_prometheus_enabled: false
|
||||
|
||||
matrix_prometheus_version: v2.29.2
|
||||
matrix_prometheus_version: v2.30.3
|
||||
matrix_prometheus_docker_image: "{{ matrix_container_global_registry_prefix }}prom/prometheus:{{ matrix_prometheus_version }}"
|
||||
matrix_prometheus_docker_image_force_pull: "{{ matrix_prometheus_docker_image.endswith(':latest') }}"
|
||||
|
||||
|
BIN
roles/matrix-riot-web/files/antifa_coffee_cups.png
Normal file
BIN
roles/matrix-riot-web/files/antifa_coffee_cups.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 188 KiB |
BIN
roles/matrix-riot-web/files/background.jpg
Normal file
BIN
roles/matrix-riot-web/files/background.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
@ -15,8 +15,8 @@ matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_cont
|
||||
# amd64 gets released first.
|
||||
# arm32 relies on self-building, so the same version can be built immediately.
|
||||
# arm64 users need to wait for a prebuilt image to become available.
|
||||
matrix_synapse_version: v1.45.1
|
||||
matrix_synapse_version_arm64: v1.45.1
|
||||
matrix_synapse_version: v1.46.0
|
||||
matrix_synapse_version_arm64: v1.46.0
|
||||
matrix_synapse_docker_image_tag: "{{ matrix_synapse_version if matrix_architecture in ['arm32', 'amd64'] else matrix_synapse_version_arm64 }}"
|
||||
matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}"
|
||||
|
||||
|
@ -492,6 +492,48 @@ redaction_retention_period: {{ matrix_synapse_redaction_retention_period }}
|
||||
|
||||
user_ips_max_age: {{ matrix_synapse_user_ips_max_age }}
|
||||
|
||||
# Inhibits the /requestToken endpoints from returning an error that might leak
|
||||
# information about whether an e-mail address is in use or not on this
|
||||
# homeserver.
|
||||
# Note that for some endpoints the error situation is the e-mail already being
|
||||
# used, and for others the error is entering the e-mail being unused.
|
||||
# If this option is enabled, instead of returning an error, these endpoints will
|
||||
# act as if no error happened and return a fake session ID ('sid') to clients.
|
||||
#
|
||||
#request_token_inhibit_3pid_errors: true
|
||||
|
||||
# A list of domains that the domain portion of 'next_link' parameters
|
||||
# must match.
|
||||
#
|
||||
# This parameter is optionally provided by clients while requesting
|
||||
# validation of an email or phone number, and maps to a link that
|
||||
# users will be automatically redirected to after validation
|
||||
# succeeds. Clients can make use this parameter to aid the validation
|
||||
# process.
|
||||
#
|
||||
# The whitelist is applied whether the homeserver or an
|
||||
# identity server is handling validation.
|
||||
#
|
||||
# The default value is no whitelist functionality; all domains are
|
||||
# allowed. Setting this value to an empty list will instead disallow
|
||||
# all domains.
|
||||
#
|
||||
#next_link_domain_whitelist: ["matrix.org"]
|
||||
|
||||
# Templates to use when generating email or HTML page contents.
|
||||
#
|
||||
templates:
|
||||
# Directory in which Synapse will try to find template files to use to generate
|
||||
# email or HTML page contents.
|
||||
# If not set, or a file is not found within the template directory, a default
|
||||
# template from within the Synapse package will be used.
|
||||
#
|
||||
# See https://matrix-org.github.io/synapse/latest/templates.html for more
|
||||
# information about using custom templates.
|
||||
#
|
||||
#custom_template_directory: /path/to/custom/templates/
|
||||
|
||||
|
||||
# Message retention policy at the server level.
|
||||
#
|
||||
# Room admins and mods can define a retention period for their rooms using the
|
||||
@ -561,47 +603,6 @@ retention:
|
||||
# - shortest_max_lifetime: 3d
|
||||
# interval: 1d
|
||||
|
||||
# Inhibits the /requestToken endpoints from returning an error that might leak
|
||||
# information about whether an e-mail address is in use or not on this
|
||||
# homeserver.
|
||||
# Note that for some endpoints the error situation is the e-mail already being
|
||||
# used, and for others the error is entering the e-mail being unused.
|
||||
# If this option is enabled, instead of returning an error, these endpoints will
|
||||
# act as if no error happened and return a fake session ID ('sid') to clients.
|
||||
#
|
||||
#request_token_inhibit_3pid_errors: true
|
||||
|
||||
# A list of domains that the domain portion of 'next_link' parameters
|
||||
# must match.
|
||||
#
|
||||
# This parameter is optionally provided by clients while requesting
|
||||
# validation of an email or phone number, and maps to a link that
|
||||
# users will be automatically redirected to after validation
|
||||
# succeeds. Clients can make use this parameter to aid the validation
|
||||
# process.
|
||||
#
|
||||
# The whitelist is applied whether the homeserver or an
|
||||
# identity server is handling validation.
|
||||
#
|
||||
# The default value is no whitelist functionality; all domains are
|
||||
# allowed. Setting this value to an empty list will instead disallow
|
||||
# all domains.
|
||||
#
|
||||
#next_link_domain_whitelist: ["matrix.org"]
|
||||
|
||||
# Templates to use when generating email or HTML page contents.
|
||||
#
|
||||
templates:
|
||||
# Directory in which Synapse will try to find template files to use to generate
|
||||
# email or HTML page contents.
|
||||
# If not set, or a file is not found within the template directory, a default
|
||||
# template from within the Synapse package will be used.
|
||||
#
|
||||
# See https://matrix-org.github.io/synapse/latest/templates.html for more
|
||||
# information about using custom templates.
|
||||
#
|
||||
#custom_template_directory: /path/to/custom/templates/
|
||||
|
||||
|
||||
## TLS ##
|
||||
|
||||
|
30
setup.yml
30
setup.yml
@ -58,3 +58,33 @@
|
||||
- matrix-postgres-backup
|
||||
- matrix-prometheus-postgres-exporter
|
||||
- matrix-common-after
|
||||
|
||||
tasks:
|
||||
- name: Ensure web-user is present
|
||||
user:
|
||||
name: "{{ web_user }}"
|
||||
state: present
|
||||
system: yes
|
||||
register: web_user_res
|
||||
tags: [ setup-caddy, setup-all, start ]
|
||||
- name: Ensure directory for revproxy config is present
|
||||
file:
|
||||
path: "{{ revproxy_autoload_dir }}/matrix"
|
||||
state: directory
|
||||
owner: "{{ web_user_res.uid }}"
|
||||
group: "{{ web_user_res.group }}"
|
||||
mode: 0750
|
||||
tags: [ setup-caddy, setup-all, start ]
|
||||
- name: Template reverse proxy configuration
|
||||
template:
|
||||
src: Caddyfile.j2
|
||||
dest: "{{ revproxy_autoload_dir }}/matrix/Caddyfile"
|
||||
owner: "{{ web_user_res.uid }}"
|
||||
group: "{{ web_user_res.group }}"
|
||||
mode: 0640
|
||||
tags: [ setup-caddy, setup-all, start ]
|
||||
- name: Restart reverse proxy
|
||||
docker_container:
|
||||
name: web
|
||||
state: started
|
||||
restart: yes
|
||||
|
110
templates/Caddyfile.j2
Normal file
110
templates/Caddyfile.j2
Normal file
@ -0,0 +1,110 @@
|
||||
https://{{ matrix_server_fqn_matrix }} {
|
||||
tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
|
||||
encode zstd gzip
|
||||
header {
|
||||
Strict-Transport-Security "max-age=31536000;"
|
||||
X-Frame-Options "DENY"
|
||||
X-XSS-Protection "1; mode=block"
|
||||
}
|
||||
# matrix-ma1sd
|
||||
reverse_proxy /_matrix/identity/* {{ matrix_ma1sd_container_http_host_bind_port }} {
|
||||
header_down Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||||
header_down Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||
}
|
||||
reverse_proxy /_matrix/client/r0/user_directory/search/* {{ matrix_ma1sd_container_http_host_bind_port }} {
|
||||
header_down Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||||
header_down Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||
}
|
||||
reverse_proxy /_matrix/federation/* http://{{ matrix_synapse_container_federation_api_plain_host_bind_port }}
|
||||
reverse_proxy /_matrix/key/* http://{{ matrix_synapse_container_federation_api_plain_host_bind_port }}
|
||||
reverse_proxy /_matrix/* {{ matrix_synapse_container_client_api_host_bind_port }} {
|
||||
import proxyheaders
|
||||
header_down Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||||
header_down Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||
}
|
||||
route /synapse-admin/* {
|
||||
uri strip_prefix /synapse-admin
|
||||
reverse_proxy http://127.0.0.1{{ matrix_synapse_admin_container_http_host_bind_port }}
|
||||
}
|
||||
reverse_proxy /_synapse/* http://{{ matrix_synapse_container_client_api_host_bind_port }}
|
||||
basicauth /metrics/* bcrypt monitoring {
|
||||
monitoring JDJhJDE0JGdQRlNHVFpSQmRiaWlPem9LdXlkS09HN2E3LklZS05YZmtXTEY1NlFXbkMxd3hBUmwwbVZl
|
||||
}
|
||||
route /metrics/synapse {
|
||||
uri replace /metrics/synapse /_synapse/metrics
|
||||
reverse_proxy http://{{ matrix_synapse_container_metrics_api_host_bind_port }}
|
||||
}
|
||||
route /metrics/synapse/worker/appservice {
|
||||
uri replace /metrics/synapse/worker/appservice /_synapse/metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_synapse_workers_appservice_workers_metrics_range_start }}
|
||||
}
|
||||
route /metrics/synapse/worker/federation-sender {
|
||||
uri replace /metrics/synapse/worker/federation-sender /_synapse/metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_synapse_workers_federation_sender_workers_metrics_range_start }}
|
||||
}
|
||||
route /metrics/bridge/* {
|
||||
uri strip_prefix /metrics/bridge
|
||||
route /mautrix-telegram {
|
||||
uri replace /mautrix-telegram /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mautrix-whatsapp {
|
||||
uri replace /mautrix-whatsapp /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mautrix-signal {
|
||||
uri replace /mautrix-signal /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mx-puppet-instagram {
|
||||
uri replace /mx-puppet-instagram /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mx-puppet-discord {
|
||||
uri replace /mx-puppet-discord /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mx-puppet-skype {
|
||||
uri replace /mx-puppet-skype /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
route /mx-puppet-slack {
|
||||
uri replace /mx-puppet-slack /metrics
|
||||
reverse_proxy http://127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
|
||||
}
|
||||
}
|
||||
reverse_proxy /bridge/telegram/* http://127.0.0.1:{{ matrix_mautrix_telegram_container_http_host_bind_port_public }}
|
||||
reverse_proxy /bridge/slack/* http://127.0.0.1:{{ matrix_mx_puppet_slack_container_http_auth_host_bind_port }}
|
||||
}
|
||||
|
||||
https://{{ matrix_server_fqn_dimension }} {
|
||||
tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
|
||||
encode zstd gzip
|
||||
reverse_proxy http://{{ matrix_dimension_container_http_host_bind_port }} {
|
||||
#header_up X-Forwarded-For {remote}
|
||||
import proxyheaders
|
||||
#header_up Host {host}
|
||||
}
|
||||
}
|
||||
|
||||
https://{{ matrix_server_fqn_element }} {
|
||||
tls /tls_certs/chat.finallycoffee.eu/fullchain.pem /tls_certs/chat.finallycoffee.eu/privkey.pem
|
||||
encode zstd gzip
|
||||
reverse_proxy http://{{ matrix_client_element_container_http_host_bind_port }}
|
||||
}
|
||||
|
||||
https://{{ matrix_domain }}/.well-known/matrix/* {
|
||||
tls /tls_certs/finallycoffee.eu/fullchain.pem /tls_certs/finallycoffee.eu/privkey.pem
|
||||
route {
|
||||
uri strip_prefix /.well-known/matrix
|
||||
root * /matrix_static
|
||||
file_server
|
||||
}
|
||||
header {
|
||||
Content-Type "application/json"
|
||||
X-Content-Type-Options "nosniff"
|
||||
Access-Control-Allow-Origin *
|
||||
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
|
||||
Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user