0.2.1 revision
This commit is contained in:
parent
4c882c513b
commit
33ec5710d9
43
docs/configuring-awx-system.md
Normal file
43
docs/configuring-awx-system.md
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# Configuring AWX System (optional)
|
||||||
|
|
||||||
|
An AWX setup for managing multiple Matrix servers.
|
||||||
|
|
||||||
|
This section is used in an AWX system that can create and manage multiple [Matrix](http://matrix.org/) servers. You can issue members an AWX login to their own 'organisation', which they can use to manage/configure 1 to N servers.
|
||||||
|
|
||||||
|
Members can be assigned a server from Digitalocean, or they can connect their own on-premises server. This script is free to use in a commercial context with the 'MemberPress Plus' and 'WP Oauth Sever' addons. It can also be run in a non-commercial context.
|
||||||
|
|
||||||
|
The AWX system is arranged into 'members' each with their own 'subscriptions'. After creating a subscription the user enters the 'provision stage' where they defined the URLs they will use, the servers location and whether or not there's already a website at the base domain. They then proceed onto the 'deploy stage' where they can configure their Matrix server.
|
||||||
|
|
||||||
|
Ideally this system can manage the updates, configuration, backups and monitoring on it's own. It is an extension of the popular deploy script [spantaleev/matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy).
|
||||||
|
|
||||||
|
Warning: This project is currently alpha quality and should only be run by the brave.
|
||||||
|
|
||||||
|
|
||||||
|
## Other Required Playbooks
|
||||||
|
|
||||||
|
The following repositories allow you to copy and use this setup:
|
||||||
|
|
||||||
|
[Create AWX System](https://gitlab.com/GoMatrixHosting/create-awx-system) - Creates and configures the AWX system for you.
|
||||||
|
|
||||||
|
[Ansible Create Delete Subscription Membership](https://gitlab.com/GoMatrixHosting/ansible-create-delete-subscription-membership) - Used by the AWX system to create memberships and subscriptions.
|
||||||
|
|
||||||
|
[Ansible Provision Server](https://gitlab.com/GoMatrixHosting/ansible-provision-server) - Used by AWX members to perform initial configuration of their DigitalOcean or On-Premises server.
|
||||||
|
|
||||||
|
## Testing Fork For This Playbook
|
||||||
|
|
||||||
|
Updates to this section are trailed here:
|
||||||
|
|
||||||
|
[GoMatrixHosting Matrix Docker Ansible Deploy](https://gitlab.com/GoMatrixHosting/gomatrixhosting-matrix-docker-ansible-deploy)
|
||||||
|
|
||||||
|
|
||||||
|
## Does I need an AWX setup to use this? How do I configure it?
|
||||||
|
|
||||||
|
Yes, you'll need to configure an AWX instance, the [Create AWX System](https://gitlab.com/GoMatrixHosting/create-awx-system) repository makes it easy to do. Just follow the steps listed in '/docs/Installation.md' of that repository.
|
||||||
|
|
||||||
|
|
||||||
|
## Does I need a front-end WordPress site? And a DigitalOcean account?
|
||||||
|
|
||||||
|
You do not need a front-end WordPress site or any of the mentioned WordPress plugins to use this setup. It can be run on it's own in a non-commercial context.
|
||||||
|
|
||||||
|
You also don't need a DigitalOcean account, but this will limit you to only being able to connect 'On-Premises' servers.
|
||||||
|
|
|
@ -4,7 +4,7 @@ The playbook can install and configure [mautrix-telegram](https://github.com/tul
|
||||||
|
|
||||||
See the project's [documentation](https://github.com/tulir/mautrix-telegram/wiki#usage) to learn what it does and why it might be useful to you.
|
See the project's [documentation](https://github.com/tulir/mautrix-telegram/wiki#usage) to learn what it does and why it might be useful to you.
|
||||||
|
|
||||||
You'll need to obtain API keys from `https://my.telegram.org/apps` and then use the following playbook configuration:
|
You'll need to obtain API keys from [https://my.telegram.org/apps](https://my.telegram.org/apps) and then use the following playbook configuration:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_mautrix_telegram_enabled: true
|
matrix_mautrix_telegram_enabled: true
|
||||||
|
|
|
@ -4,6 +4,8 @@ It can be useful to have some (visual) insight into the performance of your home
|
||||||
|
|
||||||
You can enable this with the following settings in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
|
You can enable this with the following settings in your configuration file (`inventory/host_vars/matrix.<your-domain>/vars.yml`):
|
||||||
|
|
||||||
|
Remember to add `stats.<your-domain>` to DNS as described in [Configuring DNS](configuring-dns.md) before running the playbook.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_prometheus_enabled: true
|
matrix_prometheus_enabled: true
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ matrix_mailer_enabled: false
|
||||||
|
|
||||||
# You can also disable this to save more RAM,
|
# You can also disable this to save more RAM,
|
||||||
# at the expense of audio/video calls being unreliable.
|
# at the expense of audio/video calls being unreliable.
|
||||||
matrix_coturn_enabled: true
|
matrix_coturn_enabled: false
|
||||||
|
|
||||||
# This makes Synapse not keep track of who is online/offline.
|
# This makes Synapse not keep track of who is online/offline.
|
||||||
#
|
#
|
||||||
|
|
|
@ -51,20 +51,15 @@ ansible-playbook -i inventory/hosts setup.yml --tags=run-postgres-vacuum,start
|
||||||
To make a back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:
|
To make a back up of the current PostgreSQL database, make sure it's running and then execute a command like this on the server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run \
|
/usr/bin/docker exec \
|
||||||
--rm \
|
|
||||||
--log-driver=none \
|
|
||||||
--network=matrix \
|
|
||||||
--env-file=/matrix/postgres/env-postgres-psql \
|
--env-file=/matrix/postgres/env-postgres-psql \
|
||||||
docker.io/postgres:13.1-alpine \
|
matrix-postgres \
|
||||||
pg_dumpall -h matrix-postgres \
|
/usr/local/bin/pg_dumpall -h matrix-postgres \
|
||||||
| gzip -c \
|
| gzip -c \
|
||||||
> /postgres.sql.gz
|
> /matrix/postgres.sql.gz
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because the credentials file (`/matrix/postgres/env-postgres-psql`) is not available.
|
If you are using an [external Postgres server](configuring-playbook-external-postgres.md), the above command will not work, because neither the credentials file (`/matrix/postgres/env-postgres-psql`), nor the `matrix-postgres` container is available.
|
||||||
|
|
||||||
If your server is on the ARM32 [architecture](alternative-architectures.md), you may need to remove the `-alpine` suffix from the image name in the command above.
|
|
||||||
|
|
||||||
Restoring a backup made this way can be done by [importing it](importing-postgres.md).
|
Restoring a backup made this way can be done by [importing it](importing-postgres.md).
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,22 @@ matrix_homeserver_container_url: "{{ 'http://matrix-nginx-proxy:12080' if matrix
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# matrix-awx
|
||||||
|
#
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
matrix_nginx_proxy_data_path: "{{ '/chroot/website' if (matrix_awx_enabled and not matrix_nginx_proxy_base_domain_homepage_enabled) else (matrix_nginx_proxy_base_path + '/data') }}"
|
||||||
|
matrix_nginx_proxy_data_path_in_container: "{{ '/nginx-data/matrix-domain' if (matrix_awx_enabled and not matrix_nginx_proxy_base_domain_homepage_enabled) else '/nginx-data' }}"
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
#
|
||||||
|
# /matrix-awx
|
||||||
|
#
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
#
|
#
|
||||||
# matrix-bridge-appservice-discord
|
# matrix-bridge-appservice-discord
|
||||||
|
@ -1074,6 +1090,9 @@ matrix_nginx_proxy_proxy_matrix_federation_api_addr_sans_container: "127.0.0.1:1
|
||||||
matrix_nginx_proxy_proxy_synapse_enabled: "{{ matrix_synapse_enabled }}"
|
matrix_nginx_proxy_proxy_synapse_enabled: "{{ matrix_synapse_enabled }}"
|
||||||
matrix_nginx_proxy_proxy_synapse_federation_api_enabled: "{{ matrix_nginx_proxy_proxy_matrix_federation_api_enabled }}"
|
matrix_nginx_proxy_proxy_synapse_federation_api_enabled: "{{ matrix_nginx_proxy_proxy_matrix_federation_api_enabled }}"
|
||||||
|
|
||||||
|
# When matrix-nginx-proxy is disabled, the actual port number that the vhost uses may begin to matter.
|
||||||
|
matrix_nginx_proxy_proxy_matrix_federation_port: "{{ matrix_federation_public_port }}"
|
||||||
|
|
||||||
matrix_nginx_proxy_container_federation_host_bind_port: "{{ matrix_federation_public_port }}"
|
matrix_nginx_proxy_container_federation_host_bind_port: "{{ matrix_federation_public_port }}"
|
||||||
|
|
||||||
# This used to be hooked to `matrix_synapse_metrics_enabled`, but we don't do it anymore.
|
# This used to be hooked to `matrix_synapse_metrics_enabled`, but we don't do it anymore.
|
||||||
|
@ -1224,7 +1243,7 @@ matrix_postgres_additional_databases: |
|
||||||
'username': matrix_mautrix_instagram_database_username,
|
'username': matrix_mautrix_instagram_database_username,
|
||||||
'password': matrix_mautrix_instagram_database_password,
|
'password': matrix_mautrix_instagram_database_password,
|
||||||
}] if (matrix_mautrix_instagram_enabled and matrix_mautrix_instagram_database_engine == 'postgres' and matrix_mautrix_instagram_database_hostname == 'matrix-postgres') else [])
|
}] if (matrix_mautrix_instagram_enabled and matrix_mautrix_instagram_database_engine == 'postgres' and matrix_mautrix_instagram_database_hostname == 'matrix-postgres') else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': matrix_mautrix_signal_database_name,
|
'name': matrix_mautrix_signal_database_name,
|
||||||
'username': matrix_mautrix_signal_database_username,
|
'username': matrix_mautrix_signal_database_username,
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Configure Website Access Backup",
|
|
||||||
"description": "Configure base domain website settings and access the services backup.",
|
|
||||||
"spec": [
|
|
||||||
{
|
|
||||||
"question_name": "Customise Base Domain Website",
|
|
||||||
"question_description": "Set if you want to adjust the base domain website using SFTP.",
|
|
||||||
"required": true,
|
|
||||||
"min": null,
|
|
||||||
"max": null,
|
|
||||||
"default": "{{ customise_base_domain_website|string|lower }}",
|
|
||||||
"choices": "true\nfalse",
|
|
||||||
"new_question": true,
|
|
||||||
"variable": "customise_base_domain_website",
|
|
||||||
"type": "multiplechoice"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"question_name": "SFTP Password",
|
|
||||||
"question_description": "Sets the password of the 'sftp' account, which allows you to upload a multi-file static website by SFTP, as well as download the latest copy of your services backup. If empty the password won't be updated. WARNING: You must set a strong and unique password here.",
|
|
||||||
"required": false,
|
|
||||||
"min": 0,
|
|
||||||
"max": 64,
|
|
||||||
"default": "{{ sftp_password }}",
|
|
||||||
"choices": "",
|
|
||||||
"new_question": true,
|
|
||||||
"variable": "sftp_password",
|
|
||||||
"type": "password"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
54
roles/matrix-awx/surveys/configure_website_access_export.json.j2
Executable file
54
roles/matrix-awx/surveys/configure_website_access_export.json.j2
Executable file
|
@ -0,0 +1,54 @@
|
||||||
|
{
|
||||||
|
"name": "Configure Website Access Backup",
|
||||||
|
"description": "Configure base domain website settings and access the services backup.",
|
||||||
|
"spec": [
|
||||||
|
{
|
||||||
|
"question_name": "Customise Base Domain Website",
|
||||||
|
"question_description": "Set if you want to adjust the base domain website using SFTP.",
|
||||||
|
"required": true,
|
||||||
|
"min": null,
|
||||||
|
"max": null,
|
||||||
|
"default": "{{ customise_base_domain_website | string | lower }}",
|
||||||
|
"choices": "true\nfalse",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "customise_base_domain_website",
|
||||||
|
"type": "multiplechoice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "SFTP Authorisation Method",
|
||||||
|
"question_description": "Set whether you want to disable SFTP, use a password to connect to SFTP or connect with a more secure SSH key.",
|
||||||
|
"required": true,
|
||||||
|
"min": null,
|
||||||
|
"max": null,
|
||||||
|
"default": "{{ sftp_auth_method | string }}",
|
||||||
|
"choices": "Disabled\nPassword\nSSH Key",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "sftp_auth_method",
|
||||||
|
"type": "multiplechoice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "SFTP Password",
|
||||||
|
"question_description": "Sets the password of the 'sftp' account, which allows you to upload a multi-file static website by SFTP, as well as export the latest copy of your Matrix service. Must be defined if 'Password' method is selected. WARNING: You must set a strong and unique password here.",
|
||||||
|
"required": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 64,
|
||||||
|
"default": "{{ sftp_password }}",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "sftp_password",
|
||||||
|
"type": "password"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question_name": "SFTP Public SSH Key (More Secure)",
|
||||||
|
"question_description": "Sets the public SSH key used to access the 'sftp' account, which allows you to upload a multi-file static website by SFTP, as well as export the latest copy of your Matrix service. Must be defined if 'SSH Key' method is selected.",
|
||||||
|
"required": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 16384,
|
||||||
|
"default": "{{ sftp_public_key }}",
|
||||||
|
"choices": "",
|
||||||
|
"new_question": true,
|
||||||
|
"variable": "sftp_public_key",
|
||||||
|
"type": "text"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
- name: Create user account
|
- name: Create user account
|
||||||
command: |
|
command: |
|
||||||
/usr/local/bin/matrix-synapse-register-user {{ new_username }} '{{ new_password }}' {{ admin_bool }}
|
/usr/local/bin/matrix-synapse-register-user {{ new_username | quote }} {{ new_password | quote }} {{ admin_bool }}
|
||||||
register: cmd
|
register: cmd
|
||||||
|
|
||||||
- name: Result
|
- name: Result
|
||||||
|
|
|
@ -21,17 +21,20 @@
|
||||||
with_dict:
|
with_dict:
|
||||||
'matrix_nginx_proxy_base_domain_homepage_enabled': 'false'
|
'matrix_nginx_proxy_base_domain_homepage_enabled': 'false'
|
||||||
when: customise_base_domain_website|bool == true
|
when: customise_base_domain_website|bool == true
|
||||||
|
|
||||||
- name: Record 'Customise Website + Access Backup' variables locally on AWX
|
- name: Record custom 'Customise Website + Access Export' variables locally on AWX
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
path: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
||||||
regexp: "^#? *{{ item.key | regex_escape() }}:"
|
regexp: "^#? *{{ item.key | regex_escape() }}:"
|
||||||
line: "{{ item.key }}: {{ item.value }}"
|
line: "{{ item.key }}: {{ item.value }}"
|
||||||
insertafter: '# AWX Settings'
|
insertafter: '# Custom Settings'
|
||||||
with_dict:
|
with_dict:
|
||||||
'customise_base_domain_website': '{{ customise_base_domain_website }}'
|
'customise_base_domain_website': '{{ customise_base_domain_website }}'
|
||||||
|
'sftp_auth_method': '"{{ sftp_auth_method }}"'
|
||||||
|
'sftp_password': '"{{ sftp_password }}"'
|
||||||
|
'sftp_public_key': '"{{ sftp_public_key }}"'
|
||||||
|
|
||||||
- name: Copy new 'matrix_vars.yml' to target machine
|
- name: Copy new 'matrix_vars.yml' to target machine
|
||||||
copy:
|
copy:
|
||||||
src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
||||||
|
@ -41,17 +44,18 @@
|
||||||
- name: Reload vars in matrix_vars.yml
|
- name: Reload vars in matrix_vars.yml
|
||||||
include_vars:
|
include_vars:
|
||||||
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
||||||
|
no_log: True
|
||||||
|
|
||||||
- name: Save new 'Customise Website + Access Backup' survey.json to the AWX tower, template
|
- name: Save new 'Customise Website + Access Export' survey.json to the AWX tower, template
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
template:
|
template:
|
||||||
src: './roles/matrix-awx/surveys/configure_website_access_backup.json.j2'
|
src: './roles/matrix-awx/surveys/configure_website_access_export.json.j2'
|
||||||
dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_backup.json'
|
dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_export.json'
|
||||||
|
|
||||||
- name: Copy new 'Customise Website + Access Backup' survey.json to target machine
|
- name: Copy new 'Customise Website + Access Export' survey.json to target machine
|
||||||
copy:
|
copy:
|
||||||
src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_backup.json'
|
src: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_export.json'
|
||||||
dest: '/matrix/awx/configure_website_access_backup.json'
|
dest: '/matrix/awx/configure_website_access_export.json'
|
||||||
mode: '0660'
|
mode: '0660'
|
||||||
|
|
||||||
- name: Collect AWX admin token the hard way!
|
- name: Collect AWX admin token the hard way!
|
||||||
|
@ -61,11 +65,11 @@
|
||||||
register: tower_token
|
register: tower_token
|
||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Recreate 'Customise Base Domain Website' job template
|
- name: Recreate 'Customise Base Domain Export' job template
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
awx.awx.tower_job_template:
|
awx.awx.tower_job_template:
|
||||||
name: "{{ matrix_domain }} - 1 - Configure Website + Access Backup"
|
name: "{{ matrix_domain }} - 1 - Configure Website + Access Export"
|
||||||
description: "Configure base domain website settings and access the services backup."
|
description: "Configure base domain website settings and access the servers export."
|
||||||
extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}"
|
extra_vars: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/extra_vars.json') }}"
|
||||||
job_type: run
|
job_type: run
|
||||||
job_tags: "start,setup-nginx-proxy"
|
job_tags: "start,setup-nginx-proxy"
|
||||||
|
@ -74,7 +78,7 @@
|
||||||
playbook: setup.yml
|
playbook: setup.yml
|
||||||
credential: "{{ member_id }} - AWX SSH Key"
|
credential: "{{ member_id }} - AWX SSH Key"
|
||||||
survey_enabled: true
|
survey_enabled: true
|
||||||
survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_backup.json') }}"
|
survey_spec: "{{ lookup('file', '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_export.json') }}"
|
||||||
become_enabled: yes
|
become_enabled: yes
|
||||||
state: present
|
state: present
|
||||||
verbosity: 1
|
verbosity: 1
|
||||||
|
@ -82,40 +86,32 @@
|
||||||
tower_oauthtoken: "{{ tower_token.stdout }}"
|
tower_oauthtoken: "{{ tower_token.stdout }}"
|
||||||
validate_certs: yes
|
validate_certs: yes
|
||||||
|
|
||||||
# Copied over from provision stage
|
|
||||||
|
|
||||||
- name: Copy ssh_sftp.service file
|
|
||||||
copy:
|
|
||||||
src: './roles/matrix-awx/templates/sftp/ssh_sftp.service'
|
|
||||||
dest: '/lib/systemd/system/ssh_sftp.service'
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- name: Copy sshd config file
|
|
||||||
copy:
|
|
||||||
src: './roles/matrix-awx/templates/sftp/sshd_sftp_config'
|
|
||||||
dest: '/etc/ssh/sshd_sftp_config'
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- name: Ensure group "sftp" exists
|
- name: Ensure group "sftp" exists
|
||||||
group:
|
group:
|
||||||
name: sftp
|
name: sftp
|
||||||
state: present
|
state: present
|
||||||
|
|
||||||
- name: If user defines sftp_password, enable account / set password on 'stfp' account.
|
- name: If user doesn't define a sftp_password, create a disabled 'sftp' account
|
||||||
user:
|
user:
|
||||||
name: sftp
|
name: sftp
|
||||||
comment: SFTP user to set custom web files
|
comment: SFTP user to set custom web files and access servers export
|
||||||
shell: /bin/false
|
shell: /bin/false
|
||||||
home: /home/sftp/
|
home: /home/sftp
|
||||||
|
group: sftp
|
||||||
|
password: '*'
|
||||||
|
update_password: always
|
||||||
|
when: sftp_password|length == 0
|
||||||
|
|
||||||
|
- name: If user defines sftp_password, enable account and set password on 'stfp' account
|
||||||
|
user:
|
||||||
|
name: sftp
|
||||||
|
comment: SFTP user to set custom web files and access servers export
|
||||||
|
shell: /bin/false
|
||||||
|
home: /home/sftp
|
||||||
group: sftp
|
group: sftp
|
||||||
password: "{{ sftp_password | password_hash('sha512') }}"
|
password: "{{ sftp_password | password_hash('sha512') }}"
|
||||||
update_password: always
|
update_password: always
|
||||||
when: (sftp_password is defined) and (sftp_password|length > 0)
|
when: sftp_password|length > 0
|
||||||
|
|
||||||
# would be safer if it generated the password for you!
|
|
||||||
|
|
||||||
- name: Setup SFTP users default root path
|
|
||||||
shell: sudo usermod -d / sftp
|
|
||||||
|
|
||||||
- name: adding existing user 'sftp' to group matrix
|
- name: adding existing user 'sftp' to group matrix
|
||||||
user:
|
user:
|
||||||
|
@ -131,7 +127,7 @@
|
||||||
group: root
|
group: root
|
||||||
mode: '1755'
|
mode: '1755'
|
||||||
|
|
||||||
- name: Create the rw /chroot/website directory if it doesn't exist.
|
- name: Ensure /chroot/website location exists.
|
||||||
file:
|
file:
|
||||||
path: /chroot/website
|
path: /chroot/website
|
||||||
state: directory
|
state: directory
|
||||||
|
@ -139,21 +135,96 @@
|
||||||
group: matrix
|
group: matrix
|
||||||
mode: '0574'
|
mode: '0574'
|
||||||
|
|
||||||
- name: Ensure /chroot/backup/ location exists
|
- name: Ensure /chroot/export location exists
|
||||||
file:
|
file:
|
||||||
path: /chroot/backup
|
path: /chroot/export
|
||||||
state: directory
|
state: directory
|
||||||
owner: sftp
|
owner: sftp
|
||||||
group: sftp
|
group: sftp
|
||||||
mode: '0700'
|
mode: '0700'
|
||||||
|
|
||||||
- name: Enable service ssh_sftp.service
|
- name: Ensure /home/sftp/.ssh location exists
|
||||||
service:
|
file:
|
||||||
name: ssh_sftp.service
|
path: /home/sftp/.ssh
|
||||||
enabled: yes
|
state: directory
|
||||||
|
owner: sftp
|
||||||
|
group: sftp
|
||||||
|
mode: '0700'
|
||||||
|
|
||||||
- name: Start service ssh_sftp.service
|
- name: Ensure /home/sftp/authorized_keys exists
|
||||||
service:
|
file:
|
||||||
name: ssh_sftp.service
|
path: /home/sftp/.ssh/authorized_keys
|
||||||
state: started
|
state: touch
|
||||||
|
owner: sftp
|
||||||
|
group: sftp
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Clear authorized_keys file
|
||||||
|
shell: echo "" > /home/sftp/.ssh/authorized_keys
|
||||||
|
|
||||||
|
- name: Insert public SSH key into authorized_keys file
|
||||||
|
lineinfile:
|
||||||
|
path: /home/sftp/.ssh/authorized_keys
|
||||||
|
line: "{{ sftp_public_key }}"
|
||||||
|
owner: sftp
|
||||||
|
group: sftp
|
||||||
|
mode: '0644'
|
||||||
|
when: (sftp_public_key | length > 0) and (sftp_auth_method == "SSH Key")
|
||||||
|
|
||||||
|
- name: Alter SSH Subsystem State 1
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
line: "Subsystem sftp /usr/lib/openssh/sftp-server"
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Alter SSH Subsystem State 2
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
insertafter: "^# override default of no subsystems"
|
||||||
|
line: "Subsystem sftp internal-sftp"
|
||||||
|
|
||||||
|
- name: Add SSH Match User section for disabled auth
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
state: absent
|
||||||
|
block: |
|
||||||
|
Match User sftp
|
||||||
|
ChrootDirectory /chroot
|
||||||
|
PermitTunnel no
|
||||||
|
X11Forwarding no
|
||||||
|
AllowTcpForwarding no
|
||||||
|
PasswordAuthentication yes
|
||||||
|
AuthorizedKeysFile /home/sftp/.ssh/authorized_keys
|
||||||
|
when: sftp_auth_method == "Disabled"
|
||||||
|
|
||||||
|
- name: Add SSH Match User section for password auth
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
state: present
|
||||||
|
block: |
|
||||||
|
Match User sftp
|
||||||
|
ChrootDirectory /chroot
|
||||||
|
PermitTunnel no
|
||||||
|
X11Forwarding no
|
||||||
|
AllowTcpForwarding no
|
||||||
|
PasswordAuthentication yes
|
||||||
|
when: sftp_auth_method == "Password"
|
||||||
|
|
||||||
|
- name: Add SSH Match User section for publickey auth
|
||||||
|
blockinfile:
|
||||||
|
path: /etc/ssh/sshd_config
|
||||||
|
state: present
|
||||||
|
block: |
|
||||||
|
Match User sftp
|
||||||
|
ChrootDirectory /chroot
|
||||||
|
PermitTunnel no
|
||||||
|
X11Forwarding no
|
||||||
|
AllowTcpForwarding no
|
||||||
|
AuthorizedKeysFile /home/sftp/.ssh/authorized_keys
|
||||||
|
when: sftp_auth_method == "SSH Key"
|
||||||
|
|
||||||
|
- name: Restart service ssh.service
|
||||||
|
service:
|
||||||
|
name: ssh.service
|
||||||
|
state: restarted
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
- name: Include vars in matrix_vars.yml
|
- name: Include vars in matrix_vars.yml
|
||||||
include_vars:
|
include_vars:
|
||||||
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
||||||
# no_log: True
|
no_log: True
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
tags:
|
tags:
|
||||||
- import-awx
|
- import-awx
|
||||||
|
|
||||||
# Configure SFTP so user can upload a static website
|
# Configure SFTP so user can upload a static website or access the servers export
|
||||||
- import_tasks: "{{ role_path }}/tasks/customise_website_access_backup.yml"
|
- import_tasks: "{{ role_path }}/tasks/customise_website_access_export.yml"
|
||||||
when: run_setup|bool and matrix_awx_enabled|bool
|
when: run_setup|bool and matrix_awx_enabled|bool
|
||||||
tags:
|
tags:
|
||||||
- setup-nginx-proxy
|
- setup-nginx-proxy
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=OpenBSD Secure Shell server
|
|
||||||
Documentation=man:sshd(8) man:sshd_config(5)
|
|
||||||
After=network.target auditd.service
|
|
||||||
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
EnvironmentFile=-/etc/default/ssh
|
|
||||||
ExecStartPre=/usr/sbin/sshd -t
|
|
||||||
ExecStart=/usr/sbin/sshd -D -f /etc/ssh/sshd_sftp_config $SSHD_OPTS
|
|
||||||
ExecReload=/usr/sbin/sshd -t
|
|
||||||
ExecReload=/bin/kill -HUP $MAINPID
|
|
||||||
KillMode=process
|
|
||||||
Restart=on-failure
|
|
||||||
RestartPreventExitStatus=255
|
|
||||||
Type=notify
|
|
||||||
RuntimeDirectory=sshd
|
|
||||||
RuntimeDirectoryMode=0755
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
Alias=sshd_sftp.service
|
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
|
|
||||||
|
|
||||||
# This is the sshd server system-wide configuration file. See
|
|
||||||
# sshd_config(5) for more information.
|
|
||||||
|
|
||||||
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
|
|
||||||
|
|
||||||
# The strategy used for options in the default sshd_config shipped with
|
|
||||||
# OpenSSH is to specify options with their default value where
|
|
||||||
# possible, but leave them commented. Uncommented options override the
|
|
||||||
# default value.
|
|
||||||
|
|
||||||
Port 2222
|
|
||||||
PermitRootLogin no
|
|
||||||
PasswordAuthentication yes
|
|
||||||
ChallengeResponseAuthentication no
|
|
||||||
UsePAM yes
|
|
||||||
X11Forwarding yes
|
|
||||||
PrintMotd no
|
|
||||||
|
|
||||||
AcceptEnv LANG LC_*
|
|
||||||
|
|
||||||
# override default of no subsystems
|
|
||||||
Subsystem sftp internal-sftp
|
|
||||||
|
|
||||||
Match User sftp
|
|
||||||
ChrootDirectory /chroot
|
|
||||||
PermitTunnel no
|
|
||||||
X11Forwarding no
|
|
||||||
AllowTcpForwarding no
|
|
||||||
ForceCommand internal-sftp
|
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
# See: https://github.com/anoadragon453/matrix-reminder-bot
|
# See: https://github.com/anoadragon453/matrix-reminder-bot
|
||||||
|
|
||||||
matrix_bot_matrix_reminder_bot_enabled: true
|
matrix_bot_matrix_reminder_bot_enabled: true
|
||||||
|
matrix_bot_matrix_reminder_bot_version: release-v0.2.0
|
||||||
matrix_bot_matrix_reminder_bot_docker_image: "docker.io/anoa/matrix-reminder-bot:release-v0.2.0"
|
matrix_bot_matrix_reminder_bot_docker_image: "docker.io/anoa/matrix-reminder-bot:{{ matrix_bot_matrix_reminder_bot_version }}"
|
||||||
matrix_bot_matrix_reminder_bot_docker_image_force_pull: "{{ matrix_bot_matrix_reminder_bot_docker_image.endswith(':latest') }}"
|
matrix_bot_matrix_reminder_bot_docker_image_force_pull: "{{ matrix_bot_matrix_reminder_bot_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_bot_matrix_reminder_bot_base_path: "{{ matrix_base_data_path }}/matrix-reminder-bot"
|
matrix_bot_matrix_reminder_bot_base_path: "{{ matrix_base_data_path }}/matrix-reminder-bot"
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_appservice_discord_enabled: true
|
matrix_appservice_discord_enabled: true
|
||||||
|
|
||||||
matrix_appservice_discord_docker_image: "docker.io/halfshot/matrix-appservice-discord:v1.0.0"
|
matrix_appservice_discord_version: v1.0.0
|
||||||
|
matrix_appservice_discord_docker_image: "docker.io/halfshot/matrix-appservice-discord:{{ matrix_appservice_discord_version }}"
|
||||||
matrix_appservice_discord_docker_image_force_pull: "{{ matrix_appservice_discord_docker_image.endswith(':latest') }}"
|
matrix_appservice_discord_docker_image_force_pull: "{{ matrix_appservice_discord_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord"
|
matrix_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord"
|
||||||
|
|
|
@ -7,7 +7,8 @@ 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_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_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-irc/docker-src"
|
||||||
|
|
||||||
matrix_appservice_irc_docker_image: "docker.io/matrixdotorg/matrix-appservice-irc:release-0.23.0"
|
matrix_appservice_irc_version: release-0.23.0
|
||||||
|
matrix_appservice_irc_docker_image: "docker.io/matrixdotorg/matrix-appservice-irc:{{ matrix_appservice_irc_version }}"
|
||||||
matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}"
|
matrix_appservice_irc_docker_image_force_pull: "{{ matrix_appservice_irc_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_irc_base_path: "{{ matrix_base_data_path }}/appservice-irc"
|
matrix_appservice_irc_base_path: "{{ matrix_base_data_path }}/appservice-irc"
|
||||||
|
|
|
@ -7,7 +7,8 @@ matrix_appservice_slack_container_self_build: false
|
||||||
matrix_appservice_slack_docker_repo: "https://github.com/matrix-org/matrix-appservice-slack.git"
|
matrix_appservice_slack_docker_repo: "https://github.com/matrix-org/matrix-appservice-slack.git"
|
||||||
matrix_appservice_slack_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-slack/docker-src"
|
matrix_appservice_slack_docker_src_files_path: "{{ matrix_base_data_path }}/appservice-slack/docker-src"
|
||||||
|
|
||||||
matrix_appservice_slack_docker_image: "docker.io/matrixdotorg/matrix-appservice-slack:release-1.5.0"
|
matrix_appservice_slack_version: release-1.5.0
|
||||||
|
matrix_appservice_slack_docker_image: "docker.io/matrixdotorg/matrix-appservice-slack:{{ matrix_appservice_slack_version }}"
|
||||||
matrix_appservice_slack_docker_image_force_pull: "{{ matrix_appservice_slack_docker_image.endswith(':latest') }}"
|
matrix_appservice_slack_docker_image_force_pull: "{{ matrix_appservice_slack_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_slack_base_path: "{{ matrix_base_data_path }}/appservice-slack"
|
matrix_appservice_slack_base_path: "{{ matrix_base_data_path }}/appservice-slack"
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_appservice_webhooks_enabled: true
|
matrix_appservice_webhooks_enabled: true
|
||||||
|
|
||||||
matrix_appservice_webhooks_docker_image: "docker.io/turt2live/matrix-appservice-webhooks:latest"
|
matrix_appservice_webhooks_version: latest
|
||||||
|
matrix_appservice_webhooks_docker_image: "docker.io/turt2live/matrix-appservice-webhooks:{{ matrix_appservice_webhooks_version }}"
|
||||||
matrix_appservice_webhooks_docker_image_force_pull: "{{ matrix_appservice_webhooks_docker_image.endswith(':latest') }}"
|
matrix_appservice_webhooks_docker_image_force_pull: "{{ matrix_appservice_webhooks_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_webhooks_base_path: "{{ matrix_base_data_path }}/appservice-webhooks"
|
matrix_appservice_webhooks_base_path: "{{ matrix_base_data_path }}/appservice-webhooks"
|
||||||
|
|
|
@ -6,8 +6,9 @@ matrix_mautrix_facebook_enabled: true
|
||||||
matrix_mautrix_facebook_container_image_self_build: false
|
matrix_mautrix_facebook_container_image_self_build: false
|
||||||
matrix_mautrix_facebook_container_image_self_build_repo: "https://github.com/tulir/mautrix-facebook.git"
|
matrix_mautrix_facebook_container_image_self_build_repo: "https://github.com/tulir/mautrix-facebook.git"
|
||||||
|
|
||||||
|
matrix_mautrix_facebook_version: latest
|
||||||
# See: https://mau.dev/tulir/mautrix-facebook/container_registry
|
# See: https://mau.dev/tulir/mautrix-facebook/container_registry
|
||||||
matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}tulir/mautrix-facebook:latest"
|
matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}tulir/mautrix-facebook:{{ matrix_mautrix_facebook_version }}"
|
||||||
matrix_mautrix_facebook_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else 'dock.mau.dev/' }}"
|
matrix_mautrix_facebook_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else 'dock.mau.dev/' }}"
|
||||||
matrix_mautrix_facebook_docker_image_force_pull: "{{ matrix_mautrix_facebook_docker_image.endswith(':latest') }}"
|
matrix_mautrix_facebook_docker_image_force_pull: "{{ matrix_mautrix_facebook_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,9 @@ matrix_mautrix_hangouts_enabled: true
|
||||||
matrix_mautrix_hangouts_container_image_self_build: false
|
matrix_mautrix_hangouts_container_image_self_build: false
|
||||||
matrix_mautrix_hangouts_container_image_self_build_repo: "https://github.com/tulir/mautrix-hangouts.git"
|
matrix_mautrix_hangouts_container_image_self_build_repo: "https://github.com/tulir/mautrix-hangouts.git"
|
||||||
|
|
||||||
|
matrix_mautrix_hangouts_version: latest
|
||||||
# See: https://mau.dev/tulir/mautrix-hangouts/container_registry
|
# See: https://mau.dev/tulir/mautrix-hangouts/container_registry
|
||||||
matrix_mautrix_hangouts_docker_image: "{{ matrix_mautrix_hangouts_docker_image_name_prefix }}tulir/mautrix-hangouts:latest"
|
matrix_mautrix_hangouts_docker_image: "{{ matrix_mautrix_hangouts_docker_image_name_prefix }}tulir/mautrix-hangouts:{{ matrix_mautrix_hangouts_version }}"
|
||||||
matrix_mautrix_hangouts_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_hangouts_container_image_self_build else 'dock.mau.dev/' }}"
|
matrix_mautrix_hangouts_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_hangouts_container_image_self_build else 'dock.mau.dev/' }}"
|
||||||
matrix_mautrix_hangouts_docker_image_force_pull: "{{ matrix_mautrix_hangouts_docker_image.endswith(':latest') }}"
|
matrix_mautrix_hangouts_docker_image_force_pull: "{{ matrix_mautrix_hangouts_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,9 @@ matrix_mautrix_instagram_enabled: true
|
||||||
matrix_mautrix_instagram_container_image_self_build: false
|
matrix_mautrix_instagram_container_image_self_build: false
|
||||||
matrix_mautrix_instagram_container_image_self_build_repo: "https://github.com/tulir/mautrix-instagram.git"
|
matrix_mautrix_instagram_container_image_self_build_repo: "https://github.com/tulir/mautrix-instagram.git"
|
||||||
|
|
||||||
|
matrix_mautrix_instagram_version: latest
|
||||||
# See: https://mau.dev/tulir/mautrix-instagram/container_registry
|
# See: https://mau.dev/tulir/mautrix-instagram/container_registry
|
||||||
matrix_mautrix_instagram_docker_image: "{{ matrix_mautrix_instagram_docker_image_name_prefix }}tulir/mautrix-instagram:latest"
|
matrix_mautrix_instagram_docker_image: "{{ matrix_mautrix_instagram_docker_image_name_prefix }}tulir/mautrix-instagram:{{ matrix_mautrix_instagram_version }}"
|
||||||
matrix_mautrix_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_instagram_container_image_self_build else 'dock.mau.dev/' }}"
|
matrix_mautrix_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_instagram_container_image_self_build else 'dock.mau.dev/' }}"
|
||||||
matrix_mautrix_instagram_docker_image_force_pull: "{{ matrix_mautrix_instagram_docker_image.endswith(':latest') }}"
|
matrix_mautrix_instagram_docker_image_force_pull: "{{ matrix_mautrix_instagram_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
@ -16,7 +17,7 @@ matrix_mautrix_instagram_config_path: "{{ matrix_mautrix_instagram_base_path }}/
|
||||||
matrix_mautrix_instagram_data_path: "{{ matrix_mautrix_instagram_base_path }}/data"
|
matrix_mautrix_instagram_data_path: "{{ matrix_mautrix_instagram_base_path }}/data"
|
||||||
matrix_mautrix_instagram_docker_src_files_path: "{{ matrix_mautrix_instagram_base_path }}/docker-src"
|
matrix_mautrix_instagram_docker_src_files_path: "{{ matrix_mautrix_instagram_base_path }}/docker-src"
|
||||||
|
|
||||||
matrix_mautrix_instagram_homeserver_address: 'http://matrix-synapse:8008'
|
matrix_mautrix_instagram_homeserver_address: "{{ matrix_homeserver_container_url }}"
|
||||||
matrix_mautrix_instagram_homeserver_domain: '{{ matrix_domain }}'
|
matrix_mautrix_instagram_homeserver_domain: '{{ matrix_domain }}'
|
||||||
matrix_mautrix_instagram_appservice_address: 'http://matrix-mautrix-instagram:29330'
|
matrix_mautrix_instagram_appservice_address: 'http://matrix-mautrix-instagram:29330'
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ matrix_mautrix_instagram_homeserver_token: ''
|
||||||
|
|
||||||
|
|
||||||
# Database-related configuration fields.
|
# Database-related configuration fields.
|
||||||
#
|
#
|
||||||
# To use Postgres:
|
# To use Postgres:
|
||||||
# - adjust your database credentials via the `matrix_mautrix_instagram_postgres_*` variables
|
# - adjust your database credentials via the `matrix_mautrix_instagram_postgres_*` variables
|
||||||
matrix_mautrix_instagram_database_engine: 'postgres'
|
matrix_mautrix_instagram_database_engine: 'postgres'
|
||||||
|
|
|
@ -3,11 +3,13 @@
|
||||||
|
|
||||||
matrix_mautrix_signal_enabled: true
|
matrix_mautrix_signal_enabled: true
|
||||||
|
|
||||||
|
matrix_mautrix_signal_version: latest
|
||||||
|
matrix_mautrix_signal_daemon_version: latest
|
||||||
# See: https://mau.dev/tulir/mautrix-signal/container_registry
|
# See: https://mau.dev/tulir/mautrix-signal/container_registry
|
||||||
matrix_mautrix_signal_docker_image: "dock.mau.dev/tulir/mautrix-signal:latest"
|
matrix_mautrix_signal_docker_image: "dock.mau.dev/tulir/mautrix-signal:{{ matrix_mautrix_signal_version }}"
|
||||||
matrix_mautrix_signal_docker_image_force_pull: "{{ matrix_mautrix_signal_docker_image.endswith(':latest') }}"
|
matrix_mautrix_signal_docker_image_force_pull: "{{ matrix_mautrix_signal_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_mautrix_signal_daemon_docker_image: "dock.mau.dev/maunium/signald:latest"
|
matrix_mautrix_signal_daemon_docker_image: "dock.mau.dev/maunium/signald:{{ matrix_mautrix_signal_daemon_version }}"
|
||||||
matrix_mautrix_signal_daemon_docker_image_force_pull: "{{ matrix_mautrix_signal_daemon_docker_image.endswith(':latest') }}"
|
matrix_mautrix_signal_daemon_docker_image_force_pull: "{{ matrix_mautrix_signal_daemon_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_mautrix_signal_base_path: "{{ matrix_base_data_path }}/mautrix-signal"
|
matrix_mautrix_signal_base_path: "{{ matrix_base_data_path }}/mautrix-signal"
|
||||||
|
|
|
@ -7,8 +7,9 @@ matrix_mautrix_telegram_container_self_build: false
|
||||||
matrix_mautrix_telegram_docker_repo: "https://mau.dev/tulir/mautrix-telegram.git"
|
matrix_mautrix_telegram_docker_repo: "https://mau.dev/tulir/mautrix-telegram.git"
|
||||||
matrix_mautrix_telegram_docker_src_files_path: "{{ matrix_base_data_path }}/mautrix-telegram/docker-src"
|
matrix_mautrix_telegram_docker_src_files_path: "{{ matrix_base_data_path }}/mautrix-telegram/docker-src"
|
||||||
|
|
||||||
|
matrix_mautrix_telegram_version: v0.9.0
|
||||||
# See: https://mau.dev/tulir/mautrix-telegram/container_registry
|
# See: https://mau.dev/tulir/mautrix-telegram/container_registry
|
||||||
matrix_mautrix_telegram_docker_image: "dock.mau.dev/tulir/mautrix-telegram:v0.9.0"
|
matrix_mautrix_telegram_docker_image: "dock.mau.dev/tulir/mautrix-telegram:{{ matrix_mautrix_telegram_version }}"
|
||||||
matrix_mautrix_telegram_docker_image_force_pull: "{{ matrix_mautrix_telegram_docker_image.endswith(':latest') }}"
|
matrix_mautrix_telegram_docker_image_force_pull: "{{ matrix_mautrix_telegram_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram"
|
matrix_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram"
|
||||||
|
|
|
@ -3,15 +3,16 @@
|
||||||
|
|
||||||
matrix_mautrix_whatsapp_enabled: true
|
matrix_mautrix_whatsapp_enabled: true
|
||||||
|
|
||||||
|
matrix_mautrix_whatsapp_version: latest
|
||||||
# See: https://mau.dev/tulir/mautrix-whatsapp/container_registry
|
# See: https://mau.dev/tulir/mautrix-whatsapp/container_registry
|
||||||
matrix_mautrix_whatsapp_docker_image: "dock.mau.dev/tulir/mautrix-whatsapp:latest"
|
matrix_mautrix_whatsapp_docker_image: "dock.mau.dev/tulir/mautrix-whatsapp:{{ matrix_mautrix_whatsapp_version }}"
|
||||||
matrix_mautrix_whatsapp_docker_image_force_pull: "{{ matrix_mautrix_whatsapp_docker_image.endswith(':latest') }}"
|
matrix_mautrix_whatsapp_docker_image_force_pull: "{{ matrix_mautrix_whatsapp_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_mautrix_whatsapp_base_path: "{{ matrix_base_data_path }}/mautrix-whatsapp"
|
matrix_mautrix_whatsapp_base_path: "{{ matrix_base_data_path }}/mautrix-whatsapp"
|
||||||
matrix_mautrix_whatsapp_config_path: "{{ matrix_mautrix_whatsapp_base_path }}/config"
|
matrix_mautrix_whatsapp_config_path: "{{ matrix_mautrix_whatsapp_base_path }}/config"
|
||||||
matrix_mautrix_whatsapp_data_path: "{{ matrix_mautrix_whatsapp_base_path }}/data"
|
matrix_mautrix_whatsapp_data_path: "{{ matrix_mautrix_whatsapp_base_path }}/data"
|
||||||
|
|
||||||
matrix_mautrix_whatsapp_homeserver_address: "http://matrix-synapse:8008"
|
matrix_mautrix_whatsapp_homeserver_address: "{{ matrix_homeserver_container_url }}"
|
||||||
matrix_mautrix_whatsapp_homeserver_domain: "{{ matrix_domain }}"
|
matrix_mautrix_whatsapp_homeserver_domain: "{{ matrix_domain }}"
|
||||||
matrix_mautrix_whatsapp_appservice_address: "http://matrix-mautrix-whatsapp:8080"
|
matrix_mautrix_whatsapp_appservice_address: "http://matrix-mautrix-whatsapp:8080"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ matrix_mx_puppet_discord_container_image_self_build_repo: "https://github.com/ma
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
||||||
matrix_mx_puppet_discord_container_http_host_bind_port: ''
|
matrix_mx_puppet_discord_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_mx_puppet_discord_docker_image: "{{ matrix_mx_puppet_discord_docker_image_name_prefix }}sorunome/mx-puppet-discord:latest"
|
matrix_mx_puppet_discord_version: latest
|
||||||
|
matrix_mx_puppet_discord_docker_image: "{{ matrix_mx_puppet_discord_docker_image_name_prefix }}sorunome/mx-puppet-discord:{{ matrix_mx_puppet_discord_version }}"
|
||||||
matrix_mx_puppet_discord_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_discord_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_discord_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_discord_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_discord_docker_image_force_pull: "{{ matrix_mx_puppet_discord_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_discord_docker_image_force_pull: "{{ matrix_mx_puppet_discord_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ matrix_mx_puppet_groupme_container_image_self_build_repo: "https://gitlab.com/ro
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8437"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8437"), or empty string to not expose.
|
||||||
matrix_mx_puppet_groupme_container_http_host_bind_port: ''
|
matrix_mx_puppet_groupme_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_mx_puppet_groupme_docker_image: "{{ matrix_mx_puppet_groupme_docker_image_name_prefix }}xangelix/mx-puppet-groupme:latest"
|
matrix_mx_puppet_groupme_version: latest
|
||||||
|
matrix_mx_puppet_groupme_docker_image: "{{ matrix_mx_puppet_groupme_docker_image_name_prefix }}xangelix/mx-puppet-groupme:{{ matrix_mx_puppet_groupme_version }}"
|
||||||
matrix_mx_puppet_groupme_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_groupme_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_groupme_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_groupme_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_groupme_docker_image_force_pull: "{{ matrix_mx_puppet_groupme_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_groupme_docker_image_force_pull: "{{ matrix_mx_puppet_groupme_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
@ -22,7 +23,7 @@ matrix_mx_puppet_groupme_docker_src_files_path: "{{ matrix_mx_puppet_groupme_bas
|
||||||
|
|
||||||
matrix_mx_puppet_groupme_appservice_port: "8437"
|
matrix_mx_puppet_groupme_appservice_port: "8437"
|
||||||
|
|
||||||
matrix_mx_puppet_groupme_homeserver_address: 'http://matrix-synapse:8008'
|
matrix_mx_puppet_groupme_homeserver_address: "{{ matrix_homeserver_container_url }}"
|
||||||
matrix_mx_puppet_groupme_homeserver_domain: '{{ matrix_domain }}'
|
matrix_mx_puppet_groupme_homeserver_domain: '{{ matrix_domain }}'
|
||||||
matrix_mx_puppet_groupme_appservice_address: 'http://matrix-mx-puppet-groupme:{{ matrix_mx_puppet_groupme_appservice_port }}'
|
matrix_mx_puppet_groupme_appservice_address: 'http://matrix-mx-puppet-groupme:{{ matrix_mx_puppet_groupme_appservice_port }}'
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@ matrix_mx_puppet_instagram_enabled: true
|
||||||
matrix_mx_puppet_instagram_container_image_self_build: false
|
matrix_mx_puppet_instagram_container_image_self_build: false
|
||||||
matrix_mx_puppet_instagram_container_image_self_build_repo: "https://github.com/Sorunome/mx-puppet-instagram.git"
|
matrix_mx_puppet_instagram_container_image_self_build_repo: "https://github.com/Sorunome/mx-puppet-instagram.git"
|
||||||
|
|
||||||
matrix_mx_puppet_instagram_docker_image: "{{ matrix_mx_puppet_instagram_docker_image_name_prefix }}sorunome/mx-puppet-instagram:latest"
|
matrix_mx_puppet_instagram_version: latest
|
||||||
|
matrix_mx_puppet_instagram_docker_image: "{{ matrix_mx_puppet_instagram_docker_image_name_prefix }}sorunome/mx-puppet-instagram:{{ matrix_mx_puppet_instagram_version }}"
|
||||||
matrix_mx_puppet_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_instagram_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_instagram_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_instagram_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_instagram_docker_image_force_pull: "{{ matrix_mx_puppet_instagram_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_instagram_docker_image_force_pull: "{{ matrix_mx_puppet_instagram_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@ matrix_mx_puppet_skype_enabled: true
|
||||||
matrix_mx_puppet_skype_container_image_self_build: false
|
matrix_mx_puppet_skype_container_image_self_build: false
|
||||||
matrix_mx_puppet_skype_container_image_self_build_repo: "https://github.com/Sorunome/mx-puppet-skype.git"
|
matrix_mx_puppet_skype_container_image_self_build_repo: "https://github.com/Sorunome/mx-puppet-skype.git"
|
||||||
|
|
||||||
matrix_mx_puppet_skype_docker_image: "{{ matrix_mx_puppet_skype_docker_image_name_prefix }}sorunome/mx-puppet-skype:latest"
|
matrix_mx_puppet_skype_version: latest
|
||||||
|
matrix_mx_puppet_skype_docker_image: "{{ matrix_mx_puppet_skype_docker_image_name_prefix }}sorunome/mx-puppet-skype:{{ matrix_mx_puppet_skype_version }}"
|
||||||
matrix_mx_puppet_skype_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_skype_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_skype_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_skype_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_skype_docker_image_force_pull: "{{ matrix_mx_puppet_skype_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_skype_docker_image_force_pull: "{{ matrix_mx_puppet_skype_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ matrix_mx_puppet_slack_container_image_self_build_repo: "https://github.com/Soru
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
||||||
matrix_mx_puppet_slack_container_http_host_bind_port: ''
|
matrix_mx_puppet_slack_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_mx_puppet_slack_docker_image: "{{ matrix_mx_puppet_slack_docker_image_name_prefix }}sorunome/mx-puppet-slack:latest"
|
matrix_mx_puppet_slack_version: latest
|
||||||
|
matrix_mx_puppet_slack_docker_image: "{{ matrix_mx_puppet_slack_docker_image_name_prefix }}sorunome/mx-puppet-slack:{{ matrix_mx_puppet_slack_version }}"
|
||||||
matrix_mx_puppet_slack_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_slack_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_slack_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_slack_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_slack_docker_image_force_pull: "{{ matrix_mx_puppet_slack_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_slack_docker_image_force_pull: "{{ matrix_mx_puppet_slack_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ matrix_mx_puppet_steam_container_image_self_build_repo: "https://github.com/icew
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
||||||
matrix_mx_puppet_steam_container_http_host_bind_port: ''
|
matrix_mx_puppet_steam_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_mx_puppet_steam_docker_image: "{{ matrix_mx_puppet_steam_docker_image_name_prefix }}icewind1991/mx-puppet-steam:latest"
|
matrix_mx_puppet_steam_version: latest
|
||||||
|
matrix_mx_puppet_steam_docker_image: "{{ matrix_mx_puppet_steam_docker_image_name_prefix }}icewind1991/mx-puppet-steam:{{ matrix_mx_puppet_steam_version }}"
|
||||||
matrix_mx_puppet_steam_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_steam_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_steam_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_steam_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_steam_docker_image_force_pull: "{{ matrix_mx_puppet_steam_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_steam_docker_image_force_pull: "{{ matrix_mx_puppet_steam_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,8 @@ matrix_mx_puppet_twitter_container_image_self_build_repo: "https://github.com/So
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8432"), or empty string to not expose.
|
||||||
matrix_mx_puppet_twitter_container_http_host_bind_port: ''
|
matrix_mx_puppet_twitter_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_mx_puppet_twitter_docker_image: "{{ matrix_mx_puppet_twitter_docker_image_name_prefix }}sorunome/mx-puppet-twitter:latest"
|
matrix_mx_puppet_twitter_version: latest
|
||||||
|
matrix_mx_puppet_twitter_docker_image: "{{ matrix_mx_puppet_twitter_docker_image_name_prefix }}sorunome/mx-puppet-twitter:{{ matrix_mx_puppet_twitter_version }}"
|
||||||
matrix_mx_puppet_twitter_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_twitter_container_image_self_build else 'docker.io/' }}"
|
matrix_mx_puppet_twitter_docker_image_name_prefix: "{{ 'localhost/' if matrix_mx_puppet_twitter_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mx_puppet_twitter_docker_image_force_pull: "{{ matrix_mx_puppet_twitter_docker_image.endswith(':latest') }}"
|
matrix_mx_puppet_twitter_docker_image_force_pull: "{{ matrix_mx_puppet_twitter_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_sms_bridge_enabled: true
|
matrix_sms_bridge_enabled: true
|
||||||
|
|
||||||
matrix_sms_bridge_docker_image: "docker.io/folivonet/matrix-sms-bridge:0.5.5"
|
matrix_sms_bridge_version: 0.5.5
|
||||||
|
matrix_sms_bridge_docker_image: "docker.io/folivonet/matrix-sms-bridge:{{ matrix_sms_bridge_version }}"
|
||||||
|
|
||||||
matrix_sms_bridge_base_path: "{{ matrix_base_data_path }}/matrix-sms-bridge"
|
matrix_sms_bridge_base_path: "{{ matrix_base_data_path }}/matrix-sms-bridge"
|
||||||
matrix_sms_bridge_config_path: "{{ matrix_base_data_path }}/matrix-sms-bridge/config"
|
matrix_sms_bridge_config_path: "{{ matrix_base_data_path }}/matrix-sms-bridge/config"
|
||||||
|
|
|
@ -3,7 +3,8 @@ matrix_client_element_enabled: true
|
||||||
matrix_client_element_container_image_self_build: false
|
matrix_client_element_container_image_self_build: false
|
||||||
matrix_client_element_container_image_self_build_repo: "https://github.com/vector-im/riot-web.git"
|
matrix_client_element_container_image_self_build_repo: "https://github.com/vector-im/riot-web.git"
|
||||||
|
|
||||||
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:v1.7.21"
|
matrix_client_element_version: v1.7.21
|
||||||
|
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 'docker.io/' }}"
|
matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}"
|
matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
- name: Create user account
|
- name: Create user account
|
||||||
command: |
|
command: |
|
||||||
/usr/local/bin/matrix-synapse-register-user janitor '{{ matrix_awx_janitor_user_password }}' 1
|
/usr/local/bin/matrix-synapse-register-user janitor {{ matrix_awx_janitor_user_password | quote }} 1
|
||||||
register: cmd
|
register: cmd
|
||||||
when: not matrix_awx_janitor_user_created|bool
|
when: not matrix_awx_janitor_user_created|bool
|
||||||
no_log: True
|
no_log: True
|
||||||
|
|
|
@ -22,9 +22,10 @@ matrix_corporal_container_extra_arguments: []
|
||||||
# List of systemd services that matrix-corporal.service depends on
|
# List of systemd services that matrix-corporal.service depends on
|
||||||
matrix_corporal_systemd_required_services_list: ['docker.service']
|
matrix_corporal_systemd_required_services_list: ['docker.service']
|
||||||
|
|
||||||
|
matrix_corporal_version: 2.1.0
|
||||||
matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_name_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}"
|
matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_name_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}"
|
||||||
matrix_corporal_docker_image_name_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else 'docker.io/' }}"
|
matrix_corporal_docker_image_name_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_corporal_docker_image_tag: "2.1.0"
|
matrix_corporal_docker_image_tag: "{{ matrix_corporal_version }}" # for backward-compatibility
|
||||||
matrix_corporal_docker_image_force_pull: "{{ matrix_corporal_docker_image.endswith(':latest') }}"
|
matrix_corporal_docker_image_force_pull: "{{ matrix_corporal_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_corporal_base_path: "{{ matrix_base_data_path }}/corporal"
|
matrix_corporal_base_path: "{{ matrix_base_data_path }}/corporal"
|
||||||
|
|
|
@ -3,7 +3,8 @@ matrix_coturn_enabled: true
|
||||||
matrix_coturn_container_image_self_build: false
|
matrix_coturn_container_image_self_build: false
|
||||||
matrix_coturn_container_image_self_build_repo: "https://github.com/instrumentisto/coturn-docker-image.git"
|
matrix_coturn_container_image_self_build_repo: "https://github.com/instrumentisto/coturn-docker-image.git"
|
||||||
|
|
||||||
matrix_coturn_docker_image: "{{ matrix_coturn_docker_image_name_prefix }}instrumentisto/coturn:4.5.2"
|
matrix_coturn_version: 4.5.2
|
||||||
|
matrix_coturn_docker_image: "{{ matrix_coturn_docker_image_name_prefix }}instrumentisto/coturn:{{ matrix_coturn_version }}"
|
||||||
matrix_coturn_docker_image_name_prefix: "{{ 'localhost/' if matrix_coturn_container_image_self_build else 'docker.io/' }}"
|
matrix_coturn_docker_image_name_prefix: "{{ 'localhost/' if matrix_coturn_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_coturn_docker_image_force_pull: "{{ matrix_coturn_docker_image.endswith(':latest') }}"
|
matrix_coturn_docker_image_force_pull: "{{ matrix_coturn_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@ Description=Reloads matrix-coturn periodically so that new SSL certificates can
|
||||||
|
|
||||||
[Timer]
|
[Timer]
|
||||||
Unit=matrix-coturn-reload.service
|
Unit=matrix-coturn-reload.service
|
||||||
OnCalendar=Sunday *-*-* 13:00:00
|
OnCalendar=*-*-* 06:30:00
|
||||||
RandomizedDelaySec=3h
|
RandomizedDelaySec=1h
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=timers.target
|
WantedBy=timers.target
|
||||||
|
|
|
@ -12,7 +12,8 @@ matrix_dimension_widgets_allow_self_signed_ssl_certificates: false
|
||||||
|
|
||||||
matrix_dimension_base_path: "{{ matrix_base_data_path }}/dimension"
|
matrix_dimension_base_path: "{{ matrix_base_data_path }}/dimension"
|
||||||
|
|
||||||
matrix_dimension_docker_image: "docker.io/turt2live/matrix-dimension:latest"
|
matrix_dimension_version: latest
|
||||||
|
matrix_dimension_docker_image: "docker.io/turt2live/matrix-dimension:{{ matrix_dimension_version }}"
|
||||||
matrix_dimension_docker_image_force_pull: "{{ matrix_dimension_docker_image.endswith(':latest') }}"
|
matrix_dimension_docker_image_force_pull: "{{ matrix_dimension_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# List of systemd services that matrix-dimension.service depends on.
|
# List of systemd services that matrix-dimension.service depends on.
|
||||||
|
|
|
@ -4,8 +4,10 @@ matrix_dynamic_dns_enabled: true
|
||||||
# The dynamic dns daemon interval
|
# The dynamic dns daemon interval
|
||||||
matrix_dynamic_dns_daemon_interval: '300'
|
matrix_dynamic_dns_daemon_interval: '300'
|
||||||
|
|
||||||
|
matrix_dynamic_dns_version: v3.9.1-ls45
|
||||||
|
|
||||||
# The docker container to use when in mode
|
# The docker container to use when in mode
|
||||||
matrix_dynamic_dns_docker_image: '{{ matrix_dynamic_dns_docker_image_name_prefix }}linuxserver/ddclient:v3.9.1-ls45'
|
matrix_dynamic_dns_docker_image: "{{ matrix_dynamic_dns_docker_image_name_prefix }}linuxserver/ddclient:{{ matrix_dynamic_dns_version }}"
|
||||||
|
|
||||||
matrix_dynamic_dns_docker_image_name_prefix: "{{ 'localhost/' if matrix_dynamic_dns_container_image_self_build else 'docker.io/' }}"
|
matrix_dynamic_dns_docker_image_name_prefix: "{{ 'localhost/' if matrix_dynamic_dns_container_image_self_build else 'docker.io/' }}"
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,8 @@ matrix_email2matrix_enabled: true
|
||||||
matrix_email2matrix_base_path: "{{ matrix_base_data_path }}/email2matrix"
|
matrix_email2matrix_base_path: "{{ matrix_base_data_path }}/email2matrix"
|
||||||
matrix_email2matrix_config_dir_path: "{{ matrix_email2matrix_base_path }}/config"
|
matrix_email2matrix_config_dir_path: "{{ matrix_email2matrix_base_path }}/config"
|
||||||
|
|
||||||
matrix_email2matrix_docker_image: "docker.io/devture/email2matrix:1.0.1"
|
matrix_email2matrix_version: 1.0.1
|
||||||
|
matrix_email2matrix_docker_image: "docker.io/devture/email2matrix:{{ matrix_email2matrix_version }}"
|
||||||
matrix_email2matrix_docker_image_force_pull: "{{ matrix_email2matrix_docker_image.endswith(':latest') }}"
|
matrix_email2matrix_docker_image_force_pull: "{{ matrix_email2matrix_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# A list of extra arguments to pass to the container
|
# A list of extra arguments to pass to the container
|
||||||
|
|
|
@ -2,7 +2,8 @@ matrix_etherpad_enabled: false
|
||||||
|
|
||||||
matrix_etherpad_base_path: "{{ matrix_base_data_path }}/etherpad"
|
matrix_etherpad_base_path: "{{ matrix_base_data_path }}/etherpad"
|
||||||
|
|
||||||
matrix_etherpad_docker_image: "docker.io/etherpad/etherpad:1.8.7"
|
matrix_etherpad_version: 1.8.7
|
||||||
|
matrix_etherpad_docker_image: "docker.io/etherpad/etherpad:{{ matrix_etherpad_version }}"
|
||||||
matrix_etherpad_docker_image_force_pull: "{{ matrix_etherpad_docker_image.endswith(':latest') }}"
|
matrix_etherpad_docker_image_force_pull: "{{ matrix_etherpad_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# List of systemd services that matrix-etherpad.service depends on.
|
# List of systemd services that matrix-etherpad.service depends on.
|
||||||
|
@ -22,12 +23,7 @@ matrix_etherpad_user_gid: '5001'
|
||||||
matrix_etherpad_container_http_host_bind_port: ''
|
matrix_etherpad_container_http_host_bind_port: ''
|
||||||
|
|
||||||
# A list of extra arguments to pass to the container
|
# A list of extra arguments to pass to the container
|
||||||
#
|
matrix_etherpad_container_extra_arguments: []
|
||||||
# We assume that a reverse proxy is used and tell the container to trust it
|
|
||||||
# Details: https://github.com/ether/etherpad-lite/blob/develop/doc/docker.md
|
|
||||||
matrix_etherpad_container_extra_arguments: [
|
|
||||||
'--env TRUST_PROXY=true'
|
|
||||||
]
|
|
||||||
|
|
||||||
matrix_etherpad_public_endpoint: '/etherpad'
|
matrix_etherpad_public_endpoint: '/etherpad'
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_grafana_enabled: false
|
matrix_grafana_enabled: false
|
||||||
|
|
||||||
matrix_grafana_docker_image: "docker.io/grafana/grafana:7.4.0"
|
matrix_grafana_version: 7.4.0
|
||||||
|
matrix_grafana_docker_image: "docker.io/grafana/grafana:{{ matrix_grafana_version }}"
|
||||||
matrix_grafana_docker_image_force_pull: "{{ matrix_grafana_docker_image.endswith(':latest') }}"
|
matrix_grafana_docker_image_force_pull: "{{ matrix_grafana_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# Not conditional, because when someone disables metrics
|
# Not conditional, because when someone disables metrics
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
- "{{ matrix_grafana_config_path }}/dashboards"
|
- "{{ matrix_grafana_config_path }}/dashboards"
|
||||||
- "{{ matrix_grafana_data_path }}"
|
- "{{ matrix_grafana_data_path }}"
|
||||||
when: matrix_grafana_enabled|bool
|
when: matrix_grafana_enabled|bool
|
||||||
|
|
||||||
- name: Ensure grafana.ini present
|
- name: Ensure grafana.ini present
|
||||||
template:
|
template:
|
||||||
src: "{{ role_path }}/templates/grafana.ini.j2"
|
src: "{{ role_path }}/templates/grafana.ini.j2"
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
when: matrix_grafana_enabled|bool
|
when: matrix_grafana_enabled|bool
|
||||||
|
|
||||||
- name: Ensure provisioning/datasources/default.yaml present
|
- name: Ensure provisioning/datasources/default.yaml present
|
||||||
template:
|
template:
|
||||||
src: "{{ role_path }}/templates/datasources.yaml.j2"
|
src: "{{ role_path }}/templates/datasources.yaml.j2"
|
||||||
|
@ -46,7 +46,7 @@
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
when: matrix_grafana_enabled|bool
|
when: matrix_grafana_enabled|bool
|
||||||
|
|
||||||
- name: Ensure provisioning/dashboards/default.yaml present
|
- name: Ensure provisioning/dashboards/default.yaml present
|
||||||
template:
|
template:
|
||||||
src: "{{ role_path }}/templates/dashboards.yaml.j2"
|
src: "{{ role_path }}/templates/dashboards.yaml.j2"
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
when: matrix_grafana_enabled|bool
|
when: matrix_grafana_enabled|bool
|
||||||
|
|
||||||
- name: Ensure dashboard(s) downloaded
|
- name: Ensure dashboard(s) downloaded
|
||||||
get_url:
|
get_url:
|
||||||
url: "{{ item }}"
|
url: "{{ item }}"
|
||||||
|
@ -108,8 +108,3 @@
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-grafana Docker image doesn't exist
|
|
||||||
docker_image:
|
|
||||||
name: "{{ matrix_grafana_docker_image }}"
|
|
||||||
state: absent
|
|
||||||
when: "not matrix_grafana_enabled|bool"
|
|
||||||
|
|
|
@ -52,7 +52,8 @@ matrix_jitsi_jibri_recorder_password: ''
|
||||||
|
|
||||||
matrix_jitsi_enable_lobby: false
|
matrix_jitsi_enable_lobby: false
|
||||||
|
|
||||||
matrix_jitsi_container_image_tag: "stable-5142"
|
matrix_jitsi_version: stable-5142
|
||||||
|
matrix_jitsi_container_image_tag: "{{ matrix_jitsi_version }}" # for backward-compatibility
|
||||||
|
|
||||||
matrix_jitsi_web_docker_image: "docker.io/jitsi/web:{{ matrix_jitsi_container_image_tag }}"
|
matrix_jitsi_web_docker_image: "docker.io/jitsi/web:{{ matrix_jitsi_container_image_tag }}"
|
||||||
matrix_jitsi_web_docker_image_force_pull: "{{ matrix_jitsi_web_docker_image.endswith(':latest') }}"
|
matrix_jitsi_web_docker_image_force_pull: "{{ matrix_jitsi_web_docker_image.endswith(':latest') }}"
|
||||||
|
|
|
@ -7,7 +7,8 @@ matrix_mailer_container_image_self_build_repository_url: "https://github.com/dev
|
||||||
matrix_mailer_container_image_self_build_src_files_path: "{{ matrix_mailer_base_path }}/docker-src"
|
matrix_mailer_container_image_self_build_src_files_path: "{{ matrix_mailer_base_path }}/docker-src"
|
||||||
matrix_mailer_container_image_self_build_version: "{{ matrix_mailer_docker_image.split(':')[1] }}"
|
matrix_mailer_container_image_self_build_version: "{{ matrix_mailer_docker_image.split(':')[1] }}"
|
||||||
|
|
||||||
matrix_mailer_docker_image: "{{ matrix_mailer_docker_image_name_prefix }}devture/exim-relay:4.93-r1"
|
matrix_mailer_version: 4.93-r1
|
||||||
|
matrix_mailer_docker_image: "{{ matrix_mailer_docker_image_name_prefix }}devture/exim-relay:{{ matrix_mailer_version }}"
|
||||||
matrix_mailer_docker_image_name_prefix: "{{ 'localhost/' if matrix_mailer_container_image_self_build else 'docker.io/' }}"
|
matrix_mailer_docker_image_name_prefix: "{{ 'localhost/' if matrix_mailer_container_image_self_build else 'docker.io/' }}"
|
||||||
matrix_mailer_docker_image_force_pull: "{{ matrix_mailer_docker_image.endswith(':latest') }}"
|
matrix_mailer_docker_image_force_pull: "{{ matrix_mailer_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
matrix_nginx_proxy_enabled: true
|
matrix_nginx_proxy_enabled: true
|
||||||
|
matrix_nginx_proxy_version: 1.19.6-alpine
|
||||||
|
|
||||||
# We use an official nginx image, which we fix-up to run unprivileged.
|
# We use an official nginx image, which we fix-up to run unprivileged.
|
||||||
# An alternative would be an `nginxinc/nginx-unprivileged` image, but
|
# An alternative would be an `nginxinc/nginx-unprivileged` image, but
|
||||||
# that is frequently out of date.
|
# that is frequently out of date.
|
||||||
matrix_nginx_proxy_docker_image: "docker.io/nginx:1.19.6-alpine"
|
matrix_nginx_proxy_docker_image: "docker.io/nginx:{{ matrix_nginx_proxy_version }}"
|
||||||
matrix_nginx_proxy_docker_image_force_pull: "{{ matrix_nginx_proxy_docker_image.endswith(':latest') }}"
|
matrix_nginx_proxy_docker_image_force_pull: "{{ matrix_nginx_proxy_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_nginx_proxy_base_path: "{{ matrix_base_data_path }}/nginx-proxy"
|
matrix_nginx_proxy_base_path: "{{ matrix_base_data_path }}/nginx-proxy"
|
||||||
matrix_nginx_proxy_data_path: "{{ matrix_nginx_proxy_base_path }}/data"
|
matrix_nginx_proxy_data_path: "{{ matrix_nginx_proxy_base_path }}/data"
|
||||||
|
matrix_nginx_proxy_data_path_in_container: "/nginx-data"
|
||||||
matrix_nginx_proxy_confd_path: "{{ matrix_nginx_proxy_base_path }}/conf.d"
|
matrix_nginx_proxy_confd_path: "{{ matrix_nginx_proxy_base_path }}/conf.d"
|
||||||
|
|
||||||
# List of systemd services that matrix-nginx-proxy.service depends on
|
# List of systemd services that matrix-nginx-proxy.service depends on
|
||||||
|
@ -110,6 +112,10 @@ matrix_nginx_proxy_proxy_element_hostname: "{{ matrix_server_fqn_element }}"
|
||||||
# Controls whether proxying the matrix domain should be done.
|
# Controls whether proxying the matrix domain should be done.
|
||||||
matrix_nginx_proxy_proxy_matrix_enabled: false
|
matrix_nginx_proxy_proxy_matrix_enabled: false
|
||||||
matrix_nginx_proxy_proxy_matrix_hostname: "{{ matrix_server_fqn_matrix }}"
|
matrix_nginx_proxy_proxy_matrix_hostname: "{{ matrix_server_fqn_matrix }}"
|
||||||
|
# The port name used for federation in the nginx configuration.
|
||||||
|
# This is not necessarily the port that it's actually on,
|
||||||
|
# as port-mapping happens (`-p ..`) for the `matrix-nginx-proxy` container.
|
||||||
|
matrix_nginx_proxy_proxy_matrix_federation_port: 8448
|
||||||
|
|
||||||
# Controls whether proxying the dimension domain should be done.
|
# Controls whether proxying the dimension domain should be done.
|
||||||
matrix_nginx_proxy_proxy_dimension_enabled: false
|
matrix_nginx_proxy_proxy_dimension_enabled: false
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
- "{{ matrix_cron_path }}/matrix-ssl-certificate-renewal"
|
- "{{ matrix_cron_path }}/matrix-ssl-certificate-renewal"
|
||||||
- "{{ matrix_cron_path }}/matrix-nginx-proxy-periodic-restarter"
|
- "{{ matrix_cron_path }}/matrix-nginx-proxy-periodic-restarter"
|
||||||
- "/etc/cron.d/matrix-ssl-lets-encrypt"
|
- "/etc/cron.d/matrix-ssl-lets-encrypt"
|
||||||
- "{{ matrix_local_bin_path }}/matrix-ssl-lets-encrypt-certificates-renew"
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tasks related to setting up Let's Encrypt's management of certificates
|
# Tasks related to setting up Let's Encrypt's management of certificates
|
||||||
|
|
|
@ -199,10 +199,10 @@ server {
|
||||||
#}
|
#}
|
||||||
server {
|
server {
|
||||||
{% if matrix_nginx_proxy_https_enabled %}
|
{% if matrix_nginx_proxy_https_enabled %}
|
||||||
listen 8448 ssl http2;
|
listen {{ matrix_nginx_proxy_proxy_matrix_federation_port }} ssl http2;
|
||||||
listen [::]:8448 ssl http2;
|
listen [::]:{{ matrix_nginx_proxy_proxy_matrix_federation_port }} ssl http2;
|
||||||
{% else %}
|
{% else %}
|
||||||
listen 8448;
|
listen {{ matrix_nginx_proxy_proxy_matrix_federation_port }};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
server_name {{ matrix_nginx_proxy_proxy_matrix_hostname }};
|
server_name {{ matrix_nginx_proxy_proxy_matrix_hostname }};
|
||||||
|
|
|
@ -30,15 +30,10 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-nginx-proxy \
|
||||||
-p {{ matrix_nginx_proxy_container_https_host_bind_port }}:8443 \
|
-p {{ matrix_nginx_proxy_container_https_host_bind_port }}:8443 \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if matrix_nginx_proxy_proxy_matrix_federation_api_enabled and matrix_nginx_proxy_container_federation_host_bind_port %}
|
{% if matrix_nginx_proxy_proxy_matrix_federation_api_enabled and matrix_nginx_proxy_container_federation_host_bind_port %}
|
||||||
-p {{ matrix_nginx_proxy_container_federation_host_bind_port }}:8448 \
|
-p {{ matrix_nginx_proxy_container_federation_host_bind_port }}:{{ matrix_nginx_proxy_proxy_matrix_federation_port }} \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
--mount type=bind,src={{ matrix_nginx_proxy_base_path }}/nginx.conf,dst=/etc/nginx/nginx.conf,ro \
|
--mount type=bind,src={{ matrix_nginx_proxy_base_path }}/nginx.conf,dst=/etc/nginx/nginx.conf,ro \
|
||||||
{% if matrix_awx_enabled|bool == false or matrix_nginx_proxy_base_domain_homepage_enabled %}
|
--mount type=bind,src={{ matrix_nginx_proxy_data_path }},dst={{ matrix_nginx_proxy_data_path_in_container }},ro \
|
||||||
--mount type=bind,src={{ matrix_nginx_proxy_data_path }},dst=/nginx-data,ro \
|
|
||||||
{% endif %}
|
|
||||||
{% if matrix_awx_enabled and matrix_nginx_proxy_base_domain_homepage_enabled|bool == false %}
|
|
||||||
--mount type=bind,src=/chroot/website,dst=/nginx-data/matrix-domain,ro \
|
|
||||||
{% endif %}
|
|
||||||
--mount type=bind,src={{ matrix_nginx_proxy_confd_path }},dst=/etc/nginx/conf.d,ro \
|
--mount type=bind,src={{ matrix_nginx_proxy_confd_path }},dst=/etc/nginx/conf.d,ro \
|
||||||
{% if matrix_ssl_retrieval_method != 'none' %}
|
{% if matrix_ssl_retrieval_method != 'none' %}
|
||||||
--mount type=bind,src={{ matrix_ssl_config_dir_path }},dst={{ matrix_ssl_config_dir_path }},ro \
|
--mount type=bind,src={{ matrix_ssl_config_dir_path }},dst={{ matrix_ssl_config_dir_path }},ro \
|
||||||
|
|
|
@ -3,8 +3,8 @@ Description=Renews Let's Encrypt SSL certificates periodically
|
||||||
|
|
||||||
[Timer]
|
[Timer]
|
||||||
Unit=matrix-ssl-lets-encrypt-certificates-renew.service
|
Unit=matrix-ssl-lets-encrypt-certificates-renew.service
|
||||||
OnCalendar=Sunday *-*-* 05:00:00
|
OnCalendar=*-*-* 04:00:00
|
||||||
RandomizedDelaySec=3h
|
RandomizedDelaySec=2h
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=timers.target
|
WantedBy=timers.target
|
||||||
|
|
|
@ -3,8 +3,8 @@ Description=Reloads matrix-nginx-proxy periodically so that new SSL certificates
|
||||||
|
|
||||||
[Timer]
|
[Timer]
|
||||||
Unit=matrix-ssl-nginx-proxy-reload.service
|
Unit=matrix-ssl-nginx-proxy-reload.service
|
||||||
OnCalendar=Sunday *-*-* 13:00:00
|
OnCalendar=*-*-* 06:30:00
|
||||||
RandomizedDelaySec=3h
|
RandomizedDelaySec=1h
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=timers.target
|
WantedBy=timers.target
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_prometheus_node_exporter_enabled: false
|
matrix_prometheus_node_exporter_enabled: false
|
||||||
|
|
||||||
matrix_prometheus_node_exporter_docker_image: "docker.io/prom/node-exporter:v1.1.0"
|
matrix_prometheus_node_exporter_version: v1.1.0
|
||||||
|
matrix_prometheus_node_exporter_docker_image: "docker.io/prom/node-exporter:{{ matrix_prometheus_node_exporter_version }}"
|
||||||
matrix_prometheus_node_exporter_docker_image_force_pull: "{{ matrix_prometheus_node_exporter_docker_image.endswith(':latest') }}"
|
matrix_prometheus_node_exporter_docker_image_force_pull: "{{ matrix_prometheus_node_exporter_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
# A list of extra arguments to pass to the container
|
# A list of extra arguments to pass to the container
|
||||||
|
|
|
@ -52,9 +52,3 @@
|
||||||
service:
|
service:
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "not matrix_prometheus_node_exporter_enabled|bool and matrix_prometheus_node_exporter_service_stat.stat.exists"
|
when: "not matrix_prometheus_node_exporter_enabled|bool and matrix_prometheus_node_exporter_service_stat.stat.exists"
|
||||||
|
|
||||||
- name: Ensure matrix-prometheus-node-exporter Docker image doesn't exist
|
|
||||||
docker_image:
|
|
||||||
name: "{{ matrix_prometheus_node_exporter_docker_image }}"
|
|
||||||
state: absent
|
|
||||||
when: "not matrix_prometheus_node_exporter_enabled|bool"
|
|
||||||
|
|
|
@ -3,7 +3,8 @@
|
||||||
|
|
||||||
matrix_prometheus_enabled: false
|
matrix_prometheus_enabled: false
|
||||||
|
|
||||||
matrix_prometheus_docker_image: "docker.io/prom/prometheus:v2.24.1"
|
matrix_prometheus_version: v2.24.1
|
||||||
|
matrix_prometheus_docker_image: "docker.io/prom/prometheus:{{ matrix_prometheus_version }}"
|
||||||
matrix_prometheus_docker_image_force_pull: "{{ matrix_prometheus_docker_image.endswith(':latest') }}"
|
matrix_prometheus_docker_image_force_pull: "{{ matrix_prometheus_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_prometheus_base_path: "{{ matrix_base_data_path }}/prometheus"
|
matrix_prometheus_base_path: "{{ matrix_base_data_path }}/prometheus"
|
||||||
|
|
|
@ -23,9 +23,3 @@
|
||||||
service:
|
service:
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_prometheus_service_stat.stat.exists|bool"
|
when: "matrix_prometheus_service_stat.stat.exists|bool"
|
||||||
|
|
||||||
- name: Ensure matrix-prometheus Docker image doesn't exist
|
|
||||||
docker_image:
|
|
||||||
name: "{{ matrix_prometheus_docker_image }}"
|
|
||||||
state: absent
|
|
||||||
when: "not matrix_prometheus_enabled|bool"
|
|
||||||
|
|
|
@ -5,7 +5,8 @@ matrix_redis_connection_password: ""
|
||||||
matrix_redis_base_path: "{{ matrix_base_data_path }}/redis"
|
matrix_redis_base_path: "{{ matrix_base_data_path }}/redis"
|
||||||
matrix_redis_data_path: "{{ matrix_redis_base_path }}/data"
|
matrix_redis_data_path: "{{ matrix_redis_base_path }}/data"
|
||||||
|
|
||||||
matrix_redis_docker_image_v6: "docker.io/redis:6.0.10-alpine"
|
matrix_redis_version: 6.0.10-alpine
|
||||||
|
matrix_redis_docker_image_v6: "docker.io/redis:{{ matrix_redis_version }}"
|
||||||
matrix_redis_docker_image_latest: "{{ matrix_redis_docker_image_v6 }}"
|
matrix_redis_docker_image_latest: "{{ matrix_redis_docker_image_v6 }}"
|
||||||
matrix_redis_docker_image_to_use: '{{ matrix_redis_docker_image_latest }}'
|
matrix_redis_docker_image_to_use: '{{ matrix_redis_docker_image_latest }}'
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,8 @@ matrix_synapse_admin_container_self_build_repo: "https://github.com/Awesome-Tech
|
||||||
|
|
||||||
matrix_synapse_admin_docker_src_files_path: "{{ matrix_base_data_path }}/synapse-admin/docker-src"
|
matrix_synapse_admin_docker_src_files_path: "{{ matrix_base_data_path }}/synapse-admin/docker-src"
|
||||||
|
|
||||||
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:0.7.0"
|
matrix_synapse_admin_version: 0.7.0
|
||||||
|
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_name_prefix }}awesometechnologies/synapse-admin:{{ matrix_synapse_admin_version }}"
|
||||||
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_self_build else 'docker.io/' }}"
|
matrix_synapse_admin_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_self_build else 'docker.io/' }}"
|
||||||
matrix_synapse_admin_docker_image_force_pull: "{{ matrix_synapse_admin_docker_image.endswith(':latest') }}"
|
matrix_synapse_admin_docker_image_force_pull: "{{ matrix_synapse_admin_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,9 @@ matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_cont
|
||||||
# amd64 gets released first.
|
# amd64 gets released first.
|
||||||
# arm32 relies on self-building, so the same version can be built immediately.
|
# 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.
|
# arm64 users need to wait for a prebuilt image to become available.
|
||||||
matrix_synapse_docker_image_tag: "{{ 'v1.27.0' if matrix_architecture in ['arm32', 'amd64'] else 'v1.26.0' }}"
|
matrix_synapse_version: v1.28.0
|
||||||
|
matrix_synapse_version_arm64: v1.28.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') }}"
|
matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_synapse_base_path: "{{ matrix_base_data_path }}/synapse"
|
matrix_synapse_base_path: "{{ matrix_base_data_path }}/synapse"
|
||||||
|
|
|
@ -141,6 +141,7 @@ default_room_version: {{ matrix_synapse_default_room_version|to_json }}
|
||||||
# - '100.64.0.0/10'
|
# - '100.64.0.0/10'
|
||||||
# - '192.0.0.0/24'
|
# - '192.0.0.0/24'
|
||||||
# - '169.254.0.0/16'
|
# - '169.254.0.0/16'
|
||||||
|
# - '192.88.99.0/24'
|
||||||
# - '198.18.0.0/15'
|
# - '198.18.0.0/15'
|
||||||
# - '192.0.2.0/24'
|
# - '192.0.2.0/24'
|
||||||
# - '198.51.100.0/24'
|
# - '198.51.100.0/24'
|
||||||
|
@ -149,6 +150,9 @@ default_room_version: {{ matrix_synapse_default_room_version|to_json }}
|
||||||
# - '::1/128'
|
# - '::1/128'
|
||||||
# - 'fe80::/10'
|
# - 'fe80::/10'
|
||||||
# - 'fc00::/7'
|
# - 'fc00::/7'
|
||||||
|
# - '2001:db8::/32'
|
||||||
|
# - 'ff00::/8'
|
||||||
|
# - 'fec0::/10'
|
||||||
|
|
||||||
# List of IP address CIDR ranges that should be allowed for federation,
|
# List of IP address CIDR ranges that should be allowed for federation,
|
||||||
# identity servers, push servers, and for checking key validity for
|
# identity servers, push servers, and for checking key validity for
|
||||||
|
@ -993,6 +997,7 @@ url_preview_ip_range_blacklist:
|
||||||
- '100.64.0.0/10'
|
- '100.64.0.0/10'
|
||||||
- '192.0.0.0/24'
|
- '192.0.0.0/24'
|
||||||
- '169.254.0.0/16'
|
- '169.254.0.0/16'
|
||||||
|
- '192.88.99.0/24'
|
||||||
- '198.18.0.0/15'
|
- '198.18.0.0/15'
|
||||||
- '192.0.2.0/24'
|
- '192.0.2.0/24'
|
||||||
- '198.51.100.0/24'
|
- '198.51.100.0/24'
|
||||||
|
@ -1001,6 +1006,9 @@ url_preview_ip_range_blacklist:
|
||||||
- '::1/128'
|
- '::1/128'
|
||||||
- 'fe80::/10'
|
- 'fe80::/10'
|
||||||
- 'fc00::/7'
|
- 'fc00::/7'
|
||||||
|
- '2001:db8::/32'
|
||||||
|
- 'ff00::/8'
|
||||||
|
- 'fec0::/10'
|
||||||
|
|
||||||
# List of IP address CIDR ranges that the URL preview spider is allowed
|
# List of IP address CIDR ranges that the URL preview spider is allowed
|
||||||
# to access even if they are specified in url_preview_ip_range_blacklist.
|
# to access even if they are specified in url_preview_ip_range_blacklist.
|
||||||
|
@ -1327,6 +1335,8 @@ account_threepid_delegates:
|
||||||
# By default, any room aliases included in this list will be created
|
# By default, any room aliases included in this list will be created
|
||||||
# as a publicly joinable room when the first user registers for the
|
# as a publicly joinable room when the first user registers for the
|
||||||
# homeserver. This behaviour can be customised with the settings below.
|
# homeserver. This behaviour can be customised with the settings below.
|
||||||
|
# If the room already exists, make certain it is a publicly joinable
|
||||||
|
# room. The join rule of the room must be set to 'public'.
|
||||||
#
|
#
|
||||||
#auto_join_rooms:
|
#auto_join_rooms:
|
||||||
# - "#example:example.com"
|
# - "#example:example.com"
|
||||||
|
@ -1869,9 +1879,9 @@ oidc_providers:
|
||||||
# user_mapping_provider:
|
# user_mapping_provider:
|
||||||
# config:
|
# config:
|
||||||
# subject_claim: "id"
|
# subject_claim: "id"
|
||||||
# localpart_template: "{ user.login }"
|
# localpart_template: "{% raw %}{{ user.login }}{% endraw %}"
|
||||||
# display_name_template: "{ user.name }"
|
# display_name_template: "{% raw %}{{ user.name }}{% endraw %}"
|
||||||
# email_template: "{ user.email }"
|
# email_template: "{% raw %}{{ user.email }}{% endraw %}"
|
||||||
|
|
||||||
# For use with Keycloak
|
# For use with Keycloak
|
||||||
#
|
#
|
||||||
|
@ -1898,8 +1908,8 @@ oidc_providers:
|
||||||
# user_mapping_provider:
|
# user_mapping_provider:
|
||||||
# config:
|
# config:
|
||||||
# subject_claim: "id"
|
# subject_claim: "id"
|
||||||
# localpart_template: "{ user.login }"
|
# localpart_template: "{% raw %}{{ user.login }}{% endraw %}"
|
||||||
# display_name_template: "{ user.name }"
|
# display_name_template: "{% raw %}{{ user.name }}{% endraw %}"
|
||||||
|
|
||||||
|
|
||||||
# Enable Central Authentication Service (CAS) for registration and login.
|
# Enable Central Authentication Service (CAS) for registration and login.
|
||||||
|
@ -2227,11 +2237,11 @@ password_config:
|
||||||
#require_uppercase: true
|
#require_uppercase: true
|
||||||
|
|
||||||
ui_auth:
|
ui_auth:
|
||||||
# The number of milliseconds to allow a user-interactive authentication
|
# The amount of time to allow a user-interactive authentication session
|
||||||
# session to be active.
|
# to be active.
|
||||||
#
|
#
|
||||||
# This defaults to 0, meaning the user is queried for their credentials
|
# This defaults to 0, meaning the user is queried for their credentials
|
||||||
# before every action, but this can be overridden to alow a single
|
# before every action, but this can be overridden to allow a single
|
||||||
# validation to be re-used. This weakens the protections afforded by
|
# validation to be re-used. This weakens the protections afforded by
|
||||||
# the user-interactive authentication process, by allowing for multiple
|
# the user-interactive authentication process, by allowing for multiple
|
||||||
# (and potentially different) operations to use the same validation session.
|
# (and potentially different) operations to use the same validation session.
|
||||||
|
@ -2239,7 +2249,7 @@ ui_auth:
|
||||||
# Uncomment below to allow for credential validation to last for 15
|
# Uncomment below to allow for credential validation to last for 15
|
||||||
# seconds.
|
# seconds.
|
||||||
#
|
#
|
||||||
#session_timeout: 15000
|
#session_timeout: "15s"
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_synapse_email_enabled %}
|
{% if matrix_synapse_email_enabled %}
|
||||||
|
|
|
@ -22,6 +22,11 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name {{ matrix_synapse_wor
|
||||||
--read-only \
|
--read-only \
|
||||||
--tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_synapse_tmp_directory_size_mb }}m \
|
--tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_synapse_tmp_directory_size_mb }}m \
|
||||||
--network={{ matrix_docker_network }} \
|
--network={{ matrix_docker_network }} \
|
||||||
|
{% if matrix_synapse_worker_details.port != 0 %}
|
||||||
|
--health-cmd 'curl -fSs http://localhost:{{ matrix_synapse_worker_details.port }}/health || exit 1' \
|
||||||
|
{% else %}
|
||||||
|
--no-healthcheck \
|
||||||
|
{% endif %}
|
||||||
{% if matrix_synapse_workers_enabled and matrix_synapse_workers_container_host_bind_address %}
|
{% if matrix_synapse_workers_enabled and matrix_synapse_workers_container_host_bind_address %}
|
||||||
{% if matrix_synapse_worker_details.port != 0 %}
|
{% if matrix_synapse_worker_details.port != 0 %}
|
||||||
-p {{ '' if matrix_synapse_workers_container_host_bind_address == '*' else (matrix_synapse_workers_container_host_bind_address + ':') }}{{ matrix_synapse_worker_details.port }}:{{ matrix_synapse_worker_details.port }} \
|
-p {{ '' if matrix_synapse_workers_container_host_bind_address == '*' else (matrix_synapse_workers_container_host_bind_address + ':') }}{{ matrix_synapse_worker_details.port }}:{{ matrix_synapse_worker_details.port }} \
|
||||||
|
|
|
@ -107,7 +107,8 @@ matrix_synapse_workers_generic_worker_endpoints:
|
||||||
|
|
||||||
# Ensure that all SSO logins go to a single process.
|
# Ensure that all SSO logins go to a single process.
|
||||||
# For multiple workers not handling the SSO endpoints properly, see
|
# For multiple workers not handling the SSO endpoints properly, see
|
||||||
# [#7530](https://github.com/matrix-org/synapse/issues/7530).
|
# [#7530](https://github.com/matrix-org/synapse/issues/7530) and
|
||||||
|
# [#9427](https://github.com/matrix-org/synapse/issues/9427).
|
||||||
|
|
||||||
# Note that a HTTP listener with `client` and `federation` resources must be
|
# Note that a HTTP listener with `client` and `federation` resources must be
|
||||||
# configured in the `worker_listeners` option in the worker config.
|
# configured in the `worker_listeners` option in the worker config.
|
||||||
|
@ -203,7 +204,15 @@ matrix_synapse_workers_generic_worker_endpoints:
|
||||||
# REST endpoints itself, but you should set `start_pushers: False` in the
|
# REST endpoints itself, but you should set `start_pushers: False` in the
|
||||||
# shared configuration file to stop the main synapse sending push notifications.
|
# shared configuration file to stop the main synapse sending push notifications.
|
||||||
|
|
||||||
# Note this worker cannot be load-balanced: only one instance should be active.
|
# To run multiple instances at once the `pusher_instances` option should list all
|
||||||
|
# pusher instances by their worker name, e.g.:
|
||||||
|
|
||||||
|
# ```yaml
|
||||||
|
# pusher_instances:
|
||||||
|
# - pusher_worker1
|
||||||
|
# - pusher_worker2
|
||||||
|
# ```
|
||||||
|
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
# appservice worker (no API endpoints) [
|
# appservice worker (no API endpoints) [
|
||||||
|
|
Loading…
Reference in a new issue