add XMPP using prosody

auto-flake-update
Yorick van Pelt 2016-04-22 19:12:59 +02:00
parent 2bc1e0458b
commit 7bcb3e5c42
1 changed files with 39 additions and 1 deletions

View File

@ -21,6 +21,8 @@ in
networking.hostName = secrets.hostnames.pennyworth;
environment.noXlibs = true;
services.openssh.enable = true;
networking.enableIPv6 = lib.mkOverride 30 true;
@ -29,6 +31,7 @@ in
# root password is useful from console, ssh has password logins disabled
users.extraUsers.root.hashedPassword = secrets.pennyworth_hashedPassword;
# email
services.mailz = {
domain = config.networking.hostName;
keydir = acmeKeyDir;
@ -41,6 +44,7 @@ in
};
};
# website + lets encrypt challenge hosting
nginxssl = {
enable = true;
challenges."${config.networking.hostName}" = acmeWebRoot;
@ -63,7 +67,9 @@ in
"${config.networking.hostName}" = null;
};
webroot = acmeWebRoot;
postRun = "systemctl reload nginx.service dovecot2.service opensmtpd.service";
postRun = ''systemctl reload nginx.service dovecot2.service opensmtpd.service
systemctl restart prosody.service
'';
};
# Generate a dummy self-signed certificate until we get one from
# Let's Encrypt.
@ -80,10 +86,42 @@ in
fi
'';
# hidden SSH service
services.tor.hiddenServices = [
{ name = "ssh";
port = 22;
hostname = "/run/keys/torkeys/ssh.pennyworth.hostname";
private_key = "/run/keys/torkeys/ssh.pennyworth.key"; }
];
# XMPP
services.prosody = {
enable = true;
allowRegistration = false;
extraModules = [ "private" "vcard" "privacy" "compression" "component" "muc" "pep" "adhoc" "lastactivity" "admin_adhoc" "blocklist"];
virtualHosts.yoricc = {
enabled = true;
domain = "yori.cc";
ssl = {
key = "/var/lib/prosody/keys/key.pem";
cert = "/var/lib/prosody/keys/fullchain.pem";
};
};
extraConfig = ''
use_libevent = true
s2s_require_encryption = true
c2s_require_encryption = true
'';
admins = [ "yorick@yori.cc"];
};
systemd.services.prosody.serviceConfig.PermissionsStartOnly = true;
systemd.services.prosody.preStart = ''
mkdir -m 0700 -p /var/lib/prosody/keys
cp ${acmeKeyDir}/key.pem ${acmeKeyDir}/fullchain.pem /var/lib/prosody/keys
chown -R prosody:prosody /var/lib/prosody
'';
networking.firewall.allowedTCPPorts = [5222 5269];
}