| @@ -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 \ | |||||
| --rm \ | |||||
| --log-driver=none \ | |||||
| --network=matrix \ | |||||
| /usr/bin/docker exec \ | |||||
| --env-file=/matrix/postgres/env-postgres-psql \ | --env-file=/matrix/postgres/env-postgres-psql \ | ||||
| docker.io/postgres:13.1-alpine \ | |||||
| pg_dumpall -h matrix-postgres \ | |||||
| 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 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. | |||||
| 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. | |||||
| 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" | |||||
| } | |||||
| ] | |||||
| } | |||||
| @@ -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' | |||||
| dest: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/configure_website_access_backup.json' | |||||
| src: './roles/matrix-awx/surveys/configure_website_access_export.json.j2' | |||||
| 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' | |||||
| dest: '/matrix/awx/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_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" | |||||
| description: "Configure base domain website settings and access the services backup." | |||||
| name: "{{ matrix_domain }} - 1 - Configure Website + Access Export" | |||||
| 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 | group: sftp | ||||
| password: "{{ sftp_password | password_hash('sha512') }}" | |||||
| password: '*' | |||||
| 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: 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 | |||||
| password: "{{ sftp_password | password_hash('sha512') }}" | |||||
| update_password: always | |||||
| when: sftp_password|length > 0 | |||||
| - 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 | |||||
| service: | |||||
| name: ssh_sftp.service | |||||
| enabled: yes | |||||
| - name: Ensure /home/sftp/.ssh location exists | |||||
| file: | |||||
| path: /home/sftp/.ssh | |||||
| state: directory | |||||
| owner: sftp | |||||
| group: sftp | |||||
| mode: '0700' | |||||
| - name: Ensure /home/sftp/authorized_keys exists | |||||
| file: | |||||
| path: /home/sftp/.ssh/authorized_keys | |||||
| state: touch | |||||
| owner: sftp | |||||
| group: sftp | |||||
| mode: '0644' | |||||
| - name: Clear authorized_keys file | |||||
| shell: echo "" > /home/sftp/.ssh/authorized_keys | |||||
| - name: Start service ssh_sftp.service | |||||
| - 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: | service: | ||||
| name: ssh_sftp.service | |||||
| state: started | |||||
| 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 | |||||
| - import_tasks: "{{ role_path }}/tasks/customise_website_access_backup.yml" | |||||
| # Configure SFTP so user can upload a static website or access the servers export | |||||
| - 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_docker_image: "docker.io/anoa/matrix-reminder-bot:release-v0.2.0" | |||||
| matrix_bot_matrix_reminder_bot_version: 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 | |||||
| RandomizedDelaySec=3h | |||||
| OnCalendar=*-*-* 06:30:00 | |||||
| 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 | ||||
| # | |||||
| # 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_container_extra_arguments: [] | |||||
| 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 [::]:8448 ssl http2; | |||||
| listen {{ matrix_nginx_proxy_proxy_matrix_federation_port }} 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=/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_data_path }},dst={{ matrix_nginx_proxy_data_path_in_container }},ro \ | |||||
| --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 | |||||
| RandomizedDelaySec=3h | |||||
| OnCalendar=*-*-* 04:00:00 | |||||
| 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 | |||||
| RandomizedDelaySec=3h | |||||
| OnCalendar=*-*-* 06:30:00 | |||||
| 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 }" | |||||
| # display_name_template: "{ user.name }" | |||||
| # email_template: "{ user.email }" | |||||
| # localpart_template: "{% raw %}{{ user.login }}{% endraw %}" | |||||
| # display_name_template: "{% raw %}{{ user.name }}{% endraw %}" | |||||
| # 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 }" | |||||
| # display_name_template: "{ user.name }" | |||||
| # localpart_template: "{% raw %}{{ user.login }}{% endraw %}" | |||||
| # 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 | |||||
| # session to be active. | |||||
| # The amount of time to allow a user-interactive authentication session | |||||
| # 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) [ | ||||