@@ -7,8 +7,19 @@ use std::net::SocketAddr;
77
88use serde:: { Deserialize , Serialize } ;
99
10+ mod core;
11+ mod health_check_api;
12+ mod http;
13+ mod http_api;
14+ mod udp;
15+
16+ pub use core:: TrackerCoreConfig ;
17+ pub use health_check_api:: HealthCheckApiConfig ;
18+ pub use http:: HttpTrackerConfig ;
19+ pub use http_api:: HttpApiConfig ;
20+ pub use udp:: UdpTrackerConfig ;
21+
1022use super :: { DatabaseConfig , SqliteConfig } ;
11- use crate :: shared:: ApiToken ;
1223
1324/// Tracker deployment configuration
1425///
@@ -63,68 +74,6 @@ pub struct TrackerConfig {
6374 pub health_check_api : HealthCheckApiConfig ,
6475}
6576
66- /// Core tracker configuration options
67- #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq ) ]
68- pub struct TrackerCoreConfig {
69- /// Database configuration (`SQLite`, `MySQL`, etc.)
70- pub database : DatabaseConfig ,
71-
72- /// Tracker mode: true for private tracker, false for public
73- pub private : bool ,
74- }
75-
76- /// UDP tracker bind configuration
77- #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq ) ]
78- pub struct UdpTrackerConfig {
79- /// Bind address (e.g., "0.0.0.0:6868")
80- #[ serde(
81- serialize_with = "serialize_socket_addr" ,
82- deserialize_with = "deserialize_socket_addr"
83- ) ]
84- pub bind_address : SocketAddr ,
85- }
86-
87- /// HTTP tracker bind configuration
88- #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq ) ]
89- pub struct HttpTrackerConfig {
90- /// Bind address (e.g., "0.0.0.0:7070")
91- #[ serde(
92- serialize_with = "serialize_socket_addr" ,
93- deserialize_with = "deserialize_socket_addr"
94- ) ]
95- pub bind_address : SocketAddr ,
96- }
97-
98- /// HTTP API configuration
99- #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq ) ]
100- pub struct HttpApiConfig {
101- /// Bind address (e.g., "0.0.0.0:1212")
102- #[ serde(
103- serialize_with = "serialize_socket_addr" ,
104- deserialize_with = "deserialize_socket_addr"
105- ) ]
106- pub bind_address : SocketAddr ,
107-
108- /// Admin access token for HTTP API authentication
109- pub admin_token : ApiToken ,
110- }
111-
112- /// Health Check API configuration
113- ///
114- /// The Health Check API is a minimal HTTP endpoint used by Docker and container
115- /// orchestration tools to verify service health. It's separate from the main HTTP API.
116- #[ derive( Debug , Clone , Serialize , Deserialize , PartialEq ) ]
117- pub struct HealthCheckApiConfig {
118- /// Bind address (e.g., "127.0.0.1:1313")
119- ///
120- /// Conventionally uses port 1313, though this is configurable
121- #[ serde(
122- serialize_with = "serialize_socket_addr" ,
123- deserialize_with = "deserialize_socket_addr"
124- ) ]
125- pub bind_address : SocketAddr ,
126- }
127-
12877impl Default for TrackerConfig {
12978 /// Returns a default tracker configuration suitable for development and testing
13079 ///
@@ -161,14 +110,14 @@ impl Default for TrackerConfig {
161110 }
162111}
163112
164- fn serialize_socket_addr < S > ( addr : & SocketAddr , serializer : S ) -> Result < S :: Ok , S :: Error >
113+ pub ( crate ) fn serialize_socket_addr < S > ( addr : & SocketAddr , serializer : S ) -> Result < S :: Ok , S :: Error >
165114where
166115 S : serde:: Serializer ,
167116{
168117 serializer. serialize_str ( & addr. to_string ( ) )
169118}
170119
171- fn deserialize_socket_addr < ' de , D > ( deserializer : D ) -> Result < SocketAddr , D :: Error >
120+ pub ( crate ) fn deserialize_socket_addr < ' de , D > ( deserializer : D ) -> Result < SocketAddr , D :: Error >
172121where
173122 D : serde:: Deserializer < ' de > ,
174123{
0 commit comments