This repository hosts the Docker-based telemetry stack that powers Western Formula Racing’s data acquisition (DAQ) pipeline. It is designed to be publicly shareable: all runtime credentials live in .env files, sample datasets are anonymised, and every container is documented for easy onboarding.
| Path | Description |
|---|---|
installer/ |
Docker Compose deployment, container sources, and environment templates. |
docs/ |
Public-facing documentation for each service and the compose stack. |
dev-utils |
Development utility scripts (not for production use). |
- Install Docker Desktop (macOS/Windows) or Docker Engine + Compose V2 (Linux).
- Navigate to the installer and copy the environment template:
cd installer cp .env.example .env # Update values before deploying outside of local development
- Launch the stack:
docker compose up -d
- Visit the services:
- InfluxDB 3 Explorer – http://localhost:8888
- Grafana – http://localhost:8087
- Drag and Drop CSV File uploader – http://localhost:8084
- Data Downloader - http://localhost:3000
All services share a bridge network named datalink and rely on the admin token supplied through .env.
The compose stack deploys eight cooperating containers:
- InfluxDB 3 – Time-series database seeded with a tiny example dataset.
- InfluxDB 3 Explorer – Web UI for browsing and querying telemetry.
- Grafana – Pre-provisioned dashboards that visualise the stored telemetry. Load your own dashboard provisioning files into
installer/grafana/dashboards/. - Sandbox - Under active development. Connecting InfluxDB3 with LLM for natural language queries and analysis.
- Slack bot d.b.a. Lappy – Optional automation/notification bot for race ops.
- Lap analysis app – Under active development. Dash-based location data visualiser and lap timer. (Useful if GPS data is available.)
- Startup data loader – Seeds the database on boot with sample CAN frames.
- File uploader – Streams uploaded CSV logs into InfluxDB using the shared DBC file.
- Data downloader - Scans InfluxDB periodically, visual SQL query builder, and CSV export service.
Detailed documentation for each service is available in docs/containers/.
The repository ships with example.dbc (a minimal CAN database) and a sample dataset (2025-01-01-00-00-00.csv) containing four rows of synthetic telemetry. Replace both assets with production data when working with real vehicles.
Every container reads its credentials from the .env file co-located with docker-compose.yml. Refer to installer/.env.example for the exhaustive list. Never commit real tokens—keep personal overrides in .env and add .env to your global gitignore.
TBD
https://github.com/Western-Formula-Racing/ECU_25
This project was developed in 2024 and maintained by the Western Formula Racing Data Acquisition team, inspired by the team's prior work on telemetry systems for our Formula SAE vehicles. https://github.com/Western-Formula-Racing/RaspberryPi-CAN-DAQ-MVP https://github.com/Western-Formula-Racing/daq-2023
We also want to acknowledge the open-source tools and libraries that make this project possible. Key components include:
- Docker / Docker Compose for containerisation
- InfluxDB 3 for time-series storage
- Grafana for visualisation
- Python open-source packages (NumPy, Pandas, Requests, etc.) used throughout the stack
If you’re interested in our team’s broader engineering projects, here are some of the hardware systems developed alongside this DAQ stack:
- https://github.com/Western-Formula-Racing/ECU_25
- https://github.com/Western-Formula-Racing/Custom-BMS_25
- https://github.com/Western-Formula-Racing/mobo-25
- Slack bot improvements + sandbox
- Lap analysis app
AGPL-3.0 License. See LICENSE file for details.