Compare commits

..

23 commits

Author SHA1 Message Date
Nick
c83ab72894 feat: comfyui-test 2025-07-27 21:55:31 -05:00
Nick
8d1531b2f5 feat: comfyui-test 2025-07-27 21:53:49 -05:00
Nick
47e9f98b3e feat: comfyui-test 2025-07-27 21:53:20 -05:00
Nick
3095a75c52 feat: comfyui-test 2025-07-27 21:51:54 -05:00
Nick
d3db377206 feat: comfyui-test 2025-07-27 21:50:48 -05:00
Nick
d18754dee6 feat: comfyui-test 2025-07-27 21:49:46 -05:00
Nick
25d1a2304f feat: comfyui-test 2025-07-27 21:47:58 -05:00
Nick
a659aa1704 feat: comfyui-test 2025-07-27 21:45:30 -05:00
Nick
6d27fabd0e feat: comfyui-test 2025-07-27 21:43:53 -05:00
Nick
5ca52b6ef8 feat: comfyui-test 2025-07-27 21:39:10 -05:00
Nick
3fbc724247 feat: comfyui-test 2025-07-27 21:35:37 -05:00
Nick
21ef27f8d9 feat: comfyui-test 2025-07-27 20:11:52 -05:00
Nick
31d60229f7 feat: comfyui-test 2025-07-27 20:09:21 -05:00
Nick
59957cdc78 feat: added python tooling 2025-07-27 20:06:47 -05:00
Nick
cd09949bee feat: added python tooling 2025-07-27 19:15:22 -05:00
Nick
09a546cf7c feat: added comfyui to caddy 2025-07-27 18:22:08 -05:00
Nick
ca798e7e5d feat: added comfyui to caddy 2025-07-27 18:11:02 -05:00
Nick
ad3a9e1a26 feat: added comfyui to caddy 2025-07-27 18:10:48 -05:00
Nick
41c9397735 feat: added comfyui to caddy 2025-07-27 18:07:10 -05:00
Nick
7a35ad834d feat: added comfyui to caddy 2025-07-27 17:53:36 -05:00
Nick
67537dc549 feat: added comfyui to caddy 2025-07-27 17:52:29 -05:00
Nick
d443dc5953 feat: added prompter 2025-07-27 15:53:58 -05:00
Nick
a3719416f3 feat: added prompter 2025-07-27 15:27:20 -05:00
6 changed files with 77 additions and 56 deletions

View file

@ -1,7 +1,7 @@
{ moduleFunctions }: { moduleFunctions }:
let let
inherit (moduleFunctions.instancesFunctions) inherit (moduleFunctions.instancesFunctions)
domain3 domain0
servicePath servicePath
sslPath sslPath
sopsPath sopsPath
@ -9,15 +9,20 @@ let
label = "ComfyUI"; label = "ComfyUI";
name = "comfyui"; name = "comfyui";
subdomain = "comfyui";
domain = "${subdomain}.${domain0}";
in in
{ {
label = label; label = label;
name = name; name = name;
short = label; short = label;
sops = { sops = {
path0 = "${sopsPath}/${name}"; path0 = "${sopsPath}/${name}";
}; };
domains = {
url0 = domain;
};
subdomain = subdomain;
tags = [ tags = [
name name
"comfy" "comfy"
@ -29,5 +34,8 @@ in
ports = { ports = {
port0 = 8188; port0 = 8188;
}; };
ssl = {
cert = "${sslPath}/${domain0}/fullchain.pem";
key = "${sslPath}/${domain0}/key.pem";
};
} }

View file

@ -0,0 +1,14 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
python314
;
inherit (pkgs.python313Packages)
venvShellHook
;
};
}

View file

@ -43,6 +43,7 @@ in
"vaultwarden" "vaultwarden"
"opencloud" "opencloud"
"prompter" "prompter"
"comfyui"
] ]
) )
++ (map ++ (map

View file

@ -9,7 +9,7 @@ in
{ {
services = { services = {
caddy = { caddy = {
environmentFile = config.sops.secrets."caddy/prompter-auth".path; environmentFile = config.sops.secrets."caddy/${service.name}-auth".path;
virtualHosts = { virtualHosts = {
"${host}" = { "${host}" = {
@ -30,23 +30,17 @@ in
sops = sops =
let let
sopsPath = secret: { sopsPath = secret: {
path = "${service.sops.path0}/${service.name}-${secret}"; path = "${service.sops.path0}/${service.name}-${secret}.env";
owner = "root"; owner = "caddy";
mode = "600"; mode = "0400";
}; };
in in
{ {
secrets = builtins.listToAttrs ( secrets = {
map "caddy/${service.name}-auth" = sopsPath "auth";
(secret: {
name = "caddy/${secret}";
value = sopsPath secret;
})
[
"${service.name}-auth"
]
);
}; };
};
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"Z ${service.paths.path0} 755 caddy caddy -" "Z ${service.paths.path0} 755 caddy caddy -"
"Z ${service.sops.path0} 755 caddy caddy -" "Z ${service.sops.path0} 755 caddy caddy -"

View file

@ -50,7 +50,8 @@ firefly-iii-pass: ENC[AES256_GCM,data:eJwIM4YHnXTqTOUfU/0CKMSS534VEZIxkBviI1pd7R
opencloud: opencloud:
env: ENC[AES256_GCM,data:JZOs+86/jhHtXuOb4fsk4ceZuFpSa6PAMN2/vmGlvlXvsx/Yk2ZXeZZU0jtwweN8Sk61A2538OdPpfKynBgwsZ2SgoxAIyJtQl3HZWdZzNZ6+/t+AFvvav/x9nUv1O5704FP5OYOMniQAmqu0ds0JIX3YV/cstoo+rNhNW2emlVhj2ABYhTxy0BFJ8A+Re9y5FN5WT4tmloF/21ZrIwtTw8ULQPCksJfTFwEE+cCN3aIWZn00/4zUuv6CEtZeKeOeLxgQL+G2pPhNrQzG+lw+AKLzXA2mJM+3Zfq0MplyXeFCLkV1GCHksrMPp2w5j2RdtfcdE9IP+tXoD/fZNfYgCK1Pk/JhkXcV9EPbz4KUL/+OpgFqh+RvKGPXH2iTV0B8t2Ag7NowxULI2jKw0c=,iv:1ClzjY1n48cQ9bdBewM5A5Lr/c13HbSSYJ7xYCwZDzA=,tag:FavwE2sX+wSgKOEpywFeMw==,type:str] env: ENC[AES256_GCM,data:JZOs+86/jhHtXuOb4fsk4ceZuFpSa6PAMN2/vmGlvlXvsx/Yk2ZXeZZU0jtwweN8Sk61A2538OdPpfKynBgwsZ2SgoxAIyJtQl3HZWdZzNZ6+/t+AFvvav/x9nUv1O5704FP5OYOMniQAmqu0ds0JIX3YV/cstoo+rNhNW2emlVhj2ABYhTxy0BFJ8A+Re9y5FN5WT4tmloF/21ZrIwtTw8ULQPCksJfTFwEE+cCN3aIWZn00/4zUuv6CEtZeKeOeLxgQL+G2pPhNrQzG+lw+AKLzXA2mJM+3Zfq0MplyXeFCLkV1GCHksrMPp2w5j2RdtfcdE9IP+tXoD/fZNfYgCK1Pk/JhkXcV9EPbz4KUL/+OpgFqh+RvKGPXH2iTV0B8t2Ag7NowxULI2jKw0c=,iv:1ClzjY1n48cQ9bdBewM5A5Lr/c13HbSSYJ7xYCwZDzA=,tag:FavwE2sX+wSgKOEpywFeMw==,type:str]
caddy: caddy:
prompter-auth: ENC[AES256_GCM,data:KsbdZqs3cTTB4gFBlwosY64axFx+Qe+Q1Ulch2YZJXr3L8Jf05luWsbd1+MS7ZxO0C1M9lryNqFTynAntyp4gXSvN3f8/saAHmiG4Y2jlT8OLaqjZULw1TOlsDXK6CeQkyD6LO6jKrtBEPjS,iv:IBbV0+/ENY/pwn5xfxVPKwn4YpwGmZnRtmA86sppabw=,tag:9YbeHqXFi2KyvuEKgQx9sQ==,type:str] prompter-auth: ENC[AES256_GCM,data:uEj6gruCfcIRoCQY9eNcOka+PAIIhAlKnI+ehZ88aZo90tINcxZ7ZvKqlTJr4rt5o+EO7rvRJcYH/s8/+piszFyxSa64Rtq5KdAjfHnRm0QM8q/2JIHnZsQC3fPz1S177WPs/c3Eydh4VeVe,iv:ZOru4ABFgIy9DoTlMl3InSf8zM1ERNpbRNLN6vy97Jc=,tag:5v3w7kvFQCEPBjchE8K0cw==,type:str]
comfyui-auth: ENC[AES256_GCM,data:YkHxbW/0zTmnrggXKl2jNO4OnBaepmCwB3ZC6d8MPIKf8snWJzAvTq5+X5ABzziwKaypHRTcS6vuNntxKrrD8DS7hX9DqVCZc5WeFHI6S5VzHh3SprW2MF4E8nm4Hj+VHoKGmRSSOU1cfX3J,iv:v0Pid0BCY2QsMNaahBvJd4WWZD115JDLHlOCQvPiaGU=,tag:gpsAgt052NoOyIa9WqJXyg==,type:str]
sops: sops:
age: age:
- recipient: age19dpncsdphdt2tmknjs99eghk527pvdrw0m29qjn2z2gg3et5tdtqycqhl0 - recipient: age19dpncsdphdt2tmknjs99eghk527pvdrw0m29qjn2z2gg3et5tdtqycqhl0
@ -62,7 +63,7 @@ sops:
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig== aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-27T19:49:15Z" lastmodified: "2025-07-27T22:50:42Z"
mac: ENC[AES256_GCM,data:G8wx83DyZRoq7LFazBNzBk/KCg2uYZ4XBCXH9vPDIIdycKdpKd5/Akh1LcPZg8f7bB4BfmENrFY3pG0CE/J9Xev5O+UHof/z+PNp0bTEQDses0XgCZCeeaOykERtzflibQwj0gOeMfO9a5h5wzLi8Qlk53uQXnoPn+jb3x/sE3Y=,iv:BsMg/NPCIO13bHLPtREewbthnPBk4rC4KZRyeM5yHN4=,tag:LN89FZVpF5IwdqHAjCtz8Q==,type:str] mac: ENC[AES256_GCM,data:iu/l4hWqbT4yZJEmtuAdHKlP5pAmTkjHsCO4el5gOGFi+oRf3cYhXVu11H4NcPP8MHdajvRb9ly+QeQyBdWcgKwVrTHFvSMy/V95gC1Z5nP7sW/uV8hLeMQ/R+mj3a+Dho5fgjbgOubCF8gYj5vckcjJvq0bAxqTBZjqDAu6QQM=,iv:DMZiLphm//e4e9x76Cez/HKubSLbll27nVmMYNuwNuk=,tag:6mN0YyYtBHHKjzNszGh9Yg==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2

View file

@ -4,23 +4,20 @@
flake, flake,
... ...
}: }:
let let
inherit (flake.config.machines.devices) inherit (flake.config.services.instances) comfyui web;
ceres
;
inherit (flake.config.services.instances)
comfyui
web
;
service = comfyui; service = comfyui;
localhost = web.localhost.address1; localhost = web.localhost.address1;
host = service.domains.url0;
in in
{ {
nixpkgs.overlays = [ nixpkgs.overlays = [
flake.inputs.nix-comfyui.overlays.default flake.inputs.nix-comfyui.overlays.default
]; ];
services.comfyui = { services = {
comfyui = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
host = localhost; host = localhost;
@ -37,24 +34,30 @@ in
]; ];
}; };
}; };
# fileSystems."/var/lib/${service.name}" = { caddy = {
# device = service.paths.path0; virtualHosts = {
# fsType = "none"; "${host}" = {
# options = [ extraConfig = ''
# "bind" basicauth {
# ]; {$CADDY_AUTH_USER} {$CADDY_AUTH_PASSWORD_HASH}
# depends = [ }
# ceres.storage0.mount
# ];
# };
# systemd.tmpfiles.rules = [ reverse_proxy ${localhost}:${toString service.ports.port0}
# "Z ${service.paths.path0} 755 ${service.name} ${service.name} -"
# "Z ${service.sops.path0} 755 ${service.name} ${service.name} -" tls ${service.ssl.cert} ${service.ssl.key}
# ]; '';
};
};
};
};
systemd.tmpfiles.rules = [
"Z ${service.sops.path0} 755 caddy caddy -"
];
users.users.${service.name}.extraGroups = [ users.users.${service.name}.extraGroups = [
"users" "users"
"caddy"
]; ];
networking = { networking = {