diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index acfe16a99..0e96d3bb6 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -1195,6 +1195,9 @@ matrix_maubot_systemd_required_services_list: | (['matrix-nginx-proxy.service'] if matrix_nginx_proxy_enabled else []) }} +matrix_maubot_database_engine: "{{ 'postgres' if matrix_postgres_enabled else 'sqlite' }}" +matrix_maubot_database_password: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'maubot.db') | to_uuid }}" + ###################################################################### # # /matrix-bot-maubot @@ -1747,6 +1750,12 @@ matrix_postgres_additional_databases: | 'password': matrix_ma1sd_database_password, }] if (matrix_ma1sd_enabled and matrix_ma1sd_database_engine == 'postgres' and matrix_ma1sd_database_hostname == 'matrix-postgres') else []) + + ([{ + 'name': matrix_maubot_database_name, + 'username': matrix_maubot_database_username, + 'password': matrix_maubot_database_password, + }] if (matrix_maubot_enabled and matrix_maubot_database_engine == 'postgres' and matrix_maubot_database_hostname == 'matrix-postgres') else []) + + ([{ 'name': matrix_bot_matrix_reminder_bot_database_name, 'username': matrix_bot_matrix_reminder_bot_database_username, diff --git a/roles/matrix-maubot/defaults/main.yml b/roles/matrix-maubot/defaults/main.yml index 1038e77e8..9ea3b7a19 100644 --- a/roles/matrix-maubot/defaults/main.yml +++ b/roles/matrix-maubot/defaults/main.yml @@ -9,7 +9,26 @@ matrix_maubot_systemd_required_services_list: ['docker.service'] matrix_maubot_systemd_wanted_services_list: [] matrix_maubot_container_extra_arguments: [] -matrix_maubot_database_url: "sqlite:///{{ matrix_maubot_container_data_dir }}/maubot.db" +matrix_maubot_database_engine: "sqlite" + +matrix_maubot_sqlite_database_path_local: "maubot.db" +matrix_maubot_sqlite_database_path_in_container: "/{{ matrix_maubot_container_data_dir }}/{{ matrix_maubot_sqlite_database_path_local }}" + +matrix_maubot_database_username: 'matrix_bot_maubot' +matrix_maubot_database_password: 'some-password' +matrix_maubot_database_hostname: 'matrix-postgres' +matrix_maubot_database_port: 5432 +matrix_maubot_database_name: 'matrix_bot_maubot' + +matrix_maubot_database_connection_string: 'postgres://{{ matrix_maubot_database_username }}:{{ matrix_maubot_database_password }}@{{ matrix_maubot_database_hostname }}:{{ matrix_maubot_database_port }}/{{ matrix_maubot_database_name }}' + +matrix_maubot_storage_database: "{{ + { + 'sqlite': ('sqlite://' + matrix_maubot_sqlite_database_path_in_container), + 'postgres': matrix_maubot_database_connection_string, + }[matrix_maubot_database_engine] +}}" + matrix_maubot_management_port: 29316 matrix_maubot_management_hostname: "0.0.0.0" diff --git a/roles/matrix-maubot/templates/maubot_config.yaml.j2 b/roles/matrix-maubot/templates/maubot_config.yaml.j2 index 1bd28c596..b3809ad04 100644 --- a/roles/matrix-maubot/templates/maubot_config.yaml.j2 +++ b/roles/matrix-maubot/templates/maubot_config.yaml.j2 @@ -3,7 +3,8 @@ # Format examples: # SQLite: sqlite:///filename.db # Postgres: postgres://username:password@hostname/dbname -database: {{ matrix_maubot_database_url }} +database: {{ matrix_maubot_storage_database|to_json }} + plugin_directories: # The directory where uploaded new plugins should be stored.