Migrate from Synapse to Dendrite
This commit is contained in:
@@ -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" ];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
"rewrite ^/gitea/(.*)$ https://git.coolneng.duckdns.org/$1 last;";
|
||||
"/miniflux/".extraConfig =
|
||||
"rewrite ^/miniflux/(.*)$ https://rss.coolneng.duckdns.org/$1 last;";
|
||||
"/.well-known/".alias = "${../well-known}" + "/";
|
||||
};
|
||||
};
|
||||
"radicale.coolneng.duckdns.org" = {
|
||||
@@ -88,7 +89,13 @@
|
||||
ssl = true;
|
||||
}
|
||||
];
|
||||
locations."/".proxyPass = "http://localhost:8008/";
|
||||
locations."~ ^(/_matrix|/_synapse/client)" = {
|
||||
proxyPass = "http://localhost:8008";
|
||||
extraConfig = ''
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
'';
|
||||
};
|
||||
};
|
||||
"element.coolneng.duckdns.org" = {
|
||||
enableACME = true;
|
||||
@@ -177,7 +184,7 @@
|
||||
"syncthing.service"
|
||||
"miniflux.service"
|
||||
"radicale.service"
|
||||
"matrix-synapse.service"
|
||||
"dendrite.service"
|
||||
"phpfpm-wallabag.service"
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user