Files
action-gateway/src/config.rs
T
2026-03-08 23:33:41 -07:00

42 lines
1.2 KiB
Rust

use serde::Deserialize;
use std::fs;
#[derive(Debug, Deserialize, Clone)]
pub struct Config {
pub database_path: String,
pub bind: String,
pub notification_webhook: Option<String>,
pub notification_webhook_token: Option<String>,
pub base_url: String,
}
impl Default for Config {
fn default() -> Self {
Self {
database_path: "/home/node/.openclaw/workspace/config/action-gateway.db".into(),
bind: "0.0.0.0:7878".into(),
notification_webhook: None,
notification_webhook_token: None,
base_url: "http://localhost:7878".into(),
}
}
}
impl Config {
pub fn load() -> Self {
// Check multiple locations in order
let paths = [
std::env::var("GATEWAY_CONFIG").unwrap_or_default(),
"/srv/action-gateway/action-gateway.toml".into(),
"/home/node/.openclaw/workspace/config/action-gateway.toml".into(),
];
for path in &paths {
if path.is_empty() { continue; }
if let Ok(contents) = fs::read_to_string(path) {
return toml::from_str(&contents).unwrap_or_default();
}
}
Config::default()
}
}