about summary refs log tree commit diff
path: root/modules/profiles/headless/default.nix
diff options
context:
space:
mode:
authorazahi <azat@bahawi.net>2025-03-12 20:17:13 +0300
committerazahi <azat@bahawi.net>2025-03-12 20:17:13 +0300
commitc81dc5a13b469c511fac6fa2390b70422d1b4da5 (patch)
tree4dab5909006ab5c25da6bd9fde6a714c7719ded7 /modules/profiles/headless/default.nix
parent2025-02-17 (diff)
2025-03-12 HEAD master
Diffstat (limited to 'modules/profiles/headless/default.nix')
-rw-r--r--modules/profiles/headless/default.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/profiles/headless/default.nix b/modules/profiles/headless/default.nix
new file mode 100644
index 0000000..42c041b
--- /dev/null
+++ b/modules/profiles/headless/default.nix
@@ -0,0 +1,47 @@
+{
+  config,
+  lib,
+  pkgs,
+  this,
+  ...
+}:
+let
+  cfg = config.nixfiles.modules.profiles.headless;
+in
+{
+  imports = lib.modulesIn ./. |> lib.attrValues;
+
+  options.nixfiles.modules.profiles.headless.enable = lib.mkEnableOption "headless profile" // {
+    default = this.isHeadless;
+  };
+
+  config = lib.mkIf cfg.enable {
+    nixfiles.modules = {
+      endlessh-go.enable = true;
+      fail2ban.enable = true;
+      openssh.server.enable = true;
+    };
+
+    hm.home.file = {
+      ".hushlogin".text = "";
+      ".bash_history".source = config.hm.lib.file.mkOutOfStoreSymlink "/dev/null";
+    };
+
+    boot.kernelPackages = pkgs.linuxPackages_hardened;
+
+    nix = {
+      gc = {
+        automatic = true;
+        dates = "weekly";
+        options = "--delete-older-than 30d";
+      };
+
+      optimise = {
+        automatic = true;
+        dates = [ "daily" ];
+      };
+    };
+
+    services.udisks2.enable = false;
+  };
+}

Consider giving Nix/NixOS a try! <3