diff --git a/hosts/linode/postgres.nix b/hosts/linode/postgres.nix index 38e0b77..baff49a 100644 --- a/hosts/linode/postgres.nix +++ b/hosts/linode/postgres.nix @@ -4,12 +4,12 @@ services.postgresql = { enable = true; checkConfig = true; - ensureDatabases = [ "nextcloud" "gitea" ]; - initialScript = pkgs.writeText "create-matrix-db.sql" '' - CREATE ROLE "matrix-synapse" WITH LOGIN; - CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C"; - GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse"; - ''; # These are done manually in order to set the LC_COLLATE values properly + ensureDatabases = [ "nextcloud" "gitea" "dendrite" ]; + #initialScript = pkgs.writeText "create-matrix-db.sql" '' + # CREATE ROLE "matrix-synapse" WITH LOGIN; + # CREATE DATABASE "synapse" WITH OWNER "matrix-synapse" TEMPLATE template0 LC_COLLATE = "C" LC_CTYPE = "C"; + # GRANT ALL PRIVILEGES ON DATABASE "synapse" TO "matrix-synapse"; + #''; # These are done manually in order to set the LC_COLLATE values properly ensureUsers = [ { name = "nextcloud"; ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; @@ -19,6 +19,9 @@ } { name = "gitea"; ensurePermissions."DATABASE gitea" = "ALL PRIVILEGES"; + } { + name = "dendrite"; + ensurePermissions."DATABASE dendrite" = "ALL PRIVILEGES"; } ]; settings = { log_connections = true; @@ -36,7 +39,7 @@ root root postgres databases = [ "gitea" "nextcloud" - "synapse" + "dendrite" ]; }; diff --git a/hosts/linode/synapse.nix b/hosts/linode/synapse.nix index 02bb222..f52349b 100644 --- a/hosts/linode/synapse.nix +++ b/hosts/linode/synapse.nix @@ -6,8 +6,6 @@ let domain = "${config.networking.domain}"; fqdn = "matrix.${domain}"; - fbRegistration = import ./synapse.nix.crypt {}; - fbRegistrationFile = "matrix/mautrix-facebook.json"; in { services.nginx = { @@ -70,33 +68,29 @@ return 200 '${builtins.toJSON client}'; }; }; - environment.etc."${fbRegistrationFile}".text = builtins.toJSON fbRegistration; - - services.matrix-synapse = { + services.dendrite = { enable = true; + httpPort = 8448; # Identify ourselves as the root of our own domain settings = { - database.args = { - user = "matrix-synapse"; - database = "synapse"; + global = { + database.args = { + 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"; - # 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; 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; - }; } diff --git a/hosts/linode/synapse.nix.crypt b/hosts/linode/synapse.nix.crypt deleted file mode 100644 index d589708..0000000 --- a/hosts/linode/synapse.nix.crypt +++ /dev/null @@ -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= diff --git a/modules-linux/backup.nix b/modules-linux/backup.nix index 400c85c..15346e2 100644 --- a/modules-linux/backup.nix +++ b/modules-linux/backup.nix @@ -25,7 +25,7 @@ let exec 1> >(systemd-cat -t $(basename $0)) 2>&1 set -ex ${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} ''; in { @@ -86,22 +86,11 @@ in with lib; { jobs = attrValues ( mapAttrs cronJob cfg.jobs ); in mkIf ( ( attrValues cfg.jobs ) != [] ) { - #services.borgbackup = { - # jobs = mapAttrs makeJob cfg.jobs; - #}; services.cron = { enable = true; 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; }; } diff --git a/ssh/id_ed25519 b/ssh/id_ed25519 deleted file mode 100644 index cd9f979..0000000 --- a/ssh/id_ed25519 +++ /dev/null @@ -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= diff --git a/ssh/id_ed25519.pub b/ssh/id_ed25519.pub deleted file mode 100644 index 491f4e5..0000000 --- a/ssh/id_ed25519.pub +++ /dev/null @@ -1,3 +0,0 @@ -U2FsdGVkX199UgWOiZI4QFCTOsVVEQatJHJFBVDmavrKzuGL+2RX1Fsi1uEafGpz -Fa6UGCWVrUvaT69yxpt3PBtSjkFiZtR9g1A0LzWT3XaUB41/0DJIzAsbK62Ya9UT -A+xICWdf2WVk6n0xeNIvPQ==