Add bind adresses, tls, xforwarded options. Use systemd target for managing the services
This commit is contained in:
parent
4c465eb8ba
commit
f8facc5a43
|
@ -93,6 +93,23 @@ in
|
||||||
type = lib.types.port;
|
type = lib.types.port;
|
||||||
description = "the TCP port to bind to";
|
description = "the TCP port to bind to";
|
||||||
};
|
};
|
||||||
|
options.bind_addresses = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
description = "A list of local addresses to listen on";
|
||||||
|
};
|
||||||
|
options.tls = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = "set to true to enable TLS for this listener. Will use the TLS key/cert specified in tls_private_key_path / tls_certificate_path.";
|
||||||
|
default = true;
|
||||||
|
};
|
||||||
|
options.x_forwarded = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
description = ''
|
||||||
|
Only valid for an 'http' listener. Set to true to use the X-Forwarded-For header as the client IP.
|
||||||
|
Useful when Synapse is behind a reverse-proxy.
|
||||||
|
'';
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
options.resources = lib.mkOption {
|
options.resources = lib.mkOption {
|
||||||
type = lib.types.listOf (lib.types.submodule {
|
type = lib.types.listOf (lib.types.submodule {
|
||||||
options.names = lib.mkOption {
|
options.names = lib.mkOption {
|
||||||
|
@ -403,13 +420,18 @@ in
|
||||||
users.groups.matrix-synapse = {
|
users.groups.matrix-synapse = {
|
||||||
gid = config.ids.gids.matrix-synapse;
|
gid = config.ids.gids.matrix-synapse;
|
||||||
};
|
};
|
||||||
|
systemd.targets.matrix-synapse = {
|
||||||
|
description = "Synapse parent target";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf cfg.enableMainSynapse {
|
(lib.mkIf cfg.enableMainSynapse {
|
||||||
systemd.services.matrix-synapse = {
|
systemd.services.matrix-synapse = {
|
||||||
description = "Synapse Matrix homeserver";
|
description = "Synapse Matrix homeserver";
|
||||||
after = [ "network.target" ];
|
partOf = [ "matrix-synapse.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "matrix-synapse.target" ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
${cfg.package}/bin/homeserver \
|
${cfg.package}/bin/homeserver \
|
||||||
${ lib.concatMapStringsSep "\n " (x: "--config-path ${x} \\") ([ matrix-synapse-common-config ] ++ cfg.extraConfigFiles) }
|
${ lib.concatMapStringsSep "\n " (x: "--config-path ${x} \\") ([ matrix-synapse-common-config ] ++ cfg.extraConfigFiles) }
|
||||||
|
@ -444,8 +466,9 @@ in
|
||||||
name = "matrix-synapse-worker-${workerName worker}";
|
name = "matrix-synapse-worker-${workerName worker}";
|
||||||
value = {
|
value = {
|
||||||
description = "Synapse Matrix Worker";
|
description = "Synapse Matrix Worker";
|
||||||
after = [ "network.target" ];
|
partOf = [ "matrix-synapse.target" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "matrix-synapse.target" ];
|
||||||
|
after = [ "matrix-synapse.service" ];
|
||||||
environment.PYTHONPATH = lib.makeSearchPathOutput "lib" cfg.package.python.sitePackages [
|
environment.PYTHONPATH = lib.makeSearchPathOutput "lib" cfg.package.python.sitePackages [
|
||||||
pluginsEnv
|
pluginsEnv
|
||||||
# (cfg.package.python.pkgs.toPythonModule cfg.package)
|
# (cfg.package.python.pkgs.toPythonModule cfg.package)
|
||||||
|
|
Loading…
Reference in New Issue