Commit db2aab7

HPCesia <me@hpcesia.com>
2025-07-25 17:29:37
feat(service): add atuin server on pardo
1 parent 5c2744c
Changed files (3)
home
base
hosts
chaser-pardofelis
home/base/core/core.nix
@@ -1,4 +1,8 @@
-{pkgs, ...}: {
+{
+  pkgs,
+  pkgs-unstable,
+  ...
+}: {
   home.packages = with pkgs; [
     # Misc
     gnupg
@@ -84,6 +88,15 @@
       enableBashIntegration = true;
       enableFishIntegration = true;
       enableNushellIntegration = true;
+      package = pkgs-unstable.atuin;
+      settings = {
+        sync_address = "https://atuin.hpcesia.com";
+        sync_frequency = "10m";
+        filter_mode = "host";
+        style = "full";
+        inline_height = 32;
+        keymap_mode = "vim-normal";
+      };
     };
   };
 }
hosts/chaser-pardofelis/atuin.nix
@@ -0,0 +1,19 @@
+{pkgs-unstable, ...}: {
+  # Atuin server for shell history sync
+  services.atuin = {
+    enable = true;
+    package = pkgs-unstable.atuin;
+    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
@@ -17,6 +17,7 @@
     virtualHosts = let
       localAddress = {
         artalk = "http://localhost:${builtins.toString config.services.artalk.settings.port}";
+        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
@@ -34,6 +35,10 @@
         encode zstd gzip
         reverse_proxy ${localAddress.artalk}
       '';
+      "atuin.hpcesia.com".extraConfig = ''
+        encode zstd gzip
+        reverse_proxy ${localAddress.atuin}
+      '';
       "authelia.hpcesia.com".extraConfig = ''
         encode zstd gzip
         reverse_proxy ${localAddress.authelia}