]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/irc.nix
Move directories with only default.nix to standalone file
[perso/Immae/Config/Nix.git] / nixops / modules / irc.nix
diff --git a/nixops/modules/irc.nix b/nixops/modules/irc.nix
new file mode 100644 (file)
index 0000000..6500ca5
--- /dev/null
@@ -0,0 +1,48 @@
+{ lib, pkgs, config, myconfig, mylibs, ... }:
+{
+  options = {
+    services.irc.enable = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = ''
+        Whether to enable irc stuff.
+      '';
+    };
+  };
+
+  config = lib.mkIf config.services.irc.enable {
+    security.acme.certs."irc" = config.services.myCertificates.certConfig // {
+      domain = "irc.immae.eu";
+      postRun = ''
+        systemctl restart stunnel.service
+      '';
+    };
+
+    networking.firewall.allowedTCPPorts = [ 6697 ];
+    services.bitlbee = {
+      enable = true;
+      authMode = "Registered";
+      libpurple_plugins = [
+        pkgs.purple-hangouts
+        pkgs.purple-matrix
+      ];
+      plugins = [
+        pkgs.bitlbee-mastodon
+        pkgs.bitlbee-facebook
+        pkgs.bitlbee-discord
+        pkgs.bitlbee-steam
+      ];
+    };
+
+    services.stunnel = {
+      enable = true;
+      servers = {
+        bitlbee = {
+          accept = 6697;
+          connect = 6667;
+          cert = "/var/lib/acme/irc/full.pem";
+        };
+      };
+    };
+  };
+}