2022-11-11 12:56:09 +00:00
|
|
|
# docs:
|
|
|
|
# - <https://docs.ejabberd.im/admin/configuration/basic>
|
|
|
|
{ lib, ... }:
|
|
|
|
|
2022-11-12 01:43:14 +00:00
|
|
|
# XXX disabled: fails to start because of `mnesia_tm` dependency
|
2022-11-15 12:52:45 +00:00
|
|
|
# lib.mkIf false
|
2022-11-12 01:43:14 +00:00
|
|
|
{
|
2022-11-11 12:56:09 +00:00
|
|
|
sane.impermanence.service-dirs = [
|
|
|
|
{ user = "ejabberd"; group = "ejabberd"; directory = "/var/lib/ejabberd"; }
|
|
|
|
];
|
2022-11-12 01:43:14 +00:00
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
|
|
5222 # XMPP client -> server
|
|
|
|
5269 # XMPP server -> server
|
|
|
|
];
|
2022-11-15 12:47:50 +00:00
|
|
|
|
|
|
|
# provide access to certs
|
|
|
|
users.users.ejabberd.extraGroups = [ "nginx" ];
|
|
|
|
|
2022-11-11 12:56:09 +00:00
|
|
|
# TODO: allocate UIDs/GIDs ?
|
|
|
|
services.ejabberd.enable = true;
|
2022-11-12 01:43:14 +00:00
|
|
|
services.ejabberd.configFile = builtins.toFile "ejabberd.yaml" ''
|
|
|
|
hosts:
|
|
|
|
- uninsane.org
|
|
|
|
|
|
|
|
# none | emergency | alert | critical | error | warning | notice | info | debug
|
|
|
|
loglevel: debug
|
|
|
|
|
|
|
|
acme:
|
|
|
|
auto: false
|
|
|
|
certfiles:
|
|
|
|
- /var/lib/acme/uninsane.org/fullchain.pem
|
|
|
|
- /var/lib/acme/uninsane.org/key.pem
|
|
|
|
|
|
|
|
pam_userinfotype: jid
|
|
|
|
|
|
|
|
# see: <https://docs.ejabberd.im/admin/configuration/listen/>
|
|
|
|
# TODO: host web admin panel
|
|
|
|
listen:
|
|
|
|
-
|
|
|
|
port: 5222
|
|
|
|
module: ejabberd_c2s
|
|
|
|
starttls: true
|
|
|
|
-
|
|
|
|
port: 5269
|
|
|
|
module: ejabberd_s2s_in
|
2022-11-15 12:55:45 +00:00
|
|
|
starttls: true
|
2022-11-12 01:43:14 +00:00
|
|
|
'';
|
2022-11-11 12:56:09 +00:00
|
|
|
}
|