diff --git a/flake.nix b/flake.nix index e9e35c6..2fb6c45 100644 --- a/flake.nix +++ b/flake.nix @@ -27,5 +27,6 @@ default = pkgs.callPackage ./nix/package.nix { }; } ); + nixosModules.default = import ./nix/modules/nixos.nix; }; } diff --git a/nix/modules/nixos.nix b/nix/modules/nixos.nix new file mode 100644 index 0000000..f66c30b --- /dev/null +++ b/nix/modules/nixos.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + pkgs, + ... +}: +let + inherit (builtins) toString; + inherit (lib) mkOption mkEnableOption mkIf; + inherit (lib.types) port str; + cfg = config.services.rrv-sh; + package = pkgs.callPackage ../package.nix { }; +in +{ + options.services.rrv-sh = { + enable = mkEnableOption ""; + port = mkOption { + type = port; + default = 2309; + }; + user = mkOption { + type = str; + default = "rrv-sh"; + }; + group = mkOption { + type = str; + default = "rrv-sh"; + }; + }; + config = mkIf cfg.enable { + systemd.services.rrv-sh = { + description = "the rrv.sh website"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + Restart = "on-failure"; + RestartSec = "5s"; + User = cfg.user; + Group = cfg.group; + ExecStart = "${pkgs.live-server}/bin/live-server -p ${toString cfg.port} ${package}"; + }; + }; + }; +}