diff --git a/nixos/modules/services/misc/open-webui.nix b/nixos/modules/services/misc/open-webui.nix index 21a40ab00d13..b848a2a61eae 100644 --- a/nixos/modules/services/misc/open-webui.nix +++ b/nixos/modules/services/misc/open-webui.nix @@ -97,6 +97,23 @@ in } // cfg.environment; + # backwards compatability migration + preStart = '' + if [ -d "${cfg.stateDir}/data" ] && [ -n "$(ls -A "${cfg.stateDir}/data" 2>/dev/null)" ]; then + exit 0 + fi + + mkdir -p "${cfg.stateDir}/data" + + [ -f "${cfg.stateDir}/webui.db" ] && mv "${cfg.stateDir}/webui.db" "${cfg.stateDir}/data/" + + for dir in cache uploads vector_db; do + [ -d "${cfg.stateDir}/$dir" ] && mv "${cfg.stateDir}/$dir" "${cfg.stateDir}/data/" + done + + exit 0 + ''; + serviceConfig = { ExecStart = "${lib.getExe cfg.package} serve --host \"${cfg.host}\" --port ${toString cfg.port}"; EnvironmentFile = lib.optional (cfg.environmentFile != null) cfg.environmentFile;