F1-Telemetry
Receives the UDP telemetry of EA's F1 games from F1 2019 onwards, stores it in a relational database and visualises it in a web interface.

Overview
F1-Telemetry captures the telemetry that EA’s F1 games broadcast over UDP during a session and turns it into a lasting data set. Car data, session information and lap times are processed; the supported titles are F1 2019 and newer.
The project is made up of several sub-projects and ships as two Docker images: the service, which receives the packets and exposes the REST API and the SignalR hubs, and the web app, which visualises the stored data. Incoming packets are parsed against the games’ packet contracts and dispatched by analyzers to specialised processors.
PostgreSQL, MariaDB or MySQL and Microsoft SQL Server are all supported as the database. Each provider has its own migration project, and the schema is created and updated when the service starts. Both images ship a Docker health check.
Besides live operation there is a replay client that sends recorded packets to the service, which always listens for them on the telemetry port plus one. If you want to observe the application, OpenTelemetry can be switched on: traces, metrics and logs are then exported over OTLP to a collector, and each signal can be enabled independently.
Features
Installation
docker compose up -d
# Service: UDP 20777 (game), TCP 20778 (replay), 4820 (API)
# Web app: http://localhost:8080/The full compose example including the database is in the README. In the game, point UDP telemetry at the host running the service on port 20777.
Releases
v1.18.4 · 17/09/2026
- Server:
networlddev/f1-telemetry:1.18.4 - Web app:
networlddev/f1-telemetry-app:1.18.4
- Bump hono from 4.13.2 to 4.13.7 in /F1ServerApp
- Bump the npm-dependencies group in /F1ServerApp with 13 updates
- Bump the nuget-dependencies group with 9 updates
v1.18.3 · 04/09/2026
- Server:
networlddev/f1-telemetry:1.18.3 - Web app:
networlddev/f1-telemetry-app:1.18.3
- Resolve SonarQube findings in WebApi, Db, and Service code
- Bump the actions group with 2 updates
- Bump the npm-dependencies group in /F1ServerApp with 13 updates
- Update OpenTelemetry and analyzer packages; fix log formatting
- Bump the npm-dependencies group in /F1ServerApp with 14 updates
- Bump the nuget-dependencies group with 1 update
- Bump the actions group with 2 updates
- Bump the actions group with 2 updates
- Bump the npm-dependencies group in /F1ServerApp with 12 updates
- Bump the nuget-dependencies group with 2 updates
v1.18.2 · 16/08/2026
- Server:
networlddev/f1-telemetry:1.18.2 - Web app:
networlddev/f1-telemetry-app:1.18.2
- Bump Reihitsu.Analyzer to 1.0.0-rc1 and suppress RH4124
- Fix review findings F-311, F-291, F-475, F-473, F-293, F-468
- Fix F1ServerApp config/bootstrap review findings
- Fix F1ServerApp Features/Models review findings
- Clean up F1ServerApp: dead code, orphaned assets, inline styles
- Fix SignalR live status detection and add version footer
- Extract digest hash from Docker image inspection output
v1.18.1 · 15/08/2026
- Server:
networlddev/f1-telemetry:1.18.1 - Web app:
networlddev/f1-telemetry-app:1.18.1
- Restore per-year inheritance chain for session data interfaces
- Fix packet parsing correctness and robustness findings
- Resolve low-severity interface consistency findings
- Resolve remaining low-severity interface consistency findings
- Clarify DeltaToCarInFront/DeltaToRaceLeader doc for 2024+ years
- Model ActiveAeroMode as a dedicated enum instead of ushort
- Fix session detection buffer handling and thread safety
- Fix service-layer return values, factory reuse, and cache volatility
- Improve RepositoryBase query/delete efficiency and AppMetrics hot path
- Extract DbContext seed data, bound name columns, and document naming decisions
v1.18.0 · 09/08/2026
- Server:
networlddev/f1-telemetry:1.18.0 - Web app:
networlddev/f1-telemetry-app:1.18.0
- Bump the actions group with 2 updates
- Bump the nuget-dependencies group with 2 updates
- Report packet converter errors instead of swallowing them silently
- Populate and evaluate the packet analyzer error channel consistently
- Reduce per-datagram allocations in the UDP receive path
- Reuse packet transformation instances instead of allocating per packet
- Bump ip-address from 10.2.0 to 10.4.0 in /F1ServerApp
- Bump brace-expansion in /F1ServerApp
- Fix slow session playback in the replay client
- Bump socket.io-parser from 4.2.6 to 4.2.7 in /F1ServerApp
![[ e-networld.de ]](/img/logo.png)