{"id":50680029,"url":"https://github.com/f1stuff/f1-live-data","last_synced_at":"2026-06-25T16:01:12.963Z","repository":{"id":225282626,"uuid":"614566557","full_name":"f1stuff/f1-live-data","owner":"f1stuff","description":"Real time data visualization for F1 races","archived":false,"fork":false,"pushed_at":"2025-05-30T15:45:21.000Z","size":1965,"stargazers_count":112,"open_issues_count":2,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-30T21:58:50.751Z","etag":null,"topics":["docker","f1","formula1","grafana","grafana-influxdb","python3","real-time"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/f1stuff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-15T21:14:14.000Z","updated_at":"2025-05-30T15:45:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"33bac9e0-35a9-485a-8445-94ba89f05947","html_url":"https://github.com/f1stuff/f1-live-data","commit_stats":null,"previous_names":["f1stuff/f1-live-data"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/f1stuff/f1-live-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f1stuff%2Ff1-live-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f1stuff%2Ff1-live-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f1stuff%2Ff1-live-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f1stuff%2Ff1-live-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f1stuff","download_url":"https://codeload.github.com/f1stuff/f1-live-data/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f1stuff%2Ff1-live-data/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34782137,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-25T02:00:05.521Z","response_time":101,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","f1","formula1","grafana","grafana-influxdb","python3","real-time"],"created_at":"2026-06-08T18:00:31.969Z","updated_at":"2026-06-25T16:01:12.945Z","avatar_url":"https://github.com/f1stuff.png","language":"Python","funding_links":[],"categories":["Formula 1"],"sub_categories":["Dashboards and Analytics"],"readme":"# f1-live-data\nYou want a better view of the live data of a F1 race? f1-live-data is easy to use and customizable to your needs.\n\n## Requirements\n- Docker installed\n- python 3.13 (for developing)\n\n## Quick start\nTested on Ubuntu 22.04\n```\nchmod -R 777 storage/\ndocker compose up -d\ndocker build -t data-importer-image .\n\n# if a f1 race is currently under way:\ndocker run -it --rm \\\n--network f1-live-data_default \\\ndata-importer-image \\\ndataimporter process-live-session \\\n--influx-url http://influxdb:8086\n\n# else\ndocker run -it --rm \\\n--network f1-live-data_default \\\n-v ${PWD}/saves/partial_saved_data_2025_04_06.txt:/tmp/save.txt \\\ndata-importer-image \\\ndataimporter process-mock-data /tmp/save.txt \\\n--influx-url http://influxdb:8086\n\n# Browse http://localhost:3000\n# admin / admin\n# Dashboards \u003e Browse \u003e F1 \u003e F1Race\n```\n\n## Run the data-importer locally (for debugging)\n```\ndocker compose up -d\npip install .\ndataimporter process-mock-data saves/partial_saved_data_2025_04_06.txt --influx-url http://localhost:8086\n```\n\n## Features\n![](doc/full.png)\n- Select only your favorite drivers (top, left)\n- Leaderboard with Interval, Gap to Leader, Last Lap Time\n- Lap time evolution\n- Race control messages\n- Top speed at speed trap\n- Gap to leader graph\n- Weather data\n\n\n## Data flow\n```\n┌─────────────┐      ┌────────┐      ┌───────┐\n│data-importer├─────►│influxdb│◄─────┤grafana│\n└─────────────┘      └────────┘      └───────┘\n```\nThe `data-importer` uses the live timing client from `fastf1` to receive live timing data during a f1 session.\nThe data is stored in an `influxdb`. `grafana` is used to display the data by querying it from `influxdb`.\n\nThe `data-importer` has two modes:\n- process-live-session: Processes data from a live session via `fastf1` live timing client.\n- process-mock-data: Loads data from file and replays it (with a default speedup factor of 100). This mode can be used to develop new panels and debug it.\n\n## Processed data\n`fastf1` provided a bunch of different data points. Not all of them are processed:\n```\nProcessed: WeatherData, RaceControlMessages, TimingData\nNot Processed: Heartbeat,CarData.z,Position.z,ExtrapolatedClock,TopThree,RcmSeries,TimingStats,TimingAppData,TrackStatus,DriverList,SessionInfo,SessionData,LapCount\n```\n\n\n## Get a file with live data via fastf1 python package\nYou can record a live session with the live timing client from `fastf1`\n```\npython -m fastf1.livetiming save saved_data_2022_03_19.txt\n```\nThe recorded file can be used to develop and test the data processing. \nThe data-importer is able to load the recorded file (command `process-mock-data`)\n\n## Tricks\n\n### Add driver color to same panels\nTo add the color of a driver to a panel via the UI can be annoying. \nThere is a command line tool do accomplish that.\nJust pass the path of the dashboard and the names of the panels:\n```shell\npython src/dataimporter/dashboard_utils.py storage/grafana/dashboards/dashboard.json \"Lap time\" \"Gap To Leader\"\n```\n\n### Edit and persist a grafana dashboard/panel:\n1. Edit the panel in the UI\n2. Click the save button\n3. Click \"Copy JSON to clipboard\"\n4. Replace the content of the file `storage/grafana/dashboards/dashboard.json`\n\n### Set a max value in lap time panel\nLaps with pit stops are very slow and lead to a large value range on the y axes.\nYou can set a maximum value in the panel settings. \n\n## Known issues\n- data-importer disconnects after 2h (the f1 data providing service seems to close the connection, see [fastf1](https://theoehrly.github.io/Fast-F1/livetiming.html?highlight=live#important-notes))\n\n## Further ideas\n- Display car position (`Position.z`)\n- Display telemetry (`CarData.z`)\n- Display (personal) fastest lap\n- Display sector times\n- Number pit stops and tires compound (`TimingAppData`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff1stuff%2Ff1-live-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff1stuff%2Ff1-live-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff1stuff%2Ff1-live-data/lists"}