Migrate from Synapse to Dendrite

This commit is contained in:
2022-07-20 16:34:14 +02:00
parent d1eaf76099
commit af18ffd29e
10 changed files with 171 additions and 33 deletions

View File

@@ -1,41 +1,79 @@
{ config, lib, pkgs, ... }:
{
with pkgs;
# NOTE Reference the environment variable set in the corresponding agenix secret
let database.connection_string = "$DB_STRING";
in {
# Matrix server configuration
services.matrix-synapse = {
services.dendrite = {
enable = true;
httpPort = 8008;
environmentFile = config.age.secrets.dendrite-postgres.path;
loadCredential = [ "private_key:${config.age.secrets.dendrite.path}" ];
settings = {
server_name = "coolneng.duckdns.org";
public_baseurl = "https://matrix.coolneng.duckdns.org";
listeners = [{
port = 8008;
tls = false;
resources = [{
compress = true;
names = [ "client" ];
}];
bind_addresses = [ "127.0.0.1" ];
}];
app_service_config_files =
[ "/var/lib/matrix-synapse/telegram-registration.yaml" ];
global = {
server_name = "coolneng.duckdns.org";
private_key = config.age.secrets.dendrite.path;
inherit database;
};
# HACK Inherit postgres connection string for the rest of the DBs
app_service_api = { inherit database; };
media_api = { inherit database; };
room_server = { inherit database; };
push_server = { inherit database; };
mscs = {
inherit database;
mscs = [ "msc2836" "msc2946" ];
};
sync_api = { inherit database; };
key_server = { inherit database; };
federation_api = { inherit database; };
user_api = {
account_database = database;
device_database = database;
};
};
};
# Telegram bridge for Matrix
services.mautrix-telegram = {
enable = true;
environmentFile = /var/lib/mautrix-telegram/telegram.env;
settings = {
homeserver = {
address = "https://matrix.coolneng.duckdns.org";
domain = "coolneng.duckdns.org";
};
appservice = {
address = "http://localhost:8118";
# Matrix bridges
services.matrix-appservices = {
homeserver = "dendrite";
addRegistrationFiles = true;
services = {
telegram = {
port = 8118;
format = "mautrix-python";
package = mautrix-telegram;
};
facebook = {
port = 8228;
format = "mautrix-python";
package = mautrix-facebook;
};
signal = {
port = 8338;
format = "mautrix-python";
package = mautrix-signal;
serviceConfig = {
StateDirectory = [ "matrix-as-signal" "signald" ];
JoinNamespaceOf = "signald.service";
SupplementaryGroups = [ "signald" ];
};
settings.signal = {
socket_path = config.services.signald.socketPath;
outgoing_attachment_dir = "/var/lib/signald/tmp";
};
};
bridge.permissions."@coolneng:coolneng.duckdns.org" = "admin";
};
serviceDependencies = [ "matrix-synapse.service" ];
};
# Additional settings for mautrix-signal
services.signald.enable = true;
systemd.services.matrix-as-signal = {
requires = [ "signald.service" ];
after = [ "signald.service" ];
};
}