inputs: { pkgs, ... }: {
    services.postgresql.enable = true;
    services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" ''
      CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse';
      CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse"
        TEMPLATE template0
        LC_COLLATE = "C"
        LC_CTYPE = "C";
    '';
  services.matrix-synapse = {
    enable = true;
    settings = {
      registration_shared_secret_path = "/var/synapse/.synapseregsec";
      server_name = "gra.phite.ro";
      public_baseurl = "https://matrix.gra.phite.ro";
      listeners = [
        {
          port = 3003;
          bind_addresses = [ "127.0.0.1" ];

          # Caddy handles HTTPS and TLS
          type = "http";
          tls = false;

          x_forwarded = true;
          resources = [
            {
              names = [ "client" "federation" ];
              compress = true;
            }
          ];
        }
      ];
    };
  };
}