]> gitweb.ps.run Git - chirp/commitdiff
add systemd service to flake
authorpatrick-scho <patrick.schoenberger@posteo.de>
Fri, 11 Apr 2025 13:38:33 +0000 (15:38 +0200)
committerpatrick-scho <patrick.schoenberger@posteo.de>
Fri, 11 Apr 2025 13:38:33 +0000 (15:38 +0200)
flake.nix

index 3444d104a79e43d2873a10a5cc86ce241a4f4092..29c9adedf3ee958f85d8b947d6faf561770ca5a1 100644 (file)
--- a/flake.nix
+++ b/flake.nix
@@ -21,7 +21,7 @@
           '';
 
           installPhase = ''
-            mkdir -p $out/bin
+            mkdir -p $out/bin $out/db
             cp zig-out/bin/chirp $out/bin
           '';
         };
           type = "app";
           program = "${self.packages.${system}.default}/bin/chirp";
         };
-      });
+      })
+      // {
+        nixosModules.default = { config, lib, pkgs, ... }: {
+          options.services.chirp = {
+            enable = lib.mkEnableOption "Enable Chirp";
+
+            port = lib.mkOption {
+              type = lib.types.port;
+              default = 8080;
+              description = "Port to listen on";
+            };
+          };
+
+          config = lib.mkIf config.services.chirp.enable {
+            systemd.services.chirp = {
+              description = "Chirp SystemD Service";
+              wantedBy = ["multi-user.target"];
+              after = ["network.target"];
+              serviceConfig = {
+                ExecStart = "${self.packages.${pkgs.system}.default}/bin/chirp";
+                Restart = "always";
+                Type = "simple";
+                DynamicUser = "yes";
+              };
+              environment = {
+                PORT = toString config.services.chirp.port;
+              };
+            };
+          };
+        };
+      };
 }