diff options
| -rw-r--r-- | flake.nix | 15 | ||||
| -rw-r--r-- | nix/default.nix | 2 | ||||
| -rw-r--r-- | nix/module.nix | 35 |
3 files changed, 48 insertions, 4 deletions
@@ -25,6 +25,10 @@ forAllSystems = nixpkgs.lib.genAttrs systems; nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); + + packageFn = pkgs: { + getchoo-website = pkgs.callPackage ./nix {}; + }; in { checks = forAllSystems (system: { pre-commit-check = pre-commit-hooks.lib.${system}.run { @@ -61,11 +65,16 @@ }; }); + nixosModules.default = import ./nix/module.nix; + packages = forAllSystems (s: let pkgs = nixpkgsFor.${s}; - in rec { - getchoo-website = pkgs.callPackage ./nix {}; - default = getchoo-website; + p = packageFn pkgs; + in { + inherit (p) getchoo-website; + default = p.getchoo-website; }); + + overlays.default = _: packageFn; }; } diff --git a/nix/default.nix b/nix/default.nix index b626a80..8776839 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -1,6 +1,6 @@ {mkYarnPackage, ...}: mkYarnPackage rec { - name = "getchoo-website"; + pname = "getchoo-website"; src = builtins.path { path = ../.; diff --git a/nix/module.nix b/nix/module.nix new file mode 100644 index 0000000..decb686 --- /dev/null +++ b/nix/module.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.services.getchoo-website; + inherit (lib) mkEnableOption mkIf mkOption types; +in { + options.services.getchoo-website = { + enable = mkEnableOption "enable getchoo-website"; + + hostName = mkOption { + type = types.str; + description = "hostname for nginx virtualHost"; + }; + + location = mkOption { + type = types.str; + default = "/"; + description = "location to serve on virtualHost"; + }; + }; + + config.services.nginx = mkIf cfg.enable { + enable = true; + virtualHosts.${cfg.hostName} = { + locations.${cfg.location} = { + root = "${pkgs.getchoo-website}/libexec/getchoo-website/deps/getchoo-website/dist/"; + index = "index.html"; + tryFiles = "$uri =404"; + }; + }; + }; +} |
