Commit 5445ec8

HPCesia <me@hpcesia.com>
2026-06-22 14:59:16
Add Vaultwarden service
1 parent 0756258
Changed files (2)
modules
hosts
hyacine
services
services
modules/hosts/hyacine/services/services.nix
@@ -11,6 +11,10 @@
         domain = "net.trin.one";
       };
     };
+
+    services.vaultwarden = {
+      domain = "vault.hpcesia.com";
+    };
   };
 
   den.aspects.hyacine = {
@@ -18,6 +22,7 @@
       den.aspects.services.webserver
 
       den.aspects.services.headscale
+      den.aspects.services.vaultwarden
     ];
   };
 }
modules/services/vaultwarden.nix
@@ -0,0 +1,53 @@
+{lib, ...}: {
+  den.aspects.services.vaultwarden = {
+    settings = {
+      domain = lib.mkOption {
+        type = lib.types.str;
+      };
+      address = lib.mkOption {
+        type = lib.types.str;
+        default = "127.0.0.1";
+      };
+      port = lib.mkOption {
+        type = lib.types.port;
+        default = 8222;
+      };
+    };
+
+    persist = {
+      directories = [
+        {
+          directory = "/var/lib/vaultwarden";
+          user = "vaultwarden";
+          group = "vaultwarden";
+          mode = "0700";
+        }
+      ];
+    };
+
+    reverseProxy = {host, ...}: let
+      cfg = host.settings.services.vaultwarden;
+    in {
+      ${cfg.domain} = {
+        port = cfg.port;
+      };
+    };
+
+    nixos = {host, ...}: let
+      cfg = host.settings.services.vaultwarden;
+    in {
+      services.vaultwarden = {
+        enable = true;
+
+        inherit (cfg) domain;
+        dbBackend = "sqlite";
+        config = {
+          SIGNUPS_ALLOWED = false;
+          ENABLE_WEBSOCKET = true;
+          ROCKET_ADDRESS = cfg.address;
+          ROCKET_PORT = cfg.port;
+        };
+      };
+    };
+  };
+}