Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

410 lines
18 KiB

  1. # The bare hostname which represents your identity.
  2. # This is something like "example.com".
  3. # Note: this playbook does not touch the server referenced here.
  4. hostname_identity: "{{ host_specific_hostname_identity }}"
  5. # This is where your data lives and what we set up here.
  6. # This and the Riot hostname (see below) are expected to be on the same server.
  7. hostname_matrix: "matrix.{{ hostname_identity }}"
  8. # This is where you access the web UI from and what we set up here.
  9. # This and the Matrix hostname (see above) are expected to be on the same server.
  10. hostname_riot: "riot.{{ hostname_identity }}"
  11. matrix_user_username: "matrix"
  12. matrix_user_uid: 991
  13. matrix_user_gid: 991
  14. matrix_base_data_path: "/matrix"
  15. matrix_environment_variables_data_path: "{{ matrix_base_data_path }}/environment-variables"
  16. matrix_scratchpad_dir: "{{ matrix_base_data_path }}/scratchpad"
  17. matrix_static_files_base_path: "{{ matrix_base_data_path }}/static-files"
  18. matrix_homeserver_url: "https://{{ hostname_matrix }}"
  19. matrix_identity_server_url: "https://{{ matrix_synapse_trusted_third_party_id_servers[0] }}"
  20. # The Docker network that all services would be put into
  21. matrix_docker_network: "matrix"
  22. matrix_synapse_docker_image: "matrixdotorg/synapse:v0.34.0-py3"
  23. matrix_synapse_base_path: "{{ matrix_base_data_path }}/synapse"
  24. matrix_synapse_config_dir_path: "{{ matrix_synapse_base_path }}/config"
  25. matrix_synapse_run_path: "{{ matrix_synapse_base_path }}/run"
  26. matrix_synapse_storage_path: "{{ matrix_synapse_base_path }}/storage"
  27. matrix_synapse_media_store_path: "{{ matrix_synapse_storage_path }}/media-store"
  28. matrix_synapse_ext_path: "{{ matrix_synapse_base_path }}/ext"
  29. matrix_synapse_in_container_python_packages_path: "/usr/local/lib/python3.6/site-packages"
  30. # Specifies which template files to use when configuring Synapse.
  31. # If you'd like to have your own different configuration, feel free to copy and paste
  32. # the original files into your inventory (e.g. in `inventory/host_vars/<host>/`)
  33. # and then change the specific host's `vars.yaml` file like this:
  34. # matrix_synapse_template_synapse_homeserver: "{{ playbook_dir }}/inventory/host_vars/<host>/homeserver.yaml.j2"
  35. matrix_synapse_template_synapse_homeserver: "{{ role_path }}/templates/synapse/homeserver.yaml.j2"
  36. matrix_synapse_template_synapse_log: "{{ role_path }}/templates/synapse/synapse.log.config.j2"
  37. matrix_synapse_macaroon_secret_key: ""
  38. matrix_synapse_registration_shared_secret: "{{ matrix_synapse_macaroon_secret_key }}"
  39. matrix_synapse_form_secret: "{{ matrix_synapse_macaroon_secret_key }}"
  40. # These are the identity servers that would be trusted by Synapse if mxisd is NOT enabled
  41. matrix_synapse_id_servers_public: ['vector.im', 'matrix.org']
  42. # These are the identity servers that would be trusted by Synapse if mxisd IS enabled
  43. matrix_synapse_id_servers_own: "['{{ hostname_matrix }}']"
  44. # The final list of identity servers to use for Synapse.
  45. # The first one would also be used as riot-web's default identity server.
  46. matrix_synapse_trusted_third_party_id_servers: "{{ matrix_synapse_id_servers_own if matrix_mxisd_enabled else matrix_synapse_id_servers_public }}"
  47. matrix_synapse_max_upload_size_mb: 10
  48. matrix_synapse_max_log_file_size_mb: 100
  49. matrix_synapse_max_log_files_count: 10
  50. # Log levels
  51. # Possible options are defined here https://docs.python.org/3/library/logging.html#logging-levels
  52. # warning: setting log level to DEBUG will make synapse log sensitive information such
  53. # as access tokens
  54. matrix_synapse_log_level: "INFO"
  55. matrix_synapse_storage_sql_log_level: "INFO"
  56. matrix_synapse_root_log_level: "INFO"
  57. # Rate limits
  58. matrix_synapse_rc_messages_per_second: 0.2
  59. matrix_synapse_rc_message_burst_count: 10.0
  60. # Enable this to allow Synapse to report utilization statistics about your server to matrix.org
  61. # (things like number of users, number of messages sent, uptime, load, etc.)
  62. matrix_synapse_report_stats: false
  63. # Controls whether the Matrix server will track presence status (online, offline, unavailable) for users.
  64. # If users participate in large rooms with many other servers,
  65. # disabling this will decrease server load significantly.
  66. matrix_synapse_use_presence: true
  67. # Controls whether people with access to the homeserver can register by themselves.
  68. matrix_synapse_enable_registration: false
  69. # Users who register on this homeserver will automatically be joined to these rooms.
  70. # Rooms are to be specified using addresses (e.g. `#address:example.com`)
  71. matrix_synapse_auto_join_rooms: []
  72. # Controls whether auto-join rooms (`matrix_synapse_auto_join_rooms`) are to be created
  73. # automatically if they don't already exist.
  74. matrix_synapse_autocreate_auto_join_rooms: true
  75. # Controls password-peppering for Matrix Synapse. Not to be changed after initial setup.
  76. matrix_synapse_password_config_pepper: ""
  77. # Controls the number of events that Matrix Synapse caches in memory.
  78. matrix_synapse_event_cache_size: "100K"
  79. # Controls cache sizes for Matrix Synapse via the SYNAPSE_CACHE_FACTOR environment variable.
  80. # Raise this to increase cache sizes or lower it to potentially lower memory use.
  81. # To learn more, see:
  82. # - https://github.com/matrix-org/synapse#help-synapse-eats-all-my-ram
  83. # - https://github.com/matrix-org/synapse/issues/3939
  84. matrix_synapse_cache_factor: 0.5
  85. # Controls whether Matrix Synapse will federate at all.
  86. # Disable this to completely isolate your server from the rest of the Matrix network.
  87. matrix_synapse_federation_enabled: true
  88. # A list of domain names that are allowed to federate with the given Matrix Synapse server.
  89. # An empty list value (`[]`) will also effectively stop federation, but if that's the desired
  90. # result, it's better to accomplish it by changing `matrix_synapse_federation_enabled`.
  91. matrix_synapse_federation_domain_whitelist: ~
  92. # A list of additional "volumes" to mount in the container.
  93. # This list gets populated dynamically based on Synapse extensions that have been enabled.
  94. # Contains definition objects like this: `{"src": "/outside", "dst": "/inside", "options": "rw|ro|slave|.."}
  95. matrix_synapse_container_additional_volumes: []
  96. # A list of additional loggers to register in synapse.log.config.
  97. # This list gets populated dynamically based on Synapse extensions that have been enabled.
  98. # Contains definition objects like this: `{"name": "..", "level": "DEBUG"}
  99. matrix_synapse_additional_loggers: []
  100. # A list of service config files
  101. # This list gets populated dynamically based on Synapse extensions that have been enabled.
  102. # Contains fs paths
  103. matrix_synapse_app_service_config_files: []
  104. # This is set dynamically during execution depending on whether
  105. # any password providers have been enabled or not.
  106. matrix_synapse_password_providers_enabled: false
  107. # Enable this to activate the REST auth password provider module.
  108. # See: https://github.com/kamax-io/matrix-synapse-rest-auth
  109. matrix_synapse_ext_password_provider_rest_auth_enabled: false
  110. matrix_synapse_ext_password_provider_rest_auth_download_url: "https://raw.githubusercontent.com/kamax-io/matrix-synapse-rest-auth/v0.1.1/rest_auth_provider.py"
  111. matrix_synapse_ext_password_provider_rest_auth_endpoint: ""
  112. matrix_synapse_ext_password_provider_rest_auth_registration_enforce_lowercase: false
  113. matrix_synapse_ext_password_provider_rest_auth_registration_profile_name_autofill: true
  114. matrix_synapse_ext_password_provider_rest_auth_login_profile_name_autofill: false
  115. # Enable this to activate the Shared Secret Auth password provider module.
  116. # See: https://github.com/devture/matrix-synapse-shared-secret-auth
  117. matrix_synapse_ext_password_provider_shared_secret_auth_enabled: false
  118. matrix_synapse_ext_password_provider_shared_secret_auth_download_url: "https://raw.githubusercontent.com/devture/matrix-synapse-shared-secret-auth/1.0.1/shared_secret_authenticator.py"
  119. matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: ""
  120. # Enable this to activate LDAP password provider
  121. matrix_synapse_ext_password_provider_ldap_enabled: false
  122. matrix_synapse_ext_password_provider_ldap_uri: "ldap://ldap.mydomain.tld:389"
  123. matrix_synapse_ext_password_provider_ldap_start_tls: true
  124. matrix_synapse_ext_password_provider_ldap_base: ""
  125. matrix_synapse_ext_password_provider_ldap_attributes_uid: "uid"
  126. matrix_synapse_ext_password_provider_ldap_attributes_mail: "mail"
  127. matrix_synapse_ext_password_provider_ldap_attributes_name: "cn"
  128. matrix_synapse_ext_password_provider_ldap_bind_dn: ""
  129. matrix_synapse_ext_password_provider_ldap_bind_password: ""
  130. matrix_synapse_ext_password_provider_ldap_filter: ""
  131. # The defaults below cause a postgres server to be configured (running within a container).
  132. # Using an external server is possible by tweaking all of the parameters below.
  133. matrix_postgres_use_external: false
  134. matrix_postgres_connection_hostname: "matrix-postgres"
  135. matrix_postgres_connection_username: "synapse"
  136. matrix_postgres_connection_password: "synapse-password"
  137. matrix_postgres_db_name: "homeserver"
  138. matrix_postgres_data_path: "{{ matrix_base_data_path }}/postgres"
  139. matrix_postgres_docker_image_v9: "postgres:9.6.11-alpine"
  140. matrix_postgres_docker_image_v10: "postgres:10.6-alpine"
  141. matrix_postgres_docker_image_v11: "postgres:11.1-alpine"
  142. matrix_postgres_docker_image_latest: "{{ matrix_postgres_docker_image_v11 }}"
  143. matrix_coturn_docker_image: "instrumentisto/coturn:4.5.0.8"
  144. matrix_coturn_base_path: "{{ matrix_base_data_path }}/coturn"
  145. matrix_coturn_config_path: "{{ matrix_coturn_base_path }}/turnserver.conf"
  146. # A shared secret (between Synapse and Coturn) used for authentication.
  147. # You can put any string here, but generating a strong one is preferred (e.g. `pwgen -s 64 1`).
  148. matrix_coturn_turn_static_auth_secret: ""
  149. # UDP port-range to use for TURN
  150. matrix_coturn_turn_udp_min_port: 49152
  151. matrix_coturn_turn_udp_max_port: 49172
  152. matrix_coturn_turn_external_ip_address: "{{ ansible_host }}"
  153. matrix_s3_media_store_enabled: false
  154. matrix_s3_goofys_docker_image: "ewoutp/goofys:latest"
  155. matrix_s3_media_store_bucket_name: "your-bucket-name"
  156. matrix_s3_media_store_aws_access_key: "your-aws-access-key"
  157. matrix_s3_media_store_aws_secret_key: "your-aws-secret-key"
  158. matrix_s3_media_store_region: "eu-central-1"
  159. # By default, this playbook sets up a postfix mailer server (running in a container).
  160. # This is so that Matrix Synapse can send email reminders for unread messages.
  161. # Other services (like mxisd), however, also use that mailer to send emails through it.
  162. matrix_mailer_enabled: true
  163. matrix_mailer_docker_image: "panubo/postfix:latest"
  164. matrix_mailer_sender_address: "matrix@{{ hostname_identity }}"
  165. matrix_mailer_relay_use: false
  166. matrix_mailer_relay_host_name: "mail.example.com"
  167. matrix_mailer_relay_host_port: 587
  168. matrix_mailer_relay_auth: false
  169. matrix_mailer_relay_auth_username: ""
  170. matrix_mailer_relay_auth_password: ""
  171. # By default, this playbook installs the mxisd identity server on the same domain as Synapse (`hostname_matrix`).
  172. # If you wish to use the public identity servers (matrix.org, vector.im, riot.im) instead of your own,
  173. # you may wish to disable this.
  174. matrix_mxisd_enabled: true
  175. matrix_mxisd_docker_image: "kamax/mxisd:1.2.1"
  176. matrix_mxisd_base_path: "{{ matrix_base_data_path }}/mxisd"
  177. matrix_mxisd_config_path: "{{ matrix_mxisd_base_path }}/config"
  178. matrix_mxisd_data_path: "{{ matrix_mxisd_base_path }}/data"
  179. # Your identity server is private by default.
  180. # To ensure maximum discovery, you can make your identity server
  181. # also forward lookups to the central matrix.org Identity server
  182. # (at the cost of potentially leaking all your contacts information).
  183. # Enabling this is discouraged. Learn more here: https://github.com/kamax-io/mxisd/blob/master/docs/features/identity.md#lookups
  184. matrix_mxisd_matrixorg_forwarding_enabled: false
  185. # mxisd has serveral supported identity stores.
  186. # One of them is storing identities directly in Synapse's database.
  187. # Learn more here: https://github.com/kamax-matrix/mxisd/blob/master/docs/stores/synapse.md
  188. matrix_mxisd_synapsesql_enabled: true
  189. matrix_mxisd_synapsesql_type: postgresql
  190. matrix_mxisd_synapsesql_connection: //{{ matrix_postgres_connection_hostname }}/{{ matrix_postgres_db_name }}?user={{ matrix_postgres_connection_username }}&password={{ matrix_postgres_connection_password }}
  191. # LDAP is another identity store that's supported by mxisd.
  192. # Learn more here: https://github.com/kamax-matrix/mxisd/blob/master/docs/stores/ldap.md
  193. matrix_mxisd_ldap_enabled: false
  194. matrix_mxisd_ldap_connection_host: ldapHostnameOrIp
  195. matrix_mxisd_ldap_connection_tls: false
  196. matrix_mxisd_ldap_connection_port: 389
  197. matrix_mxisd_ldap_connection_baseDn: OU=Users,DC=example,DC=org
  198. matrix_mxisd_ldap_connection_bindDn: CN=My Mxisd User,OU=Users,DC=example,DC=org
  199. matrix_mxisd_ldap_connection_bindPassword: TheUserPassword
  200. # The following keys are optional:
  201. # matrix_mxisd_ldap_filter: ""
  202. # matrix_mxisd_ldap_attribute_uid_type: uid
  203. # matrix_mxisd_ldap_attribute_uid_value: sAMAccountName
  204. # matrix_mxisd_ldap_attribute_name: cn
  205. # matrix_mxisd_ldap_attribute_threepid_email:
  206. # - mail
  207. # - otherMailAttribute
  208. # matrix_mxisd_ldap_attribute_threepid_msisdn:
  209. # - phone
  210. # - otherPhoneAttribute
  211. # matrix_mxisd_ldap_identity_filter: ""
  212. # matrix_mxisd_ldap_identity_medium: ""
  213. # matrix_mxisd_ldap_auth_filter: ""
  214. # matrix_mxisd_ldap_directory_filter: ""
  215. # Specifies which template files to use when configuring mxisd.
  216. # If you'd like to have your own different configuration, feel free to copy and paste
  217. # the original files into your inventory (e.g. in `inventory/host_vars/<host>/`)
  218. # and then change the specific host's `vars.yaml` file like this:
  219. # matrix_mxisd_template_config: "{{ playbook_dir }}/inventory/host_vars/<host>/mxisd.yaml.j2"
  220. matrix_mxisd_template_config: "{{ role_path }}/templates/mxisd/mxisd.yaml.j2"
  221. # Enable this to add support for matrix-corporal.
  222. # See: https://github.com/devture/matrix-corporal
  223. matrix_corporal_enabled: false
  224. matrix_corporal_docker_image: "devture/matrix-corporal:1.2.2"
  225. matrix_corporal_base_path: "{{ matrix_base_data_path }}/corporal"
  226. matrix_corporal_config_dir_path: "{{ matrix_corporal_base_path }}/config"
  227. matrix_corporal_cache_dir_path: "{{ matrix_corporal_base_path }}/cache"
  228. matrix_corporal_var_dir_path: "{{ matrix_corporal_base_path }}/var"
  229. matrix_corporal_matrix_timeout_milliseconds: 30000
  230. matrix_corporal_reconciliation_retry_interval_milliseconds: 30000
  231. matrix_corporal_reconciliation_user_id_local_part: "matrix-corporal"
  232. matrix_corporal_http_api_enabled: false
  233. matrix_corporal_http_api_auth_token: ""
  234. # Matrix Corporal policy provider configuration (goes directly into the configuration's `PolicyProvider` value)
  235. matrix_corporal_policy_provider_config: ""
  236. matrix_corporal_debug: false
  237. # By default, this playbook installs the Riot.IM web UI on the `hostname_riot` domain.
  238. # If you wish to connect to your Matrix server by other means,
  239. # you may wish to disable this.
  240. matrix_riot_web_enabled: true
  241. matrix_riot_web_docker_image: "avhost/docker-matrix-riot:v0.17.8"
  242. matrix_riot_web_data_path: "{{ matrix_base_data_path }}/riot-web"
  243. # Riot config.json customizations
  244. matrix_riot_web_disable_custom_urls: true
  245. matrix_riot_web_disable_guests: true
  246. matrix_riot_web_integrations_ui_url: "https://scalar.vector.im/"
  247. matrix_riot_web_integrations_rest_url: "https://scalar.vector.im/api"
  248. matrix_riot_web_integrations_widgets_urls: "https://scalar.vector.im/api"
  249. matrix_riot_web_integrations_jitsi_widget_url: "https://scalar.vector.im/api/widgets/jitsi.html"
  250. # Riot public room directory server(s)
  251. matrix_riot_web_roomdir_servers: ['matrix.org']
  252. matrix_riot_web_welcome_user_id: "@riot-bot:matrix.org"
  253. # Riot home.html customizations
  254. # Default home.html template file
  255. matrix_riot_web_homepage_template: "{{ role_path }}/templates/riot-web/home.html.j2"
  256. # Show general discussion about Matrix and Riot row
  257. matrix_riot_web_homepage_template_general: true
  258. # Show Matrix technical discussions row
  259. matrix_riot_web_homepage_template_technical: true
  260. # Show building services on Matrix row
  261. matrix_riot_web_homepage_template_building: true
  262. # Show contributing code to Matrix and Riot row
  263. matrix_riot_web_homepage_template_contributing: true
  264. # Matrix mautrix is a Matrix <-> Telegram bridge
  265. # Enable telegram bridge
  266. matrix_mautrix_telegram_enabled: false
  267. matrix_mautrix_telegram_docker_image: "tulir/mautrix-telegram:v0.4.0"
  268. matrix_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram"
  269. # Get your own API keys at https://my.telegram.org/apps
  270. matrix_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID
  271. matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
  272. # Mautrix telegram public endpoint to log in to telegram
  273. # Use an uuid so it's not easily discoverable
  274. matrix_mautrix_telegram_public_endpoint: "/{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'telegram') | to_uuid }}"
  275. # Matrix mautrix is a Matrix <-> Whatsapp bridge
  276. # Enable whatsapp bridge
  277. matrix_mautrix_whatsapp_enabled: false
  278. matrix_mautrix_whatsapp_docker_image: "tulir/mautrix-whatsapp:latest"
  279. matrix_mautrix_whatsapp_base_path: "{{ matrix_base_data_path }}/mautrix-whatsapp"
  280. # By default, this playbook sets up its own nginx proxy server on port 80/443.
  281. # This is fine if you're dedicating the whole server to Matrix.
  282. # But in case that's not the case, you may wish to prevent that
  283. # and take care of proxying by yourself.
  284. matrix_nginx_proxy_enabled: true
  285. matrix_nginx_proxy_docker_image: "nginx:1.15.7-alpine"
  286. matrix_nginx_proxy_data_path: "{{ matrix_base_data_path }}/nginx-proxy"
  287. matrix_nginx_proxy_confd_path: "{{ matrix_nginx_proxy_data_path }}/conf.d"
  288. # The addresses where the Matrix Client API is.
  289. # Certain extensions (like matrix-corporal) may override this in order to capture all traffic.
  290. matrix_nginx_proxy_matrix_client_api_addr_with_proxy_container: "matrix-synapse:8008"
  291. matrix_nginx_proxy_matrix_client_api_addr_sans_proxy_container: "localhost:8008"
  292. # Specifies when to reload the matrix-nginx-proxy service so that
  293. # a new SSL certificate could go into effect.
  294. matrix_nginx_proxy_reload_cron_time_definition: "20 4 */5 * *"
  295. # Specifies which SSL protocols to use when serving Riot and Synapse
  296. # Note TLSv1.3 is not yet available in dockerized nginx
  297. # See: https://github.com/nginxinc/docker-nginx/issues/190
  298. matrix_nginx_proxy_ssl_protocols: "TLSv1.1 TLSv1.2"
  299. matrix_ssl_base_path: "{{ matrix_base_data_path }}/ssl"
  300. matrix_ssl_config_dir_path: "{{ matrix_ssl_base_path }}/config"
  301. matrix_ssl_log_dir_path: "{{ matrix_ssl_base_path }}/log"
  302. matrix_ssl_support_email: "{{ host_specific_matrix_ssl_support_email }}"
  303. matrix_ssl_certbot_docker_image: "certbot/certbot:v0.29.1"
  304. matrix_ssl_certbot_standalone_http_port: 2402
  305. matrix_ssl_use_staging: false
  306. # Specifies when to attempt to retrieve new SSL certificates from Let's Encrypt.
  307. matrix_ssl_renew_cron_time_definition: "15 4 */5 * *"
  308. # Variables to Control which parts of the role run.
  309. run_setup: true
  310. run_upgrade_postgres: true
  311. run_start: true
  312. run_register_user: true
  313. run_import_sqlite_db: true
  314. run_import_media_store: true
  315. run_self_check: true