diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..6d5dc09a1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,27 @@ +# This file is the top-most EditorConfig file +root = true + +# All Files +[*] +charset = utf-8 +end_of_line = lf +indent_style = tab +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +######################### +# File Extension Settings +######################### + +# YAML Files +[*.{yml,yaml,log.config.j2,yaml.j2}] +indent_style = space +indent_size = 2 + +# Markdown Files +# +# Two spaces at the end of a line in Markdown mean "new line", +# so trimming trailing whitespace for such files can cause breakage. +[*.md] +trim_trailing_whitespace = false diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 000000000..6e7102bf7 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,6 @@ +# These are supported funding model platforms + +# https://liberapay.com/s.pantaleev/ +liberapay: s.pantaleev +# https://ko-fi.com/spantaleev +ko_fi: spantaleev diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..36c65bdaa --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/inventory/* +!/inventory/.gitkeep +!/inventory/host_vars/.gitkeep +!/inventory/scripts +/roles/*/files/scratchpad +.DS_Store +.python-version diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index a4e00d41b..c9387bc4c 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -42,7 +42,11 @@ matrix_awx_enabled: false 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_nginx_proxy_data_path_extension: "{{ '' if (matrix_awx_enabled and not matrix_nginx_proxy_base_domain_homepage_enabled) else '/matrix-domain' }}" +<<<<<<< HEAD matrix_nginx_proxy_base_domain_create_directory: "{{ false if matrix_awx_enabled else true }}" +======= +matrix_nginx_proxy_base_domain_create_directory: "{{ not matrix_awx_enabled }}" +>>>>>>> upstream/master ###################################################################### # diff --git a/roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2 b/roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2 index ca5060a70..229de2e38 100644 --- a/roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2 +++ b/roles/matrix-bridge-mautrix-signal/templates/config.yaml.j2 @@ -9,6 +9,15 @@ homeserver: # Only applies if address starts with https:// verify_ssl: true asmux: false +<<<<<<< HEAD +======= + # Number of retries for all HTTP requests if the homeserver isn't reachable. + http_retry_count: 4 + # The URL to push real-time bridge status to. + # If set, the bridge will make POST requests to this URL whenever a user's Signal connection state changes. + # The bridge will use the appservice as_token to authorize requests. + status_endpoint: null +>>>>>>> upstream/master # Application service host/registration related details # Changing these values requires regeneration of the registration. @@ -80,6 +89,12 @@ signal: avatar_dir: /signald/avatars # Directory where signald stores auth data. Used to delete data when logging out. data_dir: /signald/data +<<<<<<< HEAD +======= + # Whether or not unknown signald accounts should be deleted when the bridge is started. + # When this is enabled, any UserInUse errors should be resolved by restarting the bridge. + delete_unknown_accounts_on_start: false +>>>>>>> upstream/master # Whether or not message attachments should be removed from disk after they're bridged. remove_file_after_handling: true @@ -164,12 +179,21 @@ bridge: # This field will automatically be changed back to false after it, # except if the config file is not writable. resend_bridge_info: false +<<<<<<< HEAD +======= + # Interval at which to resync contacts. + periodic_sync: 0 +>>>>>>> upstream/master # The prefix for commands. Only required in non-management rooms. command_prefix: "!signal" # Permissions for using the bridge. # Permitted values: +<<<<<<< HEAD +======= + # relay - Allowed to be relayed through the bridge, no access to commands. +>>>>>>> upstream/master # user - Use the bridge with puppeting. # admin - Use and administrate the bridge. # Permitted keys: @@ -177,8 +201,35 @@ bridge: # domain - All users on that homeserver # mxid - Specific user permissions: +<<<<<<< HEAD '{{ matrix_mautrix_signal_homeserver_domain }}': user +======= + '{{ matrix_mautrix_signal_homeserver_domain }}': relay + '{{ matrix_mautrix_signal_homeserver_domain }}': user + + relay: + # Whether or not relay mode should be allowed. If allowed, `!signal set-relay` can be used to turn any + # authenticated user into a relaybot for that chat. + enabled: true + # The formats to use when sending messages to Signal via a relay user. + # + # Available variables: + # $sender_displayname - The display name of the sender (e.g. Example User) + # $sender_username - The username (Matrix ID localpart) of the sender (e.g. exampleuser) + # $sender_mxid - The Matrix ID of the sender (e.g. @exampleuser:example.com) + # $message - The message content + message_formats: + m.text: '$sender_displayname: $message' + m.notice: '$sender_displayname: $message' + m.emote: '* $sender_displayname $message' + m.file: '$sender_displayname sent a file' + m.image: '$sender_displayname sent an image' + m.audio: '$sender_displayname sent an audio file' + m.video: '$sender_displayname sent a video' + m.location: '$sender_displayname sent a location' + +>>>>>>> upstream/master # Python logging configuration. # diff --git a/roles/matrix-client-element/defaults/main.yml b/roles/matrix-client-element/defaults/main.yml index dd649ffdf..8600dd21b 100644 --- a/roles/matrix-client-element/defaults/main.yml +++ b/roles/matrix-client-element/defaults/main.yml @@ -3,7 +3,11 @@ matrix_client_element_enabled: true matrix_client_element_container_image_self_build: false matrix_client_element_container_image_self_build_repo: "https://github.com/vector-im/riot-web.git" +<<<<<<< HEAD matrix_client_element_version: v1.7.34 +======= +matrix_client_element_version: v1.8.0 +>>>>>>> upstream/master matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}" matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}" matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}" diff --git a/roles/matrix-synapse/defaults/main.yml b/roles/matrix-synapse/defaults/main.yml index 628ea431f..1312e05e3 100644 --- a/roles/matrix-synapse/defaults/main.yml +++ b/roles/matrix-synapse/defaults/main.yml @@ -15,8 +15,13 @@ matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_cont # amd64 gets released first. # arm32 relies on self-building, so the same version can be built immediately. # arm64 users need to wait for a prebuilt image to become available. +<<<<<<< HEAD matrix_synapse_version: v1.39.0 matrix_synapse_version_arm64: v1.39.0 +======= +matrix_synapse_version: v1.40.0 +matrix_synapse_version_arm64: v1.40.0 +>>>>>>> upstream/master 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') }}" @@ -453,6 +458,10 @@ matrix_synapse_replication_http_port: 9093 matrix_synapse_sentry_dsn: "" # Postgres database information +<<<<<<< HEAD +======= +matrix_synapse_database_txn_limit: 0 +>>>>>>> upstream/master matrix_synapse_database_host: "matrix-postgres" matrix_synapse_database_port: 5432 matrix_synapse_database_user: "synapse" diff --git a/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 b/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 index f184cc298..54410c0bb 100644 --- a/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 +++ b/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 @@ -732,9 +732,58 @@ caches: ## Database ## +<<<<<<< HEAD database: # The database engine name name: "psycopg2" +======= +# The 'database' setting defines the database that synapse uses to store all of +# its data. +# +# 'name' gives the database engine to use: either 'sqlite3' (for SQLite) or +# 'psycopg2' (for PostgreSQL). +# +# 'txn_limit' gives the maximum number of transactions to run per connection +# before reconnecting. Defaults to 0, which means no limit. +# +# 'args' gives options which are passed through to the database engine, +# except for options starting 'cp_', which are used to configure the Twisted +# connection pool. For a reference to valid arguments, see: +# * for sqlite: https://docs.python.org/3/library/sqlite3.html#sqlite3.connect +# * for postgres: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS +# * for the connection pool: https://twistedmatrix.com/documents/current/api/twisted.enterprise.adbapi.ConnectionPool.html#__init__ +# +# +# Example SQLite configuration: +# +#database: +# name: sqlite3 +# args: +# database: /path/to/homeserver.db +# +# +# Example Postgres configuration: +# +#database: +# name: psycopg2 +# txn_limit: 10000 +# args: +# user: synapse_user +# password: secretpassword +# database: synapse +# host: localhost +# port: 5432 +# cp_min: 5 +# cp_max: 10 +# +# For more information on using Synapse with Postgres, +# see https://matrix-org.github.io/synapse/latest/postgres.html. +# +database: + # The database engine name + name: "psycopg2" + txn_limit: {{ matrix_synapse_database_txn_limit }} +>>>>>>> upstream/master args: user: {{ matrix_synapse_database_user|string|to_json }} password: {{ matrix_synapse_database_password|string|to_json }} diff --git a/setup.yml b/setup.yml index a4420d4e5..4ac807bc7 100755 --- a/setup.yml +++ b/setup.yml @@ -1,5 +1,8 @@ --- +<<<<<<< HEAD # testing changes 2 +======= +>>>>>>> upstream/master - name: "Set up a Matrix server" hosts: "{{ target if target is defined else 'matrix_servers' }}" become: true @@ -56,4 +59,8 @@ - matrix-aux - matrix-postgres-backup - matrix-prometheus-postgres-exporter +<<<<<<< HEAD - matrix-common-after +======= + - matrix-common-after +>>>>>>> upstream/master