Skip to main content

trojan_config/
lib.rs

1//! Configuration loading and CLI definitions.
2
3mod analytics;
4mod cli;
5mod ddns;
6mod defaults;
7mod loader;
8mod types;
9mod validate;
10
11use serde::{Deserialize, Serialize};
12
13pub use analytics::*;
14pub use cli::*;
15pub use ddns::*;
16pub use loader::*;
17pub use types::*;
18pub use validate::*;
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct Config {
22    pub server: ServerConfig,
23    pub tls: TlsConfig,
24    pub auth: AuthConfig,
25    #[serde(default)]
26    pub websocket: WebSocketConfig,
27    #[serde(default)]
28    pub metrics: MetricsConfig,
29    #[serde(default)]
30    pub logging: LoggingConfig,
31    #[serde(default)]
32    pub analytics: AnalyticsConfig,
33    #[serde(default)]
34    pub dns: trojan_dns::DnsConfig,
35    #[serde(default)]
36    pub ddns: DdnsConfig,
37}