diff --git a/crates/defguard_common/src/config.rs b/crates/defguard_common/src/config.rs index 2664d98a7a..52ead18345 100644 --- a/crates/defguard_common/src/config.rs +++ b/crates/defguard_common/src/config.rs @@ -74,10 +74,10 @@ pub struct DefGuardConfig { #[serde(skip_serializing)] pub openid_signing_key: Option, - #[arg(long, env = "DEFGUARD_URL", value_parser = Url::parse, default_value = "http://localhost:8000")] + #[arg(long, env = "DEFGUARD_URL", value_parser = Url::parse)] #[serde(skip_serializing)] #[deprecated(since = "2.0.0", note = "Use Settings.defguard_url instead")] - pub url: Url, + pub url: Option, #[arg(long, env = "DEFGUARD_DISABLE_STATS_PURGE")] #[deprecated(since = "2.0.0", note = "Use Settings.enable_stats_purge instead")] diff --git a/crates/defguard_common/src/db/models/settings.rs b/crates/defguard_common/src/db/models/settings.rs index 39ebc718ac..c83048f292 100644 --- a/crates/defguard_common/src/db/models/settings.rs +++ b/crates/defguard_common/src/db/models/settings.rs @@ -721,6 +721,9 @@ impl Settings { let hour = minute * 60; let day = hour * 24; + if let Some(url) = &config.url { + self.defguard_url = url.to_string(); + } if let Some(secret_key) = &config.secret_key { let secret_key = secret_key.expose_secret(); if let Err(err) = Settings::validate_secret_key(secret_key) { diff --git a/crates/defguard_core/src/lib.rs b/crates/defguard_core/src/lib.rs index ba963d2067..4679d7f2d1 100644 --- a/crates/defguard_core/src/lib.rs +++ b/crates/defguard_core/src/lib.rs @@ -718,7 +718,7 @@ pub async fn init_dev_env(config: &DefGuardConfig) { .clone() .unwrap_or(Url::parse("http://127.0.0.1:8000").unwrap()) .to_string(); - settings.defguard_url = config.url.to_string(); + settings.defguard_url = config.url.clone().unwrap().to_string(); update_current_settings(&pool, settings) .await .expect("Failed to update settings");