Compare commits

..

No commits in common. "8db9ceb372f2ce799beebf573b609909f573aa7c" and "5f42498a39cf55848447e96802c4d1fbd9aa4f7a" have entirely different histories.

5 changed files with 26 additions and 126 deletions

50
flake.lock generated
View file

@ -428,31 +428,6 @@
"type": "github"
}
},
"python-flexseal": {
"inputs": {
"flake-utils": [
"stable-diffusion-webui-nix",
"flake-utils"
],
"nixpkgs": [
"stable-diffusion-webui-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1751898758,
"narHash": "sha256-8EmTPdfOymvvHhmHYWiyO3cwZ4gtLo5uBFm3CU5vySo=",
"owner": "Janrupf",
"repo": "python-flexseal",
"rev": "af318e1fd047abbefcc68d0292a4d902179c95fe",
"type": "github"
},
"original": {
"owner": "Janrupf",
"repo": "python-flexseal",
"type": "github"
}
},
"root": {
"inputs": {
"dedupe_flake-compat": "dedupe_flake-compat",
@ -472,7 +447,6 @@
"nur": "nur",
"nvf": "nvf",
"sops-nix": "sops-nix",
"stable-diffusion-webui-nix": "stable-diffusion-webui-nix",
"stylix": "stylix",
"systems": "systems",
"text": "text"
@ -498,30 +472,6 @@
"type": "github"
}
},
"stable-diffusion-webui-nix": {
"inputs": {
"flake-utils": [
"dedupe_flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"python-flexseal": "python-flexseal"
},
"locked": {
"lastModified": 1751899247,
"narHash": "sha256-bh6xwc24Rv0YE4grKXvj+kmXmydns+OrlWn4WLnJSY4=",
"owner": "janrupf",
"repo": "stable-diffusion-webui-nix",
"rev": "d5ba5dccd190b0ded17f9c4a23dc7665c6dc2eae",
"type": "github"
},
"original": {
"owner": "janrupf",
"repo": "stable-diffusion-webui-nix",
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",

View file

@ -15,17 +15,6 @@
systems.url = "github:nix-systems/default";
# nixos-unstable provides a binary cache for all packages.
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# home-manager manages our user packages and dotfiles
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# the nix user repository for mainly firefox extensions
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
};
# impermanence provides a nice abstraction over linking files from /persist
impermanence.url = "github:nix-community/impermanence";
# flake-parts lets us define flake modules.
@ -76,13 +65,24 @@
};
};
### FLAKES ###
### HOME-MANAGER ###
# home-manager manages our user packages and dotfiles
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# nix-index-database indexes the nixpkgs binaries for use with comma
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
# the nix user repository for mainly firefox extensions
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-parts.follows = "flake-parts";
};
# nvf provides modules to wrap neovim
nvf = {
url = "github:notashelf/nvf";
@ -94,12 +94,6 @@
mnw.follows = "dedupe_mnw";
};
};
# provides comfy ui and sdwebui services
stable-diffusion-webui-nix = {
url = "github:janrupf/stable-diffusion-webui-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "dedupe_flake-utils";
};
### DEDUPE ###

View file

@ -18,33 +18,14 @@ in
mkHost = domain: if isRootDomain domain then domain else mkWildcardDomain (mkRootDomain domain);
mkWebApp =
{
config,
name,
defaultPort,
persistDirs ? [ ],
serviceConfig ? { },
extraOptions ? { },
extraConfig ? { },
}:
let
cfg = config.server.web-apps.${name};
networkingConfig =
{
config,
cfg,
name,
}:
mkIf (cfg.domain != "") {
assertions = singleton {
assertion = config.server.web-servers.nginx.enable;
message = "You must enable a web server if you want to set server.web-apps.${name}.domain.";
};
server.ddns.domains = singleton (mkRootDomain cfg.domain);
server.web-servers.nginx.proxies = singleton {
source = cfg.domain;
target = "http://${config.hostname}:${toString cfg.port}";
};
};
in
{
options.server.web-apps.${name} = {
@ -60,10 +41,20 @@ in
inherit persistDirs;
networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = singleton cfg.port; };
}
(networkingConfig { inherit config cfg name; })
extraConfig
(mkIf (cfg.domain != "") {
assertions = singleton {
assertion = config.server.web-servers.nginx.enable;
message = "You must enable a web server if you want to set server.web-apps.${name}.domain.";
};
server.networking.ddns.domains = singleton (mkRootDomain cfg.domain);
server.web-servers.nginx.proxies = singleton {
source = cfg.domain;
target = "http://${config.hostname}:${toString cfg.port}";
};
})
serviceConfig
cfg.extraCfg
]);
};
};
}

View file

@ -23,7 +23,6 @@
}
];
};
extraCfg.server.web-apps.comfy-ui.enable = true;
};
apollo = {
graphical = false;

View file

@ -1,34 +0,0 @@
{
lib,
config,
inputs,
...
}:
let
inherit (lib.lists) singleton;
inherit (config.flake.lib.services) mkWebApp;
in
{
flake.modules.nixos.default =
{ config, ... }:
let
upstreamCfg = config.services.comfyUi;
in
mkWebApp {
inherit config;
name = "comfy-ui";
defaultPort = 8188;
persistDirs = singleton {
directory = upstreamCfg.dataDir;
inherit (upstreamCfg) user group;
mode = "777";
};
extraConfig.services.comfyUi = {
enable = true;
listenHost = "0.0.0.0";
};
}
// {
imports = [ inputs.stable-diffusion-webui-nix.nixosModules.default ];
};
}