torrust_tracker_deployer_lib/domain/tracker/mod.rs
1//! Tracker configuration domain types
2//!
3//! This module defines tracker-specific configuration used for deploying
4//! and configuring the Torrust Tracker application.
5//!
6//! # Module Structure
7//!
8//! - `config` - Main `TrackerConfig` and component configurations (includes database)
9//! - `binding_address` - Socket binding address with protocol information
10//! - `protocol` - Network protocol types (UDP, TCP)
11//!
12//! # Layer Separation
13//!
14//! - **Domain types** (this module): `TrackerConfig`, `DatabaseConfig`, etc.
15//! - Represent semantic meaning of tracker configuration
16//! - Used in environment user inputs
17//!
18//! # Usage
19//!
20//! ```rust
21//! use torrust_tracker_deployer_lib::domain::tracker::{
22//! TrackerConfig, TrackerCoreConfig, DatabaseConfig, SqliteConfig,
23//! UdpTrackerConfig, HttpTrackerConfig, HttpApiConfig, HealthCheckApiConfig
24//! };
25//!
26//! let config = TrackerConfig::new(
27//! TrackerCoreConfig::new(
28//! DatabaseConfig::Sqlite(SqliteConfig::new("tracker.db").unwrap()),
29//! false,
30//! ),
31//! vec![
32//! UdpTrackerConfig::new("0.0.0.0:6868".parse().unwrap(), None).unwrap(),
33//! ],
34//! vec![
35//! HttpTrackerConfig::new("0.0.0.0:7070".parse().unwrap(), None, false).unwrap(),
36//! ],
37//! HttpApiConfig::new(
38//! "0.0.0.0:1212".parse().unwrap(),
39//! "MyToken".to_string().into(),
40//! None,
41//! false,
42//! ).expect("valid config"),
43//! HealthCheckApiConfig::new(
44//! "127.0.0.1:1313".parse().unwrap(),
45//! None,
46//! false,
47//! ).expect("valid config"),
48//! ).expect("valid tracker config");
49//! ```
50
51mod binding_address;
52pub mod config;
53mod protocol;
54
55pub use binding_address::BindingAddress;
56pub use config::{
57 is_localhost, DatabaseConfig, HealthCheckApiConfig, HealthCheckApiConfigError, HttpApiConfig,
58 HttpApiConfigError, HttpTrackerConfig, HttpTrackerConfigError, MysqlConfig, MysqlConfigError,
59 SqliteConfig, SqliteConfigError, TrackerConfig, TrackerConfigError, TrackerCoreConfig,
60 UdpTrackerConfig, UdpTrackerConfigError,
61};
62pub use protocol::{Protocol, ProtocolParseError};