From 76712620d2ccf557b520efbb0d858e6f570b4c39 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sun, 7 Sep 2025 13:00:12 +0100 Subject: [PATCH] open-webui: fix database location --- hosts/library/ai.nix | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/hosts/library/ai.nix b/hosts/library/ai.nix index 0f0e7d3..01a06c3 100644 --- a/hosts/library/ai.nix +++ b/hosts/library/ai.nix @@ -4,6 +4,9 @@ ... }: +let + stateDir = "/var/lib/open-webui"; +in { age.secrets.open-webui-env = { rekeyFile = ./secrets/open-webui-env.age; @@ -28,10 +31,33 @@ OFFLINE_MODE = "True"; OPENID_PROVIDER_URL = "https://auth.vimium.com/oauth2/openid/${clientId}/.well-known/openid-configuration"; OPENID_REDIRECT_URI = "${publicUrl}/oauth/oidc/callback"; + + # Fix from https://github.com/NixOS/nixpkgs/pull/431395 + STATIC_DIR = "${stateDir}/static"; + DATA_DIR = "${stateDir}/data"; + HF_HOME = "${stateDir}/hf_home"; + SENTENCE_TRANSFORMERS_HOME = "${stateDir}/transformers_home"; }; environmentFile = config.age.secrets.open-webui-env.path; }; + # Fix from https://github.com/NixOS/nixpkgs/pull/432897 + systemd.services.open-webui.preStart = '' + if [ -d "${stateDir}/data" ] && [ -n "$(ls -A "${stateDir}/data" 2>/dev/null)" ]; then + exit 0 + fi + + mkdir -p "${stateDir}/data" + + [ -f "${stateDir}/webui.db" ] && mv "${stateDir}/webui.db" "${stateDir}/data/" + + for dir in cache uploads vector_db; do + [ -d "${stateDir}/$dir" ] && mv "${stateDir}/$dir" "${stateDir}/data/" + done + + exit 0 + ''; + modules.services.borgmatic.directories = [ "/var/lib/private/open-webui" ];