Matrix: Difference between revisions

add instructions to setup livekit for use withe element-call or Element X
Kaya (talk | contribs)
Add section about synapse admin
 
(2 intermediate revisions by one other user not shown)
Line 173: Line 173:
     enable = true;
     enable = true;
     openFirewall = true;
     openFirewall = true;
    settings.room.auto_create = false;
     inherit keyFile;
     inherit keyFile;
   };
   };
Line 187: Line 188:
     path = with pkgs; [ livekit coreutils gawk ];
     path = with pkgs; [ livekit coreutils gawk ];
     script = ''
     script = ''
      if [ -f ${keyFile} ]; then
        echo "Key exists"
      else
         echo "Key missing, generating key"
         echo "Key missing, generating key"
         echo "lk-jwt-service: $(livekit-server generate-keys | tail -1 | awk '{print $3}')" > "${keyFile}"
         echo "lk-jwt-service: $(livekit-server generate-keys | tail -1 | awk '{print $3}')" > "${keyFile}"
      fi
     '';
     '';
     serviceConfig.Type = "oneshot";
     serviceConfig.Type = "oneshot";
    unitConfig.ConditionPathExists = "!${keyFile}";
   };
   };
   # restrict access to livekit room creation to a homeserver
   # restrict access to livekit room creation to a homeserver
Line 241: Line 239:
There's an external module to automatically set up synapse and configure nginx with workers:
There's an external module to automatically set up synapse and configure nginx with workers:
https://github.com/dali99/nixos-matrix-modules
https://github.com/dali99/nixos-matrix-modules
==== Synapse Admin with Caddy ====
Setting up [https://github.com/etkecc/synapse-admin Synapse Admin] with [[Caddy]] is quite easy!
The example uses the newer <code>pkgs.synapse-admin-etkecc</code> which may not be what you want if you have heard of the old one which is available at: <code>pkgs.synapse-admin</code>
{{File|3={ pkgs, ... }:
let
  synapse-admin = pkgs.synapse-admin-etkecc.withConfig {
    restrictBaseUrl = [
      "https://matrix.example.com" # Synapse domain
    ];
  };
in
{
  services.caddy.virtualHosts."synapse-admin.example.com".extraConfig = ''
    root * ${synapse-admin}
    file_server
  '';
}|name=/etc/nixos/configuration.nix|lang=nix}}


== Application services (a.k.a. bridges) ==
== Application services (a.k.a. bridges) ==