From 96b49c96a5d2c7d95ac8a3a3849e0f239b1d79b4 Mon Sep 17 00:00:00 2001 From: hobokenchicken Date: Tue, 3 Mar 2026 10:11:09 -0500 Subject: [PATCH] fix(config): wire up LLM_PROXY__CONFIG_PATH env var and fix database path in service The app never read the LLM_PROXY__CONFIG_PATH env var, so the systemd service couldn't find /etc/llm-proxy/config.toml and fell back to ./data/llm_proxy.db (owned by root, readonly for llmproxy user). - Add LLM_PROXY__CONFIG_PATH support to config loader (checks env var before falling back to ./config.toml) - Add LLM_PROXY__DATABASE__PATH to service env so the DB path always resolves to /var/lib/llm-proxy/llm_proxy.db regardless of config --- deploy.sh | 1 + src/config/mod.rs | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/deploy.sh b/deploy.sh index 9d71ac3d..5b4888a9 100755 --- a/deploy.sh +++ b/deploy.sh @@ -264,6 +264,7 @@ WorkingDirectory=$INSTALL_DIR EnvironmentFile=$ENV_FILE Environment="RUST_LOG=info" Environment="LLM_PROXY__CONFIG_PATH=$CONFIG_DIR/config.toml" +Environment="LLM_PROXY__DATABASE__PATH=$DATA_DIR/llm_proxy.db" ExecStart=$INSTALL_DIR/target/release/$APP_NAME Restart=on-failure RestartSec=5 diff --git a/src/config/mod.rs b/src/config/mod.rs index 44e0151e..3f3b4078 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -139,11 +139,14 @@ impl AppConfig { .set_default("providers.ollama.models", Vec::::new())?; // Load from config file if exists - let config_path = config_path.unwrap_or_else(|| { - std::env::current_dir() - .unwrap_or_else(|_| PathBuf::from(".")) - .join("config.toml") - }); + // Priority: explicit path arg > LLM_PROXY__CONFIG_PATH env var > ./config.toml + let config_path = config_path + .or_else(|| std::env::var("LLM_PROXY__CONFIG_PATH").ok().map(PathBuf::from)) + .unwrap_or_else(|| { + std::env::current_dir() + .unwrap_or_else(|_| PathBuf::from(".")) + .join("config.toml") + }); if config_path.exists() { config_builder = config_builder.add_source(File::from(config_path.clone()).format(FileFormat::Toml)); }