torrust_tracker_deployer_lib/domain/mod.rs
1//! Domain Layer (DDD)
2//!
3//! This module contains domain-specific business logic and entities.
4//! It includes pure domain models independent of technical implementation details.
5//!
6//! ## Components
7//!
8//! - `backup` - Backup configuration domain types (cron schedule, retention)
9//! - `caddy` - Caddy TLS reverse proxy service domain types
10//! - `environment` - Environment module with entity, name validation, and state management
11//! - `environment::name` - Environment name validation and management
12//! - `environment::state` - State marker types and type erasure for environment state machine
13//! - `instance_name` - LXD instance name validation and management
14//! - `mysql` - `MySQL` database service domain types (distinct from tracker database config)
15//! - `profile_name` - LXD profile name validation and management
16//! - `provider` - Infrastructure provider types (LXD, Hetzner) and configuration
17//! - `template` - Core template domain models and business logic
18//! - `topology` - Docker Compose topology domain types (networks, services)
19
20pub mod backup;
21pub mod caddy;
22pub mod environment;
23pub mod grafana;
24pub mod https;
25pub mod instance_name;
26pub mod mysql;
27pub mod profile_name;
28pub mod prometheus;
29pub mod provider;
30pub mod template;
31pub mod topology;
32pub mod tracker;
33
34// Re-export commonly used domain types for convenience
35pub use backup::{BackupConfig, CronSchedule, RetentionDays};
36pub use caddy::CaddyConfig;
37pub use environment::{
38 name::{EnvironmentName, EnvironmentNameError},
39 state::{AnyEnvironmentState, StateTypeError},
40 Environment,
41};
42pub use instance_name::{InstanceName, InstanceNameError};
43pub use mysql::MysqlServiceConfig;
44pub use profile_name::{ProfileName, ProfileNameError};
45pub use provider::{HetznerConfig, LxdConfig, Provider, ProviderConfig};
46pub use template::{TemplateEngine, TemplateEngineError, TemplateManager, TemplateManagerError};
47pub use topology::{DockerComposeTopology, Network, Service, ServiceTopology};