Matrix configuration #13
|
@ -18,6 +18,10 @@ let
|
|||
nixos domain option nixos domain option
|
||||
add_header Access-Control-Allow-Origin *;
|
||||
return 200 '${builtins.toJSON data}';
|
||||
'';
|
||||
|
||||
nixos domain option nixos domain option
|
||||
# build ldap3 plugin from git because it's very outdated in nixpkgs
|
||||
nixos domain option nixos domain option
|
||||
matrix-synapse-ldap3 = pkgs.python3.pkgs.callPackage ./pkgs/matrix-synapse-ldap3.nix { };
|
||||
nixos domain option nixos domain option
|
||||
# matrix-synapse-ldap3 = config.services.matrix-synapse.package.plugins.matrix-synapse-ldap3;
|
||||
nixos domain option nixos domain option
|
||||
in
|
||||
{
|
||||
sops.secrets.matrix_ldap_search = {
|
||||
|
@ -71,9 +75,7 @@ in
|
|||
nixos domain option nixos domain option
nixos domain option nixos domain option
|
||||
matrix-synapse = {
|
||||
enable = true;
|
||||
|
||||
plugins = with config.services.matrix-synapse.package.plugins; [
|
||||
nixos domain option nixos domain option
|
||||
matrix-synapse-ldap3
|
||||
nixos domain option nixos domain option
|
||||
];
|
||||
nixos domain option nixos domain option
|
||||
plugins = [ matrix-synapse-ldap3 ];
|
||||
nixos domain option nixos domain option
|
||||
|
||||
settings = {
|
||||
server_name = domainServer;
|
||||
|
@ -94,24 +96,21 @@ in
|
|||
nixos domain option nixos domain option
nixos domain option nixos domain option
|
||||
extraConfigFiles = [
|
||||
(pkgs.writeTextFile {
|
||||
name = "matrix-synapse-extra-config.yml";
|
||||
text = ''
|
||||
nixos domain option nixos domain option
|
||||
# `password_providers` is deprecated but `modules` is not supported yet.
|
||||
nixos domain option nixos domain option
|
||||
password_providers:
|
||||
nixos domain option nixos domain option
|
||||
- module: ldap_auth_provider.LdapAuthProvider
|
||||
nixos domain option nixos domain option
|
||||
text = let portunus = config.services.portunus; in ''
|
||||
nixos domain option nixos domain option
|
||||
modules:
|
||||
nixos domain option nixos domain option
|
||||
- module: ldap_auth_provider.LdapAuthProviderModule
|
||||
nixos domain option nixos domain option
|
||||
config:
|
||||
enabled: true
|
||||
# have to use fqdn here for tls (still connects to localhost)
|
||||
uri: ldaps://auth.nix.fugi.dev:636
|
||||
nixos domain option nixos domain option
|
||||
base: ou=users,dc=ifsr,dc=de
|
||||
nixos domain option nixos domain option
|
||||
uri: ldaps://${portunus.domain}:636
|
||||
nixos domain option nixos domain option
|
||||
base: ou=users,${portunus.ldap.suffix}
|
||||
nixos domain option nixos domain option
|
||||
# taken from kaki config
|
||||
attributes:
|
||||
uid: uid
|
||||
mail: uid
|
||||
name: cn
|
||||
bind_dn: uid=search,ou=users,dc=ifsr,dc=de
|
||||
nixos domain option nixos domain option
|
||||
# TODO: password file not yet supported - update matrix-synapse-ldap3 or use workaround
|
||||
nixos domain option nixos domain option
|
||||
bind_password: portunus_search
|
||||
nixos domain option nixos domain option
|
||||
# bind_password_file: ${config.sops.secrets.portunus_search.path}
|
||||
nixos domain option nixos domain option
|
||||
bind_dn: uid=search,ou=users,${portunus.ldap.suffix}
|
||||
nixos domain option nixos domain option
|
||||
bind_password_file: ${config.sops.secrets.matrix_ldap_search.path}
|
||||
nixos domain option nixos domain option
|
||||
'';
|
||||
})
|
||||
];
|
||||
|
|
|||
nixos domain option nixos domain option
nixos domain option nixos domain option
|
21
modules/pkgs/matrix-synapse-ldap3.nix
Normal file
21
modules/pkgs/matrix-synapse-ldap3.nix
Normal file
|
@ -0,0 +1,21 @@
|
|||
{ isPy3k, buildPythonPackage, pkgs, service-identity, ldap3, twisted, ldaptor, mock }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "matrix-synapse-ldap3";
|
||||
version = "0.2.2";
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "matrix-org";
|
||||
repo = "matrix-synapse-ldap3";
|
||||
rev = "2584736204165f16c176567183f9c350ee253f74";
|
||||
sha256 = "gMsC5FpC2zt5hypPdGgPbWT/Rwz38EoQz3tj5dQ9BQ8=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ service-identity ldap3 twisted ];
|
||||
|
||||
# ldaptor is not ready for py3 yet
|
||||
doCheck = !isPy3k;
|
||||
checkInputs = [ ldaptor mock ];
|
||||
}
|
Loading…
Reference in a new issue
nixos domain option