diff --git a/nix/manifest.nix b/nix/manifest.nix index 069377e..d207af5 100644 --- a/nix/manifest.nix +++ b/nix/manifest.nix @@ -23,7 +23,10 @@ } ]; }; - extraCfg.server.web-apps.comfy-ui.enable = true; + extraCfg.server.web-apps = { + comfy-ui.enable = true; + sd-webui-forge.enable = true; + }; }; apollo = { graphical = false; diff --git a/nix/modules/server/web-apps/sd-webui-forge.nix b/nix/modules/server/web-apps/sd-webui-forge.nix new file mode 100644 index 0000000..cf88d86 --- /dev/null +++ b/nix/modules/server/web-apps/sd-webui-forge.nix @@ -0,0 +1,34 @@ +{ + lib, + inputs, + config, + ... +}: +let + inherit (lib.lists) singleton; + inherit (config.flake.lib.services) mkWebApp; +in +{ + flake.modules.nixos.default = + { config, ... }: + let + upstreamCfg = config.services.sd-webui-forge; + in + mkWebApp { + inherit config; + name = "sd-webui-forge"; + defaultPort = 7860; + persistDirs = singleton { + directory = upstreamCfg.dataDir; + inherit (upstreamCfg) user group; + }; + extraConfig.services.sd-webui-forge = { + enable = true; + listen = true; + extraArgs = "--cuda-malloc"; + }; + } + // { + imports = [ inputs.stable-diffusion-webui-nix.nixosModules.default ]; + }; +}