Commit 3f19d06

HPCesia <me@hpcesia.com>
2025-10-07 09:30:03
refactor: migrate autin
1 parent 9b0c025
Changed files (4)
hosts
chaser-pardofelis
modules
hosts
chaser-pardofelis
services
hosts/chaser-pardofelis/atuin.nix
@@ -1,18 +0,0 @@
-{...}: {
-  # Atuin server for shell history sync
-  services.atuin = {
-    enable = true;
-    host = "127.0.0.1";
-    port = 10423;
-    openRegistration = false;
-    database.createLocally = false; # Disable create PostgreSQL
-    database.uri = "sqlite:///var/lib/atuin/atuin.db";
-  };
-
-  systemd.services.atuin = {
-    serviceConfig = {
-      StateDirectory = "atuin";
-      StateDirectoryMode = "0700";
-    };
-  };
-}
hosts/chaser-pardofelis/caddy.nix
@@ -14,7 +14,6 @@ in {
   services.caddy = {
     virtualHosts = let
       localAddress = {
-        atuin = "http://localhost:${builtins.toString config.services.atuin.port}";
         authelia = "http://${
           # Assuming address start with `tcp://`.
           builtins.substring 6 (-1) config.services.authelia.instances.main.settings.server.address
@@ -22,10 +21,6 @@ in {
         prometheus = "http://${config.services.victoriametrics.listenAddress}";
       };
     in {
-      "atuin.hpcesia.com".extraConfig = ''
-        encode zstd gzip
-        reverse_proxy ${localAddress.atuin}
-      '';
       "phanpy.trin.one".extraConfig = ''
         encode zstd gzip
         root * ${phanpy}/dist/
modules/hosts/chaser-pardofelis/default.nix
@@ -22,6 +22,7 @@
         [
           "artalk"
           "authelia"
+          "autin"
           "caddy"
           "fail2ban"
           "forgejo"
modules/services/autin.nix
@@ -0,0 +1,29 @@
+{lib, ...}: {
+  flake.modules.nixos."services/autin" = {config, ...}: {
+    # Atuin server for shell history sync
+    services.atuin = {
+      enable = true;
+      host = "127.0.0.1";
+      port = 10423;
+      openRegistration = false;
+      database.createLocally = false; # Disable create PostgreSQL
+      database.uri = "sqlite:///var/lib/atuin/atuin.db";
+    };
+
+    systemd.services.atuin = {
+      serviceConfig = {
+        StateDirectory = "atuin";
+        StateDirectoryMode = "0700";
+      };
+    };
+
+    services.caddy.virtualHosts."autin.hpcesia.com".extraConfig =
+      lib.mkIf config.services.caddy.enable
+      (let
+        localAddress = "http://localhost:${builtins.toString config.services.atuin.port}";
+      in ''
+        encode zstd gzip
+        reverse_proxy ${localAddress}
+      '');
+  };
+}