summaryrefslogtreecommitdiffstats
path: root/tv/3modules/ejabberd/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tv/3modules/ejabberd/default.nix')
-rw-r--r--tv/3modules/ejabberd/default.nix24
1 files changed, 18 insertions, 6 deletions
diff --git a/tv/3modules/ejabberd/default.nix b/tv/3modules/ejabberd/default.nix
index 15736e18..d6573ad0 100644
--- a/tv/3modules/ejabberd/default.nix
+++ b/tv/3modules/ejabberd/default.nix
@@ -15,9 +15,19 @@
in {
options.tv.ejabberd = {
enable = mkEnableOption "tv.ejabberd";
- certfile = mkOption {
- type = types.absolute-pathname;
- default = toString <secrets> + "/ejabberd.pem";
+ certfiles = mkOption {
+ type = types.listOf types.absolute-pathname;
+ default = [
+ (toString <secrets> + "/ejabberd.pem")
+ ];
+ };
+ credentials.certfiles = mkOption {
+ internal = true;
+ readOnly = true;
+ default =
+ imap
+ (i: const /* yaml */ "/tmp/credentials/certfile${toJSON i}")
+ cfg.certfiles;
};
hosts = mkOption {
type = with types; listOf str;
@@ -92,9 +102,11 @@ in {
"${cfg.pkgs.ejabberd}/bin/ejabberdctl stopped"
];
ExecReload = "${cfg.pkgs.ejabberd}/bin/ejabberdctl reload_config";
- LoadCredential = [
- "certfile:${cfg.certfile}"
- ];
+ LoadCredential =
+ zipListsWith
+ (dst: src: "${baseNameOf dst}:${src}")
+ cfg.credentials.certfiles
+ cfg.certfiles;
LimitNOFILE = 65536;
PrivateDevices = true;
PrivateTmp = true;