Skip to content

Commit 86e6406

Browse files
committed
Merge #1583: Add new "tracker demo" section to README
4cb5648 fix: [#1579] clippy errors (Jose Celano) 15b8025 docs: [#1579] add tracker demo section to README (Jose Celano) Pull request description: Add new "tracker demo" section to README. ACKs for top commit: josecelano: ACK 4cb5648 Tree-SHA512: 21bd221f8c2eaa26e9cc88d0cd61f2c1765ff1f05d2909f0e60eebf246b82ac48dbc9c1d992bc73eb66b1767dbde38375b3d87ff317b6aab706bcf7fb62e1071
2 parents 34a6635 + 4cb5648 commit 86e6406

File tree

30 files changed

+94
-79
lines changed

30 files changed

+94
-79
lines changed

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,24 @@
1919
- [x] Support [newTrackon][newtrackon] checks.
2020
- [x] Persistent `SQLite3` or `MySQL` Databases.
2121

22+
## Tracker Demo
23+
24+
Experience the **Torrust Tracker** in action with our comprehensive demo environment! The [Torrust Demo][torrust-demo] repository provides a complete setup showcasing the tracker's capabilities in a real-world scenario.
25+
26+
The demo takes full advantage of the tracker's powerful metrics system and seamless integration with [Prometheus][prometheus]. This allows you to monitor tracker performance, peer statistics, and system health in real-time. You can build sophisticated Grafana dashboards to visualize all aspects of your tracker's operation.
27+
28+
![Sample Grafana Dashboard](./docs/media/demo/torrust-tracker-grafana-dashboard.png)
29+
30+
**Demo Features:**
31+
32+
- Complete Docker Compose setup.
33+
- Pre-configured Prometheus metrics collection.
34+
- Sample Grafana dashboards for monitoring.
35+
- Real-time tracker statistics and performance metrics.
36+
- Easy deployment for testing and evaluation.
37+
38+
Visit the [Torrust Demo repository][torrust-demo] to get started with your own tracker instance and explore the monitoring capabilities.
39+
2240
## Roadmap
2341

2442
Core:
@@ -49,7 +67,7 @@ Utils:
4967

5068
Others:
5169

52-
- [ ] Support for Windows.
70+
- [ ] Intensive testing for Windows.
5371
- [ ] Docker images for other architectures.
5472

5573
<https://github.com/orgs/torrust/projects/10/views/6>
@@ -274,3 +292,5 @@ This project was a joint effort by [Nautilus Cyberneering GmbH][nautilus] and [D
274292
[Naim A.]: https://github.com/naim94a/udpt
275293
[greatest-ape]: https://github.com/greatest-ape/aquatic
276294
[Power2All]: https://github.com/power2all
295+
[torrust-demo]: https://github.com/torrust/torrust-demo
296+
[prometheus]: https://prometheus.io/

console/tracker-client/src/console/clients/checker/checks/udp.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ mod tests {
117117
let socket_addr = resolve_socket_addr(&Url::parse("udp://localhost:8080").unwrap());
118118

119119
assert!(
120-
socket_addr == SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080)
121-
|| socket_addr == SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8080)
120+
socket_addr == SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 8080)
121+
|| socket_addr == SocketAddr::new(IpAddr::V6(Ipv6Addr::LOCALHOST), 8080)
122122
);
123123
}
124124

@@ -127,8 +127,8 @@ mod tests {
127127
let socket_addr = resolve_socket_addr(&Url::parse("udp://localhost:8080").unwrap());
128128

129129
assert!(
130-
socket_addr == SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080)
131-
|| socket_addr == SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8080)
130+
socket_addr == SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 8080)
131+
|| socket_addr == SocketAddr::new(IpAddr::V6(Ipv6Addr::LOCALHOST), 8080)
132132
);
133133
}
134134
}

console/tracker-client/src/console/clients/udp/checker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ impl Client {
116116
bytes_uploaded: NumberOfBytes(0i64.into()),
117117
bytes_left: NumberOfBytes(0i64.into()),
118118
event: AnnounceEvent::Started.into(),
119-
ip_address: Ipv4Addr::new(0, 0, 0, 0).into(),
119+
ip_address: Ipv4Addr::UNSPECIFIED.into(),
120120
key: PeerKey::new(0i32),
121121
peers_wanted: NumberOfPeers(1i32.into()),
122122
port: Port::new(port),
254 KB
Loading

packages/axum-http-tracker-server/src/v1/handlers/announce.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ mod tests {
234234
async fn it_should_fail_when_the_authentication_key_is_missing() {
235235
let http_core_tracker_services = initialize_private_tracker();
236236

237-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
237+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
238238
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
239239

240240
let maybe_key = None;
@@ -265,7 +265,7 @@ mod tests {
265265

266266
let unregistered_key = authentication::Key::from_str("YZSl4lMZupRuOpSRC3krIKR5BPB14nrJ").unwrap();
267267

268-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
268+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
269269
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
270270

271271
let maybe_key = Some(unregistered_key);
@@ -308,7 +308,7 @@ mod tests {
308308

309309
let announce_request = sample_announce_request();
310310

311-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
311+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
312312
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
313313

314314
let response = handle_announce(
@@ -356,7 +356,7 @@ mod tests {
356356
connection_info_socket_address: None,
357357
};
358358

359-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
359+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
360360
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
361361

362362
let response = handle_announce(
@@ -401,7 +401,7 @@ mod tests {
401401
connection_info_socket_address: None,
402402
};
403403

404-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
404+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
405405
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
406406

407407
let response = handle_announce(

packages/axum-http-tracker-server/src/v1/handlers/scrape.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ mod tests {
192192

193193
#[tokio::test]
194194
async fn it_should_return_zeroed_swarm_metadata_when_the_authentication_key_is_missing() {
195-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
195+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
196196
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
197197

198198
let (core_tracker_services, core_http_tracker_services) = initialize_private_tracker();
@@ -224,7 +224,7 @@ mod tests {
224224

225225
#[tokio::test]
226226
async fn it_should_return_zeroed_swarm_metadata_when_the_authentication_key_is_invalid() {
227-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
227+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
228228
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
229229

230230
let (core_tracker_services, core_http_tracker_services) = initialize_private_tracker();
@@ -272,7 +272,7 @@ mod tests {
272272

273273
let scrape_request = sample_scrape_request();
274274

275-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
275+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
276276
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
277277

278278
let scrape_service = ScrapeService::new(
@@ -314,7 +314,7 @@ mod tests {
314314
connection_info_socket_address: None,
315315
};
316316

317-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
317+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
318318
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
319319

320320
let scrape_service = ScrapeService::new(
@@ -361,7 +361,7 @@ mod tests {
361361
connection_info_socket_address: None,
362362
};
363363

364-
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 7070);
364+
let server_socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 7070);
365365
let server_service_binding = ServiceBinding::new(Protocol::HTTP, server_socket_addr).unwrap();
366366

367367
let scrape_service = ScrapeService::new(

packages/axum-http-tracker-server/tests/server/v1/contract.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ mod for_all_config_modes {
748748
Client::new(*env.bind_address())
749749
.announce(
750750
&QueryBuilder::default()
751-
.with_peer_addr(&IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)))
751+
.with_peer_addr(&IpAddr::V6(Ipv6Addr::LOCALHOST))
752752
.query(),
753753
)
754754
.await;

packages/configuration/src/v2_0_0/health_check_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ impl Default for HealthCheckApi {
2525

2626
impl HealthCheckApi {
2727
fn default_bind_address() -> SocketAddr {
28-
SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 1313)
28+
SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 1313)
2929
}
3030
}

packages/configuration/src/v2_0_0/http_tracker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ impl Default for HttpTracker {
3737

3838
impl HttpTracker {
3939
fn default_bind_address() -> SocketAddr {
40-
SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 7070)
40+
SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 7070)
4141
}
4242

4343
fn default_tsl_config() -> Option<TslConfig> {

packages/configuration/src/v2_0_0/mod.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -492,10 +492,7 @@ mod tests {
492492
fn configuration_should_contain_the_external_ip() {
493493
let configuration = Configuration::default();
494494

495-
assert_eq!(
496-
configuration.core.net.external_ip,
497-
Some(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)))
498-
);
495+
assert_eq!(configuration.core.net.external_ip, Some(IpAddr::V4(Ipv4Addr::UNSPECIFIED)));
499496
}
500497

501498
#[test]

0 commit comments

Comments
 (0)