People can toggle between them now. The playbook also defaults to using SQLite if an external Postgres server is used. Ideally, we'd be able to create databases/users in external Postgres servers as well, but our initialization logic (and `docker run` command, etc.) hardcode too many things right now.pull/740/head
| @@ -67,6 +67,11 @@ matrix_appservice_discord_appservice_token: "{{ matrix_synapse_macaroon_secret_k | |||||
| matrix_appservice_discord_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'discord.hs.token') | to_uuid }}" | matrix_appservice_discord_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'discord.hs.token') | to_uuid }}" | ||||
| # We only make this use Postgres if our own Postgres server is enabled. | |||||
| # It's only then (for now) that we can automatically create the necessary database and user for this service. | |||||
| matrix_appservice_discord_database_engine: "{{ 'postgres' if matrix_postgres_enabled else 'sqlite' }}" | |||||
| matrix_appservice_discord_database_connString_password: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'as.discord.db') }}" | |||||
| ###################################################################### | ###################################################################### | ||||
| # | # | ||||
| # /matrix-bridge-appservice-discord | # /matrix-bridge-appservice-discord | ||||
| @@ -892,10 +897,10 @@ matrix_postgres_db_name: "homeserver" | |||||
| matrix_postgres_additional_databases: | | matrix_postgres_additional_databases: | | ||||
| {{ | {{ | ||||
| ([{ | ([{ | ||||
| 'name': 'matrix_appservice_discord', | |||||
| 'username': 'matrix_appservice_discord', | |||||
| 'password': matrix_synapse_macaroon_secret_key | password_hash('sha512', 'app_discord.db.secret') | string, | |||||
| }] if matrix_appservice_discord_enabled else []) | |||||
| 'name': matrix_appservice_discord_database_connString_db_name, | |||||
| 'username': matrix_appservice_discord_database_connString_username, | |||||
| 'password': matrix_appservice_discord_database_connString_password, | |||||
| }] if (matrix_appservice_discord_enabled and matrix_appservice_discord_database_engine == 'postgres' and matrix_appservice_discord_database_connString_hostname == 'matrix-postgres') else []) | |||||
| + ([{ | + ([{ | ||||
| 'name': 'matrix_appservice_slack', | 'name': 'matrix_appservice_slack', | ||||
| 'username': 'matrix_appservice_slack', | 'username': 'matrix_appservice_slack', | ||||
| @@ -41,6 +41,22 @@ matrix_appservice_discord_bridge_homeserverUrl: "http://matrix-synapse:8008" | |||||
| matrix_appservice_discord_bridge_disablePresence: false | matrix_appservice_discord_bridge_disablePresence: false | ||||
| matrix_appservice_discord_bridge_enableSelfServiceBridging: false | matrix_appservice_discord_bridge_enableSelfServiceBridging: false | ||||
| # Database-related configuration fields. | |||||
| # | |||||
| # To use SQLite, stick to these defaults. | |||||
| # | |||||
| # To use Postgres: | |||||
| # - change the engine (`matrix_appservice_discord_database_engine: 'postgres'`) | |||||
| # - adjust your database credentials | |||||
| matrix_appservice_discord_database_engine: 'sqlite' | |||||
| matrix_appservice_discord_database_filename: "/data/discord.db" | |||||
| matrix_appservice_discord_database_connString: 'postgresql://{{ matrix_appservice_discord_database_connString_username }}:{{ matrix_appservice_discord_database_connString_password }}@{{ matrix_appservice_discord_database_connString_hostname }}:{{ matrix_appservice_discord_database_connString_port }}/{{ matrix_appservice_discord_database_connString_db_name }}' | |||||
| matrix_appservice_discord_database_connString_username: 'matrix_appservice_discord' | |||||
| matrix_appservice_discord_database_connString_password: 'some-password' | |||||
| matrix_appservice_discord_database_connString_hostname: 'matrix-postgres' | |||||
| matrix_appservice_discord_database_connString_port: 5432 | |||||
| matrix_appservice_discord_database_connString_db_name: 'matrix_appservice_discord' | |||||
| # Tells whether the bot should make use of "Privileged Gateway Intents". | # Tells whether the bot should make use of "Privileged Gateway Intents". | ||||
| # | # | ||||
| # Enabling this means that you need to enable it for the bot (Discord application) as well, | # Enabling this means that you need to enable it for the bot (Discord application) as well, | ||||
| @@ -20,3 +20,7 @@ | |||||
| when: "item.old in vars" | when: "item.old in vars" | ||||
| with_items: | with_items: | ||||
| - {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_discord_container_http_host_bind_port>'} | - {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_discord_container_http_host_bind_port>'} | ||||
| - name: Require a valid database engine | |||||
| fail: msg="`matrix_appservice_discord_database_engine` needs to be either 'sqlite' or 'postgres'" | |||||
| when: "matrix_appservice_discord_database_engine not in ['sqlite', 'postgres']" | |||||
| @@ -58,8 +58,11 @@ database: | |||||
| # If you are migrating, see https://github.com/Half-Shot/matrix-appservice-discord/blob/master/docs/howto.md#migrate-to-postgres-from-sqlite | # If you are migrating, see https://github.com/Half-Shot/matrix-appservice-discord/blob/master/docs/howto.md#migrate-to-postgres-from-sqlite | ||||
| # WARNING: You will almost certainly be fine with sqlite unless your bridge | # WARNING: You will almost certainly be fine with sqlite unless your bridge | ||||
| # is in heavy demand and you suffer from IO slowness. | # is in heavy demand and you suffer from IO slowness. | ||||
| #filename: "/data/discord.db" | |||||
| connString: "postgresql://matrix_appservice_discord:{{ matrix_additional_databases | selectattr('name', 'equalto', 'matrix_appservice_discord') | map(attribute='pass') | first }}@{{ matrix_postgres_connection_hostname }}/matrix_appservice_discord" | |||||
| {% if matrix_appservice_discord_database_engine == 'sqlite' %} | |||||
| filename: {{ matrix_appservice_discord_database_filename|to_json }} | |||||
| {% else %} | |||||
| connString: {{ matrix_appservice_discord_database_connString|to_json }} | |||||
| {% endif %} | |||||
| room: | room: | ||||
| # Set the default visibility of alias rooms, defaults to "public". | # Set the default visibility of alias rooms, defaults to "public". | ||||
| # One of: "public", "private" | # One of: "public", "private" | ||||