aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-02-01 09:17:01 -0600
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-02-01 09:17:01 -0600
commit549d4cce8b9114cc01eef5b65da20539f20b94cf (patch)
treef6c6a88107a457a37808aff1c03d9ff37d248501
parent2a07183126da63858a287990cc7aa291b83e6d18 (diff)
irc server
-rw-r--r--hosts/ganymede/config.nix2
-rw-r--r--modules/services/nixos/default.nix1
-rw-r--r--modules/services/nixos/ngircd.nix27
-rw-r--r--modules/services/options.nix8
4 files changed, 38 insertions, 0 deletions
diff --git a/hosts/ganymede/config.nix b/hosts/ganymede/config.nix
index d821c76..d9cb0dc 100644
--- a/hosts/ganymede/config.nix
+++ b/hosts/ganymede/config.nix
@@ -61,6 +61,8 @@
caddy.enable = true;
};
+ ngircd.enable = true;
+
caddy = {
enable = true;
envFile = config.collinux.secrets."caddy-env".path;
diff --git a/modules/services/nixos/default.nix b/modules/services/nixos/default.nix
index 1160c90..1ad53bf 100644
--- a/modules/services/nixos/default.nix
+++ b/modules/services/nixos/default.nix
@@ -9,5 +9,6 @@
./adguard.nix
./copyparty.nix
+ ./ngircd.nix
];
}
diff --git a/modules/services/nixos/ngircd.nix b/modules/services/nixos/ngircd.nix
new file mode 100644
index 0000000..e788182
--- /dev/null
+++ b/modules/services/nixos/ngircd.nix
@@ -0,0 +1,27 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.services.ngircd;
+in
+ lib.mkIf cfg.enable {
+ services.ngircd = {
+ enable = true;
+ config = ''
+ [Global]
+ Name = Ganymede IRC Chat
+
+ Listen = 0.0.0.0
+ Port = ${cfg.port}
+
+ PAM = yes
+ PAMIsOptional = no
+
+ [Operators]
+ Name = collin
+ Password = # users authenticate with PAM
+ Mask = *@*
+ '';
+ };
+ }
diff --git a/modules/services/options.nix b/modules/services/options.nix
index ef9f57f..19812fc 100644
--- a/modules/services/options.nix
+++ b/modules/services/options.nix
@@ -82,6 +82,14 @@ in {
default_port = 8099;
};
+ ngircd = {
+ enable = mkEnableOption "IRC Server";
+ port = mkOption {
+ type = lib.types.port;
+ default = 6667;
+ };
+ };
+
headscale = selfhostOptions {
service_name = "headscale";
default_port = 8080;