diff --git a/flake.nix b/flake.nix index ee02fea..ced400d 100644 --- a/flake.nix +++ b/flake.nix @@ -43,6 +43,7 @@ ; }; defaultPackage = kitchen; + nixosModules.kitchen = import ./nix/kitchen/module.nix; } ); } \ No newline at end of file diff --git a/nix/kitchen/module.nix b/nix/kitchen/module.nix new file mode 100644 index 0000000..4a99114 --- /dev/null +++ b/nix/kitchen/module.nix @@ -0,0 +1,32 @@ +{config, lib, pkgs, ...}: +with lib; +{ + options = { + services.kitchen.enable = mkEnableOption "Activates the kitchen recipe/shopping service"; + + services.kitchen.listenSocket = mkOption { + description = "Listen socket for the kitchen service"; + default = "0.0.0.0:9003"; + defaultText = "0.0.0.0:9003"; + }; + }; + + config = mkIf config.services.kitchen.enable { + nixpkgs.overlays = [ + (final: prev: { + kitchen = (import ../packages/kitchen/package.nix) { inherit pkgs; }; + recipes = (import ../packages/recipes/package.nix) { inherit pkgs; }; + }) + ]; + systemd.services.kitchen = { + wantedBy = [ "multi-user.target" "default.target" ]; + wants = [ "network.target" ]; + after = [ "networ-online.target" ]; + serviceConfig = { + restart = "on-failure"; + restartSec = "10s"; + ExecStart = "${self.packages."${system}".kitchen}/bin/kitchen serve --listen ${config.services.kitchen.listenSocket} --dir ${pkgs.recipes}"; + }; + }; + }; +} \ No newline at end of file diff --git a/result b/result new file mode 120000 index 0000000..140c7da --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/vyw5rbm7vqyzp27b1a2c2s4x6vfdn4xa-rust-workspace-0.2.1 \ No newline at end of file