|
|
|
@ -1,12 +1,12 @@ |
|
|
|
|
{ config, lib, pkgs, ... }: |
|
|
|
|
let |
|
|
|
|
cfg = config.services.matrix-dendrite; |
|
|
|
|
cfg = config.services.dendrite; |
|
|
|
|
settingsFormat = pkgs.formats.yaml { }; |
|
|
|
|
configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings; |
|
|
|
|
workingDir = "/var/lib/matrix-dendrite"; |
|
|
|
|
workingDir = "/var/lib/dendrite"; |
|
|
|
|
in |
|
|
|
|
{ |
|
|
|
|
options.services.matrix-dendrite = { |
|
|
|
|
options.services.dendrite = { |
|
|
|
|
enable = lib.mkEnableOption "matrix.org dendrite"; |
|
|
|
|
httpPort = lib.mkOption { |
|
|
|
|
type = lib.types.nullOr lib.types.port; |
|
|
|
@ -24,7 +24,7 @@ in |
|
|
|
|
}; |
|
|
|
|
tlsCert = lib.mkOption { |
|
|
|
|
type = lib.types.nullOr lib.types.path; |
|
|
|
|
example = "/var/lib/matrix-dendrite/server.cert"; |
|
|
|
|
example = "/var/lib/dendrite/server.cert"; |
|
|
|
|
default = null; |
|
|
|
|
description = '' |
|
|
|
|
The path to the TLS certificate. |
|
|
|
@ -36,7 +36,7 @@ in |
|
|
|
|
}; |
|
|
|
|
tlsKey = lib.mkOption { |
|
|
|
|
type = lib.types.nullOr lib.types.path; |
|
|
|
|
example = "/var/lib/matrix-dendrite/server.key"; |
|
|
|
|
example = "/var/lib/dendrite/server.key"; |
|
|
|
|
default = null; |
|
|
|
|
description = '' |
|
|
|
|
The path to the TLS key. |
|
|
|
@ -48,7 +48,7 @@ in |
|
|
|
|
}; |
|
|
|
|
environmentFile = lib.mkOption { |
|
|
|
|
type = lib.types.nullOr lib.types.path; |
|
|
|
|
example = "/var/lib/matrix-dendrite/registration_secret"; |
|
|
|
|
example = "/var/lib/dendrite/registration_secret"; |
|
|
|
|
default = null; |
|
|
|
|
description = '' |
|
|
|
|
Environment file as defined in <citerefentry> |
|
|
|
@ -62,7 +62,7 @@ in |
|
|
|
|
|
|
|
|
|
<programlisting> |
|
|
|
|
# snippet of dendrite-related config |
|
|
|
|
services.matrix-dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; |
|
|
|
|
services.dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; |
|
|
|
|
</programlisting> |
|
|
|
|
|
|
|
|
|
<programlisting> |
|
|
|
@ -140,7 +140,7 @@ in |
|
|
|
|
''; |
|
|
|
|
}]; |
|
|
|
|
|
|
|
|
|
systemd.services.matrix-dendrite = { |
|
|
|
|
systemd.services.dendrite = { |
|
|
|
|
description = "Dendrite Matrix homeserver"; |
|
|
|
|
after = [ |
|
|
|
|
"network.target" |
|
|
|
@ -149,22 +149,22 @@ in |
|
|
|
|
serviceConfig = { |
|
|
|
|
Type = "simple"; |
|
|
|
|
DynamicUser = true; |
|
|
|
|
StateDirectory = "matrix-dendrite"; |
|
|
|
|
StateDirectory = "dendrite"; |
|
|
|
|
WorkingDirectory = workingDir; |
|
|
|
|
RuntimeDirectory = "matrix-dendrite"; |
|
|
|
|
RuntimeDirectory = "dendrite"; |
|
|
|
|
RuntimeDirectoryMode = "0700"; |
|
|
|
|
EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; |
|
|
|
|
ExecStartPre = |
|
|
|
|
if (cfg.environmentFile != null) then '' |
|
|
|
|
${pkgs.envsubst}/bin/envsubst \ |
|
|
|
|
-i ${configurationYaml} \ |
|
|
|
|
-o /run/matrix-dendrite/dendrite.yaml |
|
|
|
|
-o /run/dendrite/dendrite.yaml |
|
|
|
|
'' else '' |
|
|
|
|
${pkgs.coreutils}/bin/cp ${configurationYaml} /run/matrix-dendrite/dendrite.yaml |
|
|
|
|
${pkgs.coreutils}/bin/cp ${configurationYaml} /run/dendrite/dendrite.yaml |
|
|
|
|
''; |
|
|
|
|
ExecStart = lib.strings.concatStringsSep " " ([ |
|
|
|
|
"${pkgs.dendrite}/bin/dendrite-monolith-server" |
|
|
|
|
"--config /run/matrix-dendrite/dendrite.yaml" |
|
|
|
|
"--config /run/dendrite/dendrite.yaml" |
|
|
|
|
] ++ lib.optionals (cfg.httpPort != null) [ |
|
|
|
|
"--http-bind-address :${builtins.toString cfg.httpPort}" |
|
|
|
|
] ++ lib.optionals (cfg.httpsPort != null) [ |