mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-08-09 05:14:41 -05:00
Compare commits
20 commits
9598576855
...
02eb4737b9
Author | SHA1 | Date | |
---|---|---|---|
![]() |
02eb4737b9 | ||
![]() |
a1ce1f2508 | ||
![]() |
4a0ce7226f | ||
![]() |
bc7fa56e3c | ||
![]() |
dfe35144e4 | ||
![]() |
91863080f7 | ||
![]() |
fd9c10bc08 | ||
![]() |
848426d5ec | ||
![]() |
c4f55dd01d | ||
![]() |
480ff8d120 | ||
![]() |
350bf2a00d | ||
![]() |
08e7a47c6a | ||
![]() |
8f36cf035d | ||
![]() |
bd358b862b | ||
![]() |
957069137b | ||
![]() |
9b4757233d | ||
![]() |
47dd4e52e5 | ||
![]() |
2085a2de54 | ||
![]() |
e11c0a06a1 | ||
![]() |
b94b8b2ba4 |
10 changed files with 210 additions and 236 deletions
219
flake.lock
generated
219
flake.lock
generated
|
@ -277,6 +277,48 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_3": {
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixified-ai",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733312601,
|
||||||
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_4": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixified-ai",
|
||||||
|
"hercules-ci-effects",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733312601,
|
||||||
|
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "flake-parts",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nur",
|
"nur",
|
||||||
|
@ -356,24 +398,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_6"
|
"systems": "systems_7"
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "flake-utils",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_5": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_8"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
@ -539,6 +564,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"hercules-ci-effects_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_4",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixified-ai",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733333617,
|
||||||
|
"narHash": "sha256-nMMQXREGvLOLvUa0ByhYFdaL0Jov0t1wzLbKjr05P2w=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "hercules-ci-effects",
|
||||||
|
"rev": "56f8ea8d502c87cf62444bec4ee04512e8ea24ea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "hercules-ci-effects",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -1079,45 +1126,23 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-comfyui": {
|
"nixified-ai": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-parts": "flake-parts_3",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"hercules-ci-effects": "hercules-ci-effects_2",
|
||||||
"poetry2nix": "poetry2nix"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733961600,
|
"lastModified": 1747142274,
|
||||||
"narHash": "sha256-kEM0Dck4K4dg9QYmdldy62av+XzsNz9XhfTAhtGWwzo=",
|
"narHash": "sha256-5WuEIrM4yTSMMoxJHQ9RBwO0liBE9KcCldyiBfcYIHU=",
|
||||||
"owner": "dyscorv",
|
"owner": "nixified-ai",
|
||||||
"repo": "nix-comfyui",
|
"repo": "flake",
|
||||||
"rev": "cbd17e10b53dcf8fd9f5ba6f3c1ea1a550082659",
|
"rev": "ba83e9b493f5fd278abe8ee91040323296da3f39",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "dyscorv",
|
"owner": "nixified-ai",
|
||||||
"repo": "nix-comfyui",
|
"repo": "flake",
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-comfyui",
|
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1729742964,
|
|
||||||
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1205,16 +1230,18 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733749988,
|
"lastModified": 1734424634,
|
||||||
"narHash": "sha256-+5qdtgXceqhK5ZR1YbP1fAUsweBIrhL38726oIEAtDs=",
|
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bc27f0fde01ce4e1bfec1ab122d72b7380278e68",
|
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "NixOS",
|
||||||
"type": "indirect"
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
|
@ -1267,11 +1294,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_5",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"treefmt-nix": "treefmt-nix_3"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749427072,
|
"lastModified": 1749427072,
|
||||||
|
@ -1287,37 +1314,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"poetry2nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"nix-comfyui",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-comfyui",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"nix-comfyui",
|
|
||||||
"flake-utils",
|
|
||||||
"systems"
|
|
||||||
],
|
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731205797,
|
|
||||||
"narHash": "sha256-F7N1mxH1VrkVNHR3JGNMRvp9+98KYO4b832KS8Gl2xI=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "poetry2nix",
|
|
||||||
"rev": "f554d27c1544d9c56e5f1f8e2b8aff399803674e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "poetry2nix",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pre-commit-hooks": {
|
"pre-commit-hooks": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
|
@ -1438,13 +1434,13 @@
|
||||||
"lix-module": "lix-module",
|
"lix-module": "lix-module",
|
||||||
"ngipkgs": "ngipkgs",
|
"ngipkgs": "ngipkgs",
|
||||||
"niri": "niri",
|
"niri": "niri",
|
||||||
"nix-comfyui": "nix-comfyui",
|
"nixified-ai": "nixified-ai",
|
||||||
"nixos-cosmic": "nixos-cosmic",
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
|
||||||
"sops-nix": "sops-nix_2",
|
"sops-nix": "sops-nix_2",
|
||||||
"systems": "systems_7",
|
"systems": "systems_6",
|
||||||
"waybar": "waybar",
|
"waybar": "waybar",
|
||||||
"yazi": "yazi",
|
"yazi": "yazi",
|
||||||
"zed-editor": "zed-editor",
|
"zed-editor": "zed-editor",
|
||||||
|
@ -1675,21 +1671,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_6": {
|
"systems_6": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_7": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680978846,
|
"lastModified": 1680978846,
|
||||||
"narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=",
|
"narHash": "sha256-Gtqg8b/v49BFDpDetjclCYXm8mAnTrUzR0JnE2nv5aw=",
|
||||||
|
@ -1704,7 +1685,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_8": {
|
"systems_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
@ -1742,28 +1723,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"treefmt-nix_2": {
|
"treefmt-nix_2": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nix-comfyui",
|
|
||||||
"poetry2nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1730120726,
|
|
||||||
"narHash": "sha256-LqHYIxMrl/1p3/kvm2ir925tZ8DkI0KA10djk8wecSk=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "9ef337e492a5555d8e17a51c911ff1f02635be15",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix_3": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nur",
|
"nur",
|
||||||
|
@ -1881,7 +1840,7 @@
|
||||||
},
|
},
|
||||||
"yazi": {
|
"yazi": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_4",
|
||||||
"nixpkgs": "nixpkgs_6",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"rust-overlay": "rust-overlay_3"
|
"rust-overlay": "rust-overlay_3"
|
||||||
},
|
},
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
url = "gitlab:InvraNet/zen-flake";
|
url = "gitlab:InvraNet/zen-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nix-comfyui.url = "github:dyscorv/nix-comfyui";
|
nixified-ai.url = "github:nixified-ai/flake";
|
||||||
};
|
};
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
|
@ -129,6 +129,7 @@
|
||||||
# inputs.ngipkgs.nixosModules."services.peertube"
|
# inputs.ngipkgs.nixosModules."services.peertube"
|
||||||
# inputs.ngipkgs.nixosModules.default
|
# inputs.ngipkgs.nixosModules.default
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
inputs.nixified-ai.nixosModules.comfyui
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
templates = {
|
templates = {
|
||||||
|
|
33
modules/config/instances/config/comfyui.nix
Executable file
33
modules/config/instances/config/comfyui.nix
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
{ moduleFunctions }:
|
||||||
|
let
|
||||||
|
inherit (moduleFunctions.instancesFunctions)
|
||||||
|
domain3
|
||||||
|
servicePath
|
||||||
|
sslPath
|
||||||
|
sopsPath
|
||||||
|
;
|
||||||
|
|
||||||
|
label = "ComfyUI";
|
||||||
|
name = "comfyui";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
label = label;
|
||||||
|
name = name;
|
||||||
|
short = label;
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
path0 = "${sopsPath}/${name}";
|
||||||
|
};
|
||||||
|
tags = [
|
||||||
|
name
|
||||||
|
"comfy"
|
||||||
|
"ui"
|
||||||
|
];
|
||||||
|
paths = {
|
||||||
|
path0 = "${servicePath}/${label}";
|
||||||
|
};
|
||||||
|
ports = {
|
||||||
|
port0 = 8188;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -20,6 +20,21 @@ in
|
||||||
];
|
];
|
||||||
keyword = "Discord";
|
keyword = "Discord";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "ComfyUI";
|
||||||
|
url = "https://civitai.com";
|
||||||
|
tags = [
|
||||||
|
"comfyui"
|
||||||
|
"comfy"
|
||||||
|
"ui"
|
||||||
|
"stable"
|
||||||
|
"diffusion"
|
||||||
|
"ai"
|
||||||
|
"art"
|
||||||
|
"generation"
|
||||||
|
];
|
||||||
|
keyword = "Comfy";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "Elm Packages";
|
name = "Elm Packages";
|
||||||
url = "https://package.elm-lang.org/packages";
|
url = "https://package.elm-lang.org/packages";
|
||||||
|
|
|
@ -27,23 +27,23 @@ let
|
||||||
suffix = "(Remote)";
|
suffix = "(Remote)";
|
||||||
urlTemplate = name: "https://${instances.${name}.domains.url0}";
|
urlTemplate = name: "https://${instances.${name}.domains.url0}";
|
||||||
services = [
|
services = [
|
||||||
"audiobookshelf"
|
instances.audiobookshelf.name
|
||||||
"forgejo"
|
instances.forgejo.name
|
||||||
"glance"
|
instances.glance.name
|
||||||
"jellyfin"
|
instances.jellyfin.name
|
||||||
"mastodon"
|
instances.mastodon.name
|
||||||
"ollama"
|
instances.ollama.name
|
||||||
"opencloud"
|
instances.opencloud.name
|
||||||
"searx"
|
instances.searx.name
|
||||||
"vaultwarden"
|
instances.vaultwarden.name
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
suffix = "(Desktop)";
|
suffix = "(Desktop)";
|
||||||
urlTemplate = name: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
urlTemplate = name: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
||||||
services = [
|
services = [
|
||||||
"ollama"
|
instances.ollama.name
|
||||||
"syncthing"
|
instances.syncthing.name
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -51,7 +51,8 @@ let
|
||||||
urlTemplate =
|
urlTemplate =
|
||||||
name: "http://${ceres.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
name: "http://${ceres.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
||||||
services = [
|
services = [
|
||||||
"jellyfin"
|
instances.jellyfin.name
|
||||||
|
instances.comfyui.name
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -59,7 +60,7 @@ let
|
||||||
urlTemplate =
|
urlTemplate =
|
||||||
name: "http://${synology.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
name: "http://${synology.ip.address0}:${builtins.toString instances.${name}.ports.port0}";
|
||||||
services = [
|
services = [
|
||||||
"syncthing"
|
instances.syncthing.name
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
123
modules/nixos/services/comfyui/default.nix
Normal file → Executable file
123
modules/nixos/services/comfyui/default.nix
Normal file → Executable file
|
@ -1,96 +1,55 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
|
flake,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.comfyui;
|
inherit (flake.config.machines.devices) ceres;
|
||||||
|
inherit (flake.config.services.instances) comfyui web;
|
||||||
|
inherit (flake.config.people) user0;
|
||||||
|
service = comfyui;
|
||||||
|
localhost = web.localhost.address1;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.comfyui = with lib; {
|
|
||||||
enable = mkEnableOption "ComfyUI service";
|
|
||||||
|
|
||||||
package = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.comfyuiPackages.comfyui.override {
|
|
||||||
extensions = with pkgs.comfyuiPackages.extensions; [
|
|
||||||
acly-inpaint
|
|
||||||
acly-tooling
|
|
||||||
cubiq-ipadapter-plus
|
|
||||||
fannovel16-controlnet-aux
|
|
||||||
];
|
|
||||||
commandLineArgs = [
|
|
||||||
"--preview-method"
|
|
||||||
"auto"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
description = "The ComfyUI package to use";
|
|
||||||
};
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.port;
|
|
||||||
default = 8188;
|
|
||||||
description = "Port to listen on";
|
|
||||||
};
|
|
||||||
|
|
||||||
host = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "0.0.0.0";
|
|
||||||
description = "Host to bind to";
|
|
||||||
};
|
|
||||||
|
|
||||||
openFirewall = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = "Open ports in the firewall";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = [ cfg.package ];
|
|
||||||
|
|
||||||
networking.firewall = lib.mkIf cfg.openFirewall {
|
|
||||||
allowedTCPPorts = [ cfg.port ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.comfyui = {
|
|
||||||
description = "ComfyUI Service";
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
after = [ "network.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${cfg.package}/bin/comfyui --port ${toString cfg.port} --listen ${cfg.host}";
|
|
||||||
Restart = "on-failure";
|
|
||||||
User = "comfyui";
|
|
||||||
Group = "comfyui";
|
|
||||||
WorkingDirectory = "/var/lib/comfyui";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.users.comfyui = {
|
|
||||||
group = "comfyui";
|
|
||||||
isSystemUser = true;
|
|
||||||
home = "/var/lib/comfyui";
|
|
||||||
createHome = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.comfyui = { };
|
|
||||||
};
|
|
||||||
services.comfyui = {
|
services.comfyui = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.comfyuiPackages.comfyui.override {
|
# package = pkgs.comfyui-nvidia;
|
||||||
extensions = with pkgs.comfyuiPackages.extensions; [
|
host = localhost;
|
||||||
acly-inpaint
|
user = service.name;
|
||||||
acly-tooling
|
acceleration = "cuda";
|
||||||
cubiq-ipadapter-plus
|
# models = builtins.attrValues {
|
||||||
fannovel16-controlnet-aux
|
# inherit (pkgs.nixified-ai)
|
||||||
];
|
# models
|
||||||
commandLineArgs = [
|
# ;
|
||||||
"--preview-method"
|
# };
|
||||||
"auto"
|
# customNodes = builtins.attrValues {
|
||||||
|
# inherit (comfyui.pkgs)
|
||||||
|
# comfyui-gguf
|
||||||
|
# comfyui-impact-pack
|
||||||
|
# ;
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
fileSystems."/var/lib/${service.name}" = {
|
||||||
|
device = service.paths.path0;
|
||||||
|
fsType = "none";
|
||||||
|
options = [
|
||||||
|
"bind"
|
||||||
|
];
|
||||||
|
depends = [
|
||||||
|
ceres.storage0.mount
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"Z ${service.paths.path0} 755 ${service.name} ${service.name} -"
|
||||||
|
];
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
firewall = {
|
||||||
|
allowedTCPPorts = [
|
||||||
|
service.ports.port0
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,12 +4,10 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.services.instances)
|
inherit (flake.config.services)
|
||||||
samba
|
instances
|
||||||
jellyfin
|
|
||||||
audiobookshelf
|
|
||||||
;
|
;
|
||||||
service = samba;
|
service = instances.samba;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# If you ever need to start fresh, you need to add yourself to the Samba users database:
|
# If you ever need to start fresh, you need to add yourself to the Samba users database:
|
||||||
|
@ -20,12 +18,16 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
settings = {
|
settings = {
|
||||||
${jellyfin.name} = {
|
${instances.jellyfin.name} = {
|
||||||
path = jellyfin.paths.path0;
|
path = instances.jellyfin.paths.path0;
|
||||||
writable = "true";
|
writable = "true";
|
||||||
};
|
};
|
||||||
${audiobookshelf.name} = {
|
${instances.audiobookshelf.name} = {
|
||||||
path = audiobookshelf.paths.path0;
|
path = instances.audiobookshelf.paths.path0;
|
||||||
|
writable = "true";
|
||||||
|
};
|
||||||
|
${instances.comfyui.name} = {
|
||||||
|
path = instances.comfyui.paths.path0;
|
||||||
writable = "true";
|
writable = "true";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,6 +39,7 @@ in
|
||||||
"vaultwarden"
|
"vaultwarden"
|
||||||
"vboxusers"
|
"vboxusers"
|
||||||
"wheel"
|
"wheel"
|
||||||
|
"comfyui"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,7 @@ let
|
||||||
inherit (flake.config.services.instances)
|
inherit (flake.config.services.instances)
|
||||||
jellyfin
|
jellyfin
|
||||||
audiobookshelf
|
audiobookshelf
|
||||||
|
comfyui
|
||||||
;
|
;
|
||||||
|
|
||||||
synologySecrets = config.sops.secrets."network/synology".path;
|
synologySecrets = config.sops.secrets."network/synology".path;
|
||||||
|
@ -39,6 +40,7 @@ in
|
||||||
remoteFolders = [
|
remoteFolders = [
|
||||||
audiobookshelf.name
|
audiobookshelf.name
|
||||||
jellyfin.name
|
jellyfin.name
|
||||||
|
comfyui.name
|
||||||
];
|
];
|
||||||
|
|
||||||
synologyMounts = synologyDrive: {
|
synologyMounts = synologyDrive: {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
let
|
let
|
||||||
inherit (flake.config.people) user0 user1;
|
inherit (flake.config.people) user0 user1;
|
||||||
inherit (flake.config.machines.devices) mars ceres synology;
|
inherit (flake.config.machines.devices) mars ceres synology;
|
||||||
inherit (flake.config.services.instances) jellyfin audiobookshelf;
|
inherit (flake.config.services.instances) jellyfin audiobookshelf comfyui;
|
||||||
synologySecrets = config.sops.secrets."network/synology".path;
|
synologySecrets = config.sops.secrets."network/synology".path;
|
||||||
ceresSecrets = config.sops.secrets."network/server".path;
|
ceresSecrets = config.sops.secrets."network/server".path;
|
||||||
in
|
in
|
||||||
|
@ -30,6 +30,7 @@ in
|
||||||
sambaFolders = [
|
sambaFolders = [
|
||||||
audiobookshelf.name
|
audiobookshelf.name
|
||||||
jellyfin.name
|
jellyfin.name
|
||||||
|
comfyui.name
|
||||||
];
|
];
|
||||||
|
|
||||||
synologyMounts = synologyDrive: {
|
synologyMounts = synologyDrive: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue