Compare commits

...

4 commits
users2 ... main

Author SHA1 Message Date
ibizaman
973c18edb2 open-webui: more consistent example
Some checks failed
build / path-filter (push) Has been cancelled
format / format (push) Has been cancelled
build / manual (push) Has been cancelled
Demo / path-filter (push) Has been cancelled
Deploy docs / deploy (push) Has been cancelled
Demo / result (push) Has been cancelled
build / build-matrix (push) Has been cancelled
build / tests (push) Has been cancelled
build / Final Results (push) Has been cancelled
Demo / build (map[flake:basic name:homeassistant]) (push) Has been cancelled
Demo / build (map[flake:basic name:nextcloud]) (push) Has been cancelled
Demo / build (map[flake:ldap name:homeassistant]) (push) Has been cancelled
Demo / build (map[flake:ldap name:nextcloud]) (push) Has been cancelled
Demo / build (map[flake:lowlevel name:minimal]) (push) Has been cancelled
Demo / build (map[flake:minimal name:minimal]) (push) Has been cancelled
Demo / build (map[flake:sops name:minimal]) (push) Has been cancelled
Demo / build (map[flake:sso name:nextcloud]) (push) Has been cancelled
2026-06-25 22:33:29 +02:00
ibizaman
271bc1dc0b zfs: print snapshots on activation 2026-06-25 22:33:29 +02:00
ibizaman
3432df47f1 davfs: handle password file 2026-06-25 22:33:29 +02:00
ibizaman
ba0d3cac4a test: fix lib pretty printer 2026-06-25 22:33:29 +02:00
5 changed files with 36 additions and 5 deletions

View file

@ -352,12 +352,16 @@ let
"expected" "expected"
"result" "result"
]; ];
nativeBuildInputs = [
(pkgs.python3.withPackages (ps: [ ps.deepdiff ] ++ ps.deepdiff.optional-dependencies.cli))
];
} }
'' ''
echo "${name} failed (- expected, + result)" > $out echo "${name} failed (- expected, + result)" > $out
cp ''${expectedPath} ''${expectedPath}.json cp ''${expectedPath} ''${expectedPath}.json
cp ''${resultPath} ''${resultPath}.json cp ''${resultPath} ''${resultPath}.json
${pkgs.deepdiff}/bin/deep diff ''${expectedPath}.json ''${resultPath}.json >> $out deep diff ''${expectedPath}.json ''${resultPath}.json >> $out
'' ''
); );

View file

@ -75,6 +75,30 @@ in
config = { config = {
services.davfs2.enable = builtins.length cfg.mounts > 0; services.davfs2.enable = builtins.length cfg.mounts > 0;
systemd.services = lib.optionalAttrs (builtins.length cfg.mounts > 0) {
davfs2-password-generation = {
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "oneshot";
script = ''
mkdir -p /etc/davfs2
[ -f /etc/davfs2/secrets ] && mv /etc/davfs2/secrets /etc/davfs2/secrets.prev
touch /etc/davfs2/secrets
chown root: /etc/davfs2
chown root: /etc/davfs2/secrets
chmod 700 /etc/davfs2
chmod 600 /etc/davfs2/secrets
''
+ (
let
mkPasswordCmd = cfg': ''
printf "%s %s %s\n" "${cfg'.mountPoint}" "${cfg'.username}" "$(cat ${cfg'.passwordFile})" >> /etc/davfs2/secrets
'';
in
lib.concatStringsSep "\n" (map mkPasswordCmd cfg.mounts)
);
};
};
systemd.mounts = systemd.mounts =
let let
mkMountCfg = c: { mkMountCfg = c: {
@ -82,6 +106,7 @@ in
description = "Webdav mount point"; description = "Webdav mount point";
after = [ "network-online.target" ]; after = [ "network-online.target" ];
wants = [ "network-online.target" ]; wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
what = c.remoteUrl; what = c.remoteUrl;
where = c.mountPoint; where = c.mountPoint;

View file

@ -249,9 +249,10 @@ in
let let
recursiveFlag = lib.optionalString cfg.snapshotBeforeActivation.recursive "-r"; recursiveFlag = lib.optionalString cfg.snapshotBeforeActivation.recursive "-r";
in in
lib.concatMapStringsSep "\n" (ds: "zfs snapshot ${recursiveFlag} ${ds}@\"$name\"") ( lib.concatMapStringsSep "\n" (ds: ''
lib.uniqueStrings datasets echo "Taking ZFS snapshot of ${ds}@$name"
) zfs snapshot ${recursiveFlag} ${ds}@"$name"
'') (lib.uniqueStrings datasets)
) )
); );
}; };

View file

@ -59,12 +59,12 @@ in
WEBUI_NAME = "SelfHostBlocks"; WEBUI_NAME = "SelfHostBlocks";
OLLAMA_BASE_URL = "http://127.0.0.1:''${toString config.services.ollama.port}"; OLLAMA_BASE_URL = "http://127.0.0.1:''${toString config.services.ollama.port}";
RAG_EMBEDDING_ENGINE = "ollama";
RAG_EMBEDDING_MODEL = "nomic-embed-text:v1.5"; RAG_EMBEDDING_MODEL = "nomic-embed-text:v1.5";
ENABLE_OPENAI_API = "True"; ENABLE_OPENAI_API = "True";
OPENAI_API_BASE_URL = "http://127.0.0.1:''${toString config.services.llama-cpp.port}"; OPENAI_API_BASE_URL = "http://127.0.0.1:''${toString config.services.llama-cpp.port}";
ENABLE_WEB_SEARCH = "True"; ENABLE_WEB_SEARCH = "True";
RAG_EMBEDDING_ENGINE = "openai";
} }
''; '';
}; };

View file

@ -34,6 +34,7 @@ in
expected = { expected = {
services.davfs2.enable = false; services.davfs2.enable = false;
systemd.mounts = [ ]; systemd.mounts = [ ];
systemd.services = { };
}; };
expr = testConfig { }; expr = testConfig { };
}; };