From ee17bbadfed47af24572919d143f260c9c57bb36 Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 23 Apr 2023 02:27:01 -0400 Subject: feat: add nix flake --- nix/default.nix | 16 ++++++++++++++++ nix/module.nix | 27 +++++++++++++++++++++++++++ nix/server.nix | 13 +++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 nix/default.nix create mode 100644 nix/module.nix create mode 100644 nix/server.nix (limited to 'nix') diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000..fca9993 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,16 @@ +{ + lib, + python311Packages, + version, +}: +python311Packages.buildPythonPackage { + pname = "guzzle-api"; + inherit version; + + src = lib.cleanSource ../.; + format = "flit"; + doCheck = false; + + propagatedBuildInputs = with python311Packages; [fastapi pydantic uvicorn]; + propagatedNativeBuildInputs = with python311Packages; [flit-core]; +} diff --git a/nix/module.nix b/nix/module.nix new file mode 100644 index 0000000..0dff2d0 --- /dev/null +++ b/nix/module.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.services.guzzle-api; + inherit (lib) mkDefault mkEnableOption mkIf; +in { + options.services.guzzle-api.enable = mkEnableOption "enable guzzle-api"; + + config.systemd.services.guzzle-api = mkIf cfg.enable { + guzzle-api = { + enable = mkDefault true; + ports = mkDefault ["8080:80"]; + wantedBy = ["multi-user.target"]; + after = ["network.target"]; + script = '' + ${pkgs.guzzle-api-server} --host 0.0.0.0 --port 8000 + ''; + serviceConfig = mkDefault { + Restart = "always"; + Type = "simple"; + }; + }; + }; +} diff --git a/nix/server.nix b/nix/server.nix new file mode 100644 index 0000000..18e4673 --- /dev/null +++ b/nix/server.nix @@ -0,0 +1,13 @@ +{ + writeShellApplication, + python311, + guzzle-api, + ... +}: +writeShellApplication { + name = "guzzle-api-server"; + runtimeInputs = [(python311.withPackages (p: [p.uvicorn guzzle-api]))]; + text = '' + uvicorn guzzle_api.api:app "$@" + ''; +} -- cgit v1.2.3