aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-11-28 13:52:28 +0100
committerKatharina Fey <kookie@spacekookie.de>2019-11-28 13:52:28 +0100
commitd6e385ea14b8fafea9f35455d1b43a4b89377256 (patch)
treee8db0e637f09401ee135a08fffb226f77c44d3b4 /modules
parent5ada3eb928256f7b032b39bb34107e6f26ab0041 (diff)
server/prosody: init with special xmpp cert
Diffstat (limited to 'modules')
-rw-r--r--modules/server/prosody/default.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/server/prosody/default.nix b/modules/server/prosody/default.nix
new file mode 100644
index 00000000000..65a1cf7b8c7
--- /dev/null
+++ b/modules/server/prosody/default.nix
@@ -0,0 +1,49 @@
+/* PROSODY XMPP SERVER
+ *
+ * Convenient XMPP server with lots of XEP extentions, that also
+ * sets up ACME certificates specifically for the XMPP domain
+ */
+
+{ config, pkgs, ... }:
+
+let
+ ssl = {
+ cert = "/var/lib/acme/xmpp.spacekookie.de/fullchain.pem";
+ key = "/var/lib/acme/xmpp.spacekookie.de/key.pem";
+ };
+in
+{
+ networking.firewall.allowedTCPPorts = [ 5222 5269 ];
+
+ security.acme.certs."xmpp.spacekookie.de" = {
+ email = "letsencrypt@spacekookie.de";
+ webroot = "/var/lib/acme/acme-challenge";
+ extraDomains = {
+ "spacekookie.de" = null;
+ };
+ user = "prosody";
+ };
+
+ services.prosody = {
+ enable = true;
+ modules = {
+ register = false;
+ http_files = true;
+ carbons = true;
+ mam = true;
+ pep = true;
+ };
+ inherit ssl;
+ virtualHosts."spacekookie.de" = {
+ domain = "spacekookie.de";
+ enabled = true;
+ inherit ssl;
+ };
+ package = pkgs.prosody.override {
+ withCommunityModules = [ "http_upload" "smacks" "csi" "cloud_notify" ];
+ };
+ extraConfig = ''
+ http_upload_file_size_limit = 0 -- No limit
+ '';
+ };
+}