Replace synapse with dendrite
This commit is contained in:
@@ -4,12 +4,12 @@
|
|||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
checkConfig = true;
|
checkConfig = true;
|
||||||
ensureDatabases = [ "nextcloud" "gitea" ];
|
ensureDatabases = [ "nextcloud" "gitea" "dendrite" ];
|
||||||
initialScript = pkgs.writeText "create-matrix-db.sql" ''
|
#initialScript = pkgs.writeText "create-matrix-db.sql" ''
|
||||||
CREATE ROLE "matrix-synapse" WITH LOGIN;
|
# CREATE ROLE "matrix-synapse" WITH LOGIN;
|
||||||
CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C";
|
# CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C";
|
||||||
GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse";
|
# GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse";
|
||||||
''; # These are done manually in order to set the LC_COLLATE values properly
|
#''; # These are done manually in order to set the LC_COLLATE values properly
|
||||||
ensureUsers = [ {
|
ensureUsers = [ {
|
||||||
name = "nextcloud";
|
name = "nextcloud";
|
||||||
ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
|
ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES";
|
||||||
@@ -19,6 +19,9 @@
|
|||||||
} {
|
} {
|
||||||
name = "gitea";
|
name = "gitea";
|
||||||
ensurePermissions."DATABASE gitea" = "ALL PRIVILEGES";
|
ensurePermissions."DATABASE gitea" = "ALL PRIVILEGES";
|
||||||
|
} {
|
||||||
|
name = "dendrite";
|
||||||
|
ensurePermissions."DATABASE dendrite" = "ALL PRIVILEGES";
|
||||||
} ];
|
} ];
|
||||||
settings = {
|
settings = {
|
||||||
log_connections = true;
|
log_connections = true;
|
||||||
@@ -36,7 +39,7 @@ root root postgres
|
|||||||
databases = [
|
databases = [
|
||||||
"gitea"
|
"gitea"
|
||||||
"nextcloud"
|
"nextcloud"
|
||||||
"synapse"
|
"dendrite"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+18
-44
@@ -6,8 +6,6 @@
|
|||||||
let
|
let
|
||||||
domain = "${config.networking.domain}";
|
domain = "${config.networking.domain}";
|
||||||
fqdn = "matrix.${domain}";
|
fqdn = "matrix.${domain}";
|
||||||
fbRegistration = import ./synapse.nix.crypt {};
|
|
||||||
fbRegistrationFile = "matrix/mautrix-facebook.json";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
@@ -70,33 +68,29 @@ return 200 '${builtins.toJSON client}';
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."${fbRegistrationFile}".text = builtins.toJSON fbRegistration;
|
services.dendrite = {
|
||||||
|
|
||||||
services.matrix-synapse = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
httpPort = 8448;
|
||||||
# Identify ourselves as the root of our own domain
|
# Identify ourselves as the root of our own domain
|
||||||
settings = {
|
settings = {
|
||||||
database.args = {
|
global = {
|
||||||
user = "matrix-synapse";
|
database.args = {
|
||||||
database = "synapse";
|
connection_string = "postgresql://dendrite@localhost/dendrite?sslmode=disable";
|
||||||
|
max_open_conns = 90;
|
||||||
|
max_idle_conns = 5;
|
||||||
|
conn_max_lifetime = -1;
|
||||||
|
};
|
||||||
|
server_name = "thehellings.com";
|
||||||
|
trusted_third_party_id_servers = [
|
||||||
|
"matrix.org"
|
||||||
|
"vector.im"
|
||||||
|
"jupiterbroadcasting.com"
|
||||||
|
];
|
||||||
|
# Generate this with {path-to-dendrite}/bin/generate-keys --private-key /etc/dendrite.pem
|
||||||
|
private_key = "/etc/dendrite.pem";
|
||||||
};
|
};
|
||||||
server_name = "thehellings.com";
|
client_api.registration_enabled = false;
|
||||||
#registration_shared_secret = "B9EoPr2WV9hzwc7uL2Sx1JmvCeKDEOGCpB0uginQcQtEH4wzRtkSIdo7lltrjSQa";
|
#registration_shared_secret = "B9EoPr2WV9hzwc7uL2Sx1JmvCeKDEOGCpB0uginQcQtEH4wzRtkSIdo7lltrjSQa";
|
||||||
# Bind a single listener to localhost only, disable SSL/TLS, and put
|
|
||||||
# it behind an nginx proxy
|
|
||||||
listeners = [ {
|
|
||||||
port = 8448;
|
|
||||||
bind_addresses = ["127.0.0.1"];
|
|
||||||
type = "http"; # Offload SSL/TLS to Nginx
|
|
||||||
tls = false;
|
|
||||||
resources = [ {
|
|
||||||
names = [ "client" "federation" ];
|
|
||||||
compress = false; # Offload compressiong to Nginx
|
|
||||||
} ];
|
|
||||||
} ];
|
|
||||||
app_service_config_files = [
|
|
||||||
"/etc/${fbRegistrationFile}"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -105,24 +99,4 @@ return 200 '${builtins.toJSON client}';
|
|||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = [ 80 443 ];
|
allowedTCPPorts = [ 80 443 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable Facebook bridge
|
|
||||||
services.mautrix-facebook = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
homeserver = {
|
|
||||||
address = "http://localhost:8448";
|
|
||||||
domain = "thehellings.com";
|
|
||||||
};
|
|
||||||
bridge.permissions = {
|
|
||||||
"@admin:thehellings.com" = "admin";
|
|
||||||
"thehellings.com" = "user";
|
|
||||||
};
|
|
||||||
appservice = {
|
|
||||||
as_token = fbRegistration.as_token;
|
|
||||||
hs_token = fbRegistration.hs_token;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
registrationData = fbRegistration;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
x6ns0UtbX6AcSBJfaW25BVEVRXmKdZW7bRPFJvCvkt/nWw/qZPwDzwOhORRooyJR
|
|
||||||
14MXmRGmL3nfhlnZahxblVrHkOwCje4ADrE/cNf4+V4AOMlnMbIwkH1a7y9jAsBF
|
|
||||||
LbiBgQ1NOE/TcLHwmnCByKO6VkZG03e53skydYITVa6uummPLcvZVeL97Cx+8gfy
|
|
||||||
QPXmyLFQ9DzR5vVDVkRIM1UK6eZWM5NyWdVoyhfiK4QP+KsPkmxsA3l/safrm8Qy
|
|
||||||
U3LlyXuk/wmfk9ZiPp1cWmruH4xdfaVbYPeGhAqRdwSdIgngpR2CJJVc7d/rve3l
|
|
||||||
86+9yM6TIH6EB09cmjvT+Luim8l/5qrG0eeK3d0iUGkrHRzLa/7VGnlxi8zZGn3m
|
|
||||||
9k4qyZjAPG27d5/4wp3KsLFWKpvjiNetpRDMpHYJfjptvYg7WrYxndeRIBLf7MJ7
|
|
||||||
jN7oQhKJSQLR3QhIv5nH7T0wsKWIv4ua8jEPi+/sqdCvHN4kBiwpUHyRCuBO12+2
|
|
||||||
EeuB8GnILRv0gh9hfQBnPVdv8A3grgfZElc3UkwharcrRIgBsb7a3I+4TbyQd9Bq
|
|
||||||
nVZgkl/5jRLd2SyRX68Ny1DYBzepH2nMh5v6Q6h+WFXsTC5INulitvLk1UUfnlvW
|
|
||||||
CbiJl1TsGlJwJLI53WS7lO/mUWe6KEIp33eqHgnaNTXWrCbq4jdqj5l6Im7B5ciz
|
|
||||||
WEbvkg+HFwOGLKdutk4fTyQucyPqEI/GP2uM9ZBLZKA=
|
|
||||||
@@ -25,7 +25,7 @@ let
|
|||||||
exec 1> >(systemd-cat -t $(basename $0)) 2>&1
|
exec 1> >(systemd-cat -t $(basename $0)) 2>&1
|
||||||
set -ex
|
set -ex
|
||||||
${job.pre}
|
${job.pre}
|
||||||
${pkgs.rsync}/bin/rsync -avz --delete -e "${pkgs.openssh}/bin/ssh -i /etc/${backup_key} -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null'" ${job.src}/* backup@nas.me.ts:/volume1/NetBackup/${job.dest}/
|
${pkgs.rsync}/bin/rsync -avz --delete -e "${pkgs.openssh}/bin/ssh -i /etc/${backup_key} -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null'" ${job.src}/* backup@chronicles:/volume1/NetBackup/${job.dest}/
|
||||||
${job.post}
|
${job.post}
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
@@ -86,22 +86,11 @@ in with lib; {
|
|||||||
jobs = attrValues ( mapAttrs cronJob cfg.jobs );
|
jobs = attrValues ( mapAttrs cronJob cfg.jobs );
|
||||||
in mkIf ( ( attrValues cfg.jobs ) != [] )
|
in mkIf ( ( attrValues cfg.jobs ) != [] )
|
||||||
{
|
{
|
||||||
#services.borgbackup = {
|
|
||||||
# jobs = mapAttrs makeJob cfg.jobs;
|
|
||||||
#};
|
|
||||||
services.cron = {
|
services.cron = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemCronJobs = map (e: e.cron) jobs;
|
systemCronJobs = map (e: e.cron) jobs;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc = mkIf ( cfg.key != null ) {
|
|
||||||
"${backup_key}" = {
|
|
||||||
user = "nobody";
|
|
||||||
mode = "0777";
|
|
||||||
source = cfg.key;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = map (e: e.script) jobs;
|
environment.systemPackages = map (e: e.script) jobs;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
U2FsdGVkX1+8TBMzBYN9YHgBu1txsCXL0bCxLaGsDMoAaMdkBEdFI1owuEIpM5/E
|
|
||||||
wJICFzAcEmdFMpX0ZZn4c/jIA7K3Q+p1uxaj+7zcdmzRs08ZxU64yG7LTM47cffJ
|
|
||||||
W2L1OOFvJPICOs5WmwC/R+4FG6LBIa09W58Xn3OkUEFTe2L2iK73J0ecXuWYjEhN
|
|
||||||
2y9UvtXr1dHJdXSVY0i7DoPb22JUGuWRRWnT1ThW83xDMs6d83PLD26/BIS/HJiJ
|
|
||||||
24d0HXuO3nXkkdPX6ocRJmAM0PeMtW+uPG4/HjS6xWaJThBljfvC0I1NRWK7SYR8
|
|
||||||
+Ret+OXlYhQmSN0M8cGixQKxlrn4iUpawpRnTsug3aSe0Nx30eTw/aRt6WkyeWLS
|
|
||||||
g/aEnOiaIFSyg780nq5AENQW9/XgvWAb/i9k4AKwKBdyeaAveA/37xoM/6rWToXu
|
|
||||||
Cql9d4sAF9mEZjSIjXulMQakZHep59MiNclK1WJQQHjQh1DabXS6CEjVD+jJOG9R
|
|
||||||
cpTkdJ1/Q711jJR7hZK7SNNoo8EH3Vpl5czpJjp+zJE=
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
U2FsdGVkX199UgWOiZI4QFCTOsVVEQatJHJFBVDmavrKzuGL+2RX1Fsi1uEafGpz
|
|
||||||
Fa6UGCWVrUvaT69yxpt3PBtSjkFiZtR9g1A0LzWT3XaUB41/0DJIzAsbK62Ya9UT
|
|
||||||
A+xICWdf2WVk6n0xeNIvPQ==
|
|
||||||
Reference in New Issue
Block a user