Skip to content
Docker Setup

Docker Setup for Local Use

These instructions run the collector image on macOS or Linux.

Splunk Show users can skip this page

Most events run on a requested Splunk Show instance, where the collector is already installed, running, and configured for HECSplunk's HTTP endpoint for receiving event data. The collector uses a HEC URL and token to send full telemetry to Splunk Enterprise or Splunk Cloud.. Go straight to Collector Configuration instead.

Prerequisites

  • Docker Desktop or Docker Engine
  • A Splunk HEC URL and token if sending full telemetry to Splunk
  • A Splunk Observability Cloud realmThe region identifier for your Splunk Observability Cloud organization, such as us0 or eu0. It determines which ingest endpoint receives your metrics. and access token if sending real-time metrics
  • The computer’s LAN IP address, reachable from the racing rig

Start the collector

Create the configuration file the container writes settings back into, then start the container:

touch "$HOME/config.json"
chmod 666 "$HOME/config.json"

docker run -d \
  --name f1-2025 \
  --restart always \
  -v "$HOME/config.json:/app/config.json" \
  -p 81:8501/tcp \
  -p 8501:8501/tcp \
  -p 20777:20777/udp \
  -p 20778:20778/udp \
  -p 20779:20779/udp \
  -p 20780:20780/udp \
  ghcr.io/splunk/f1-2025-go:latest

Collector repository users

If you have the collector repository checked out, ./v5/scripts/start-collector.sh performs exactly these steps, including removing any existing f1-2025 container first.

Check collector health

The container listens on TCP 8501. The run above publishes it on both host port 81 and host port 8501, so the UI is reachable at either address:

Confirm the container becomes healthy:

docker ps --filter name=f1-2025

Publishing UDP ports

All four UDP ports are published above so that extra rigs can be enabled later without recreating the container. The collector only binds the ports for the rig count set under Config → General.

Configure the collector

Open Config in the UI, set an Event Name, enable HEC and/or Observability, then select Deploy Configuration. Turn on Master Control to start collecting. See Collector Configuration for field details.

An event name is required

Master Control refuses to start until an event name is set. The error reads Event name is not configured.

Connect the racing rig

Follow Game Telemetry Setup to configure F1 25 with the collector address and UDP port. Run a short practice session and confirm live values appear on the rig card.

Persistent files

Container pathPurpose
/app/config.jsonCollector settings, including destination URLs and tokens
/app/telemetry_data.tlm recordings and bundled replay files
/app/collector.logRotating collector log (10 MB, three backups)

The run command above bind-mounts $HOME/config.json, so settings survive container replacement. Recordings do not unless you also mount the data directory:

-v "$HOME/f1-telemetry:/app/telemetry_data" \

Mount it before an event if the .tlm files must be kept. Note that this mount also replaces the bundled replay files used by Playback Mode, so copy any replay you want to keep using into the host directory.

Useful commands

# Follow collector logs
docker logs -f f1-2025

# Restart the collector
docker restart f1-2025

# Stop and remove the container; the mounted config file is retained
docker rm -f f1-2025

# Pull a newer image before recreating the container
docker pull ghcr.io/splunk/f1-2025-go:latest

Network access

Allow inbound TCP 81 (or 8501) from the operator network and inbound UDP 20777 from the racing rig. Open the additional UDP ports only when additional rigs are enabled. For an internet-hosted collector, apply the same rules to the cloud firewall or security group.

Next steps

  1. Configure the collector
  2. Configure F1 25 telemetry
  3. Run a pre-event health check