X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fejabberd%2Fdefault.nix;h=4d86a648ada0d460d4e56670d1bd8ef3aaac3904;hb=1a64deeb894dc95e2645a75771732c6cc53a79ad;hpb=fa25ffd4583cc362075cd5e1b4130f33306103f0;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/ejabberd/default.nix b/modules/private/ejabberd/default.nix deleted file mode 100644 index 4d86a64..0000000 --- a/modules/private/ejabberd/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -{ lib, pkgs, config, ... }: -let - cfg = config.myServices.ejabberd; -in -{ - options.myServices = { - ejabberd.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = '' - Whether to enable ejabberd service. - ''; - }; - }; - - config = lib.mkIf cfg.enable { - security.acme.certs = { - "ejabberd" = config.myServices.certificates.certConfig // { - user = "ejabberd"; - group = "ejabberd"; - domain = "eldiron.immae.eu"; - keyType = "rsa4096"; - postRun = '' - systemctl restart ejabberd.service - ''; - extraDomains = { - "immae.fr" = null; - "conference.immae.fr" = null; - "proxy.immae.fr" = null; - "pubsub.immae.fr" = null; - "upload.immae.fr" = null; - }; - }; - }; - networking.firewall.allowedTCPPorts = [ 5222 5269 ]; - myServices.websites.tools.im.enable = true; - systemd.services.ejabberd.postStop = '' - rm /var/log/ejabberd/erl_crash*.dump - ''; - secrets.keys = { - "ejabberd/psql.yml" = { - permissions = "0400"; - user = "ejabberd"; - group = "ejabberd"; - text = '' - sql_type: pgsql - sql_server: "localhost" - sql_database: "${config.myEnv.jabber.postgresql.database}" - sql_username: "${config.myEnv.jabber.postgresql.user}" - sql_password: "${config.myEnv.jabber.postgresql.password}" - ''; - }; - "ejabberd/host.yml" = { - permissions = "0400"; - user = "ejabberd"; - group = "ejabberd"; - text = '' - host_config: - "immae.fr": - domain_certfile: "${config.security.acme.certs.ejabberd.directory}/full.pem" - auth_method: [ldap] - ldap_servers: ["${config.myEnv.jabber.ldap.host}"] - ldap_encrypt: tls - ldap_rootdn: "${config.myEnv.jabber.ldap.dn}" - ldap_password: "${config.myEnv.jabber.ldap.password}" - ldap_base: "${config.myEnv.jabber.ldap.base}" - ldap_uids: - uid: "%u" - immaeXmppUid: "%u" - ldap_filter: "${config.myEnv.jabber.ldap.filter}" - ''; - }; - }; - users.users.ejabberd.extraGroups = [ "keys" ]; - services.ejabberd = { - package = pkgs.ejabberd.override { withPgsql = true; }; - imagemagick = true; - enable = true; - ctlConfig = '' - ERLANG_NODE=ejabberd@localhost - ''; - configFile = pkgs.runCommand "ejabberd.yml" { - certificatePrivateKeyAndFullChain = "${config.security.acme.certs.ejabberd.directory}/full.pem"; - certificateCA = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; - sql_config_file = config.secrets.fullPaths."ejabberd/psql.yml"; - host_config_file = config.secrets.fullPaths."ejabberd/host.yml"; - } '' - substituteAll ${./ejabberd.yml} $out - ''; - }; - }; -}