[ e-networld.de ]

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.

MITDocker · PostgreSQL · MariaDB · SQL Serverv1.18.4 · 17/09/2026
F1-Telemetry web interface home page with connection status and a chart of recorded sessions per game version from F1 2019 to F1 2026

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

Receive and process UDP telemetry from the F1 games, F1 2019 and newer
Persist car, session and lap data
PostgreSQL, MariaDB/MySQL or Microsoft SQL Server as the database
The database schema is created and migrated automatically on startup
Web interface as its own image, live data over SignalR
Replay recorded packets through the replay client
REST API for your own analysis and visualisations
OpenTelemetry for traces, metrics and logs, enabled on demand

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

GitHub ↗

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

GitHub ↗

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

GitHub ↗

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

GitHub ↗

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

GitHub ↗

All releases on GitHub ↗