Make appservice-discord support both SQLite and Postgres

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.
This commit is contained in:
Slavi Pantaleev
2020-12-14 00:52:25 +02:00
parent 46a4034d3e
commit a374d309c8
4 changed files with 34 additions and 6 deletions

View File

@ -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 }}"
# 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
@ -892,10 +897,10 @@ matrix_postgres_db_name: "homeserver"
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',
'username': 'matrix_appservice_slack',