about summary refs log tree commit diff
path: root/nixos/cobalt/services/dendrite.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/cobalt/services/dendrite.nix')
-rw-r--r--nixos/cobalt/services/dendrite.nix157
1 files changed, 0 insertions, 157 deletions
diff --git a/nixos/cobalt/services/dendrite.nix b/nixos/cobalt/services/dendrite.nix
deleted file mode 100644
index af1af32..0000000
--- a/nixos/cobalt/services/dendrite.nix
+++ /dev/null
@@ -1,157 +0,0 @@
-{ config, ... }:
-
-let
-  database = {
-    connection_string = "postgres:///dendrite?host=/run/postgresql";
-    max_open_conns = 97;
-    max_idle_conns = 5;
-    conn_max_lifetime = -1;
-  };
-in
-{
-  # Adapted from Mic92/dotfiles, (C) 2021 Jörg Thalheim (MIT)
-  sops.secrets.matrix-server-key = { };
-
-  services.dendrite = {
-    enable = true;
-    settings = {
-      global = {
-        server_name = "sefidel.com";
-        # `private_key` has the type `path`
-        # prefix a `/` to make `path` happy
-        private_key = "/$CREDENTIALS_DIRECTORY/matrix-server-key";
-        trusted_third_party_id_servers = [
-          "matrix.org"
-          "vector.im"
-        ];
-        metrics.enable = true;
-      };
-      logging = [
-        {
-          type = "std";
-          level = "warn";
-        }
-      ];
-      app_service_api = {
-        inherit database;
-        config_files = [ ];
-      };
-      client_api = {
-        registration_disabled = true;
-        rate_limiting.enabled = false;
-        # registration_shared_secret = ""; # Initially set this option to configure the admin user.
-      };
-      media_api = {
-        inherit database;
-        dynamic_thumbnails = true;
-      };
-      room_server = {
-        inherit database;
-      };
-      push_server = {
-        inherit database;
-      };
-      mscs = {
-        inherit database;
-        mscs = [ "msc2836" "msc2946" ];
-      };
-      sync_api = {
-        inherit database;
-        real_ip_header = "X-Real-IP";
-      };
-      key_server = {
-        inherit database;
-      };
-      federation_api = {
-        inherit database;
-        key_perspectives = [
-          {
-            server_name = "matrix.org";
-            keys = [
-              {
-                key_id = "ed25519:auto";
-                public_key = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw";
-              }
-              {
-                key_id = "ed25519:a_RXGa";
-                public_key = "l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ";
-              }
-            ];
-          }
-        ];
-        prefer_direct_fetch = false;
-      };
-      user_api = {
-        account_database = database;
-        device_database = database;
-      };
-    };
-    loadCredential = [ "matrix-server-key:${config.sops.secrets.matrix-server-key.path}" ];
-  };
-
-  environment.persistence."/persist".directories = [
-    "/var/lib/private/dendrite"
-  ];
-
-  services.postgresql.enable = true;
-  services.postgresql.ensureDatabases = [ "dendrite" ];
-  services.postgresql.ensureUsers = [
-    {
-      name = "dendrite";
-      ensurePermissions."DATABASE dendrite" = "ALL PRIVILEGES";
-    }
-  ];
-
-
-  services.nginx.virtualHosts."matrix.sefidel.com" = {
-    forceSSL = true;
-    useACMEHost = "sefidel.com";
-    listen = [
-      { addr = "0.0.0.0"; port = 443; ssl = true; }
-      { addr = "[::]"; port = 443; ssl = true; }
-      { addr = "0.0.0.0"; port = 8448; ssl = true; }
-      { addr = "[::]"; port = 8448; ssl = true; }
-
-    ];
-    extraConfig = ''
-      proxy_set_header Host $host;
-      proxy_set_header X-Real-IP $remote_addr;
-      proxy_read_timeout 600;
-      client_max_body_size 50M;
-    '';
-    locations."/_matrix".proxyPass = "http://[::1]:${toString config.services.dendrite.httpPort}";
-    locations."/_dendrite".proxyPass = "http://[::1]:${toString config.services.dendrite.httpPort}";
-    locations."/_synapse".proxyPass = "http://[::1]:${toString config.services.dendrite.httpPort}";
-    # TODO: web client
-  };
-
-  services.nginx.virtualHosts."sefidel.com" =
-    let
-      server-hello = { "m.server" = "matrix.sefidel.com:443"; };
-      client-hello = {
-        "m.homeserver"."base_url" = "https://matrix.sefidel.com";
-        "m.identity_server"."base_url" = "https://vector.im";
-      };
-    in
-    {
-      forceSSL = true;
-      useACMEHost = "sefidel.com";
-      locations = {
-        "/.well-known/matrix/server" = {
-          extraConfig = ''
-            add_header Content-Type application/json;
-            return 200 '${builtins.toJSON server-hello}';
-          '';
-        };
-        "/.well-known/matrix/client" = {
-          extraConfig = ''
-            add_header Content-Type application/json;
-            add_header Access-Control-Allow-Origin *;
-            return 200 '${builtins.toJSON client-hello}';
-          '';
-        };
-      };
-    };
-
-  networking.firewall.allowedTCPPorts = [ 8448 ];
-}