fix(config): wire up LLM_PROXY__CONFIG_PATH env var and fix database path in service
Some checks failed
CI / Check (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Formatting (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Release Build (push) Has been cancelled

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
This commit is contained in:
2026-03-03 10:11:09 -05:00
parent d5e326bc65
commit 96b49c96a5
2 changed files with 9 additions and 5 deletions

View File

@@ -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

View File

@@ -139,7 +139,10 @@ impl AppConfig {
.set_default("providers.ollama.models", Vec::<String>::new())?;
// Load from config file if exists
let config_path = config_path.unwrap_or_else(|| {
// 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")