Skip to content

mpapenbr/iracelog-documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

iRacelog documentation

work in progress

Current versions

List of current components

Component Version

racelogger

v0.14.0

iracelog-web

v0.28.0

iracelog-service-manager-go

v0.21.0

iracelog-graphql

v0.4.0

racelogctl

v0.4.0

Retired components

List of no longer used components

Component Version

iracelog-wamp-router

v0.0.2

racelogger (python)

v0.8.0

iracelog-service-manager

v0.6.1

iracelog-analysis-service

v0.3.1

crossbar

v22.6.1

iracelog-service-manager was replaced by the Go variant iracelog-service-manager-go

iracelog-analysis-service was put out of order. Its tasks were integrated in iracelog-service-manager-go

crossbar was replaced by the Go variant iracelog-wamp-router

racelogger was replaced by the Go variant go-racelogger

iracelog-wamp-router was no longer needed with the move from WAMP to gRPC

Components

components.drawio
Figure 1. Components overview (svg)

Racelogger

This module is responsible for extracting the data from the local running iRacing simulation software.

Racelogger is the data provider for the whole project.

Repository

racelogger

Language

Go

Tech

gRPC

iRacelog Web

This is the web frontend. It is used to show race data for both live and archived events.

Repository:

Repository

iracelog

Language

TypeScript

Tech

React, ant.design,

iRacelog Service Manager (Go)

This module is the main entry point to manage the backend services. It recieves messages from the racelogger and is responsible for the following tasks

  • archive the recieved messages from the racelogger

  • compute additional stats (such as stint durations, driver seat times, driver laps)

  • database migration

Repository

iracelog-service-manager-go

Language

Go

Tech

gRPC, buf.build, ConnectRPC, OpenTelemetry, Postgresql, Migrate

iRacelog GraphQL

This component provides the search functionality for the iRacelog.

Repository

iracelog-graphql

Language

Go

Tech

GraphQL

Components (retired)

iRacelog WAMP Router

This module is the replacement for Crossbar.

It serves as the central point for distributing messages between the components according to the WAMP specification.

While crossbar provides a lot of features we actually don’t need much of them. The Nexus library in Go fullfills our needs and comes with a much smaller footprint.

Repository

iracelog-wamp-router

Language

Go

Tech

WAMP, Nexus

Racelogger (Python)

This module is responsible for extracting the data from the local running iRacing simulation software. The racelogger uses the python module pyirsdk to get access to the iRacing telemetry data. Racelogger is the data provider for the whole project.

Repository

racelogger

Language

Python

Tech

pyirsdk, WAMP, autobahn

iRacelog Service Manager (Python)

This module is the main entry point to manage the backend services. It recieves messages from the racelogger and is responsible for the distribution to other backend components, such as

  • archive the recieved messages from the racelogger

  • compute additional stats (such as stint durations, driver seat times, driver laps)

  • gateway to linked subcomponents

Repository

iracelog-service-manager

Language

Python

Tech

crossbar, WAMP, autobahn

iRacelog Anaylsis Service

This module is responsible for processing incoming WAMP-messages from the racelogger. During live events it holds the current race state (including extra computations) and stores it periodically into the database.

Repository

iracelog-analysis-service

Language

TypeScript

Tech

WAMP, autobahn

Utilities

racelogctl (CLI)

Command line tool used for administrative tasks which are not yet available via web frontend.

This tool is also used for stress tests during development.

Repository

racelogctl

Language

Go

Tech

Cobra, Viper, WAMP, Nexus

Deployment

This repository contains samples for deploying the application in the following environments

  • docker via docker compose

  • kubernetes via Helm charts

Caution
The samples in this repository are designed for local test environments.

Repository

iracelog-deployment

Tech

Docker, Kubernetes, Helm

Sample installation

This setup is supposed for users who are familar with Linux servers. The ansible playbooks can be used to setup the application on IaaS (Infrastructure as a Service) machines.

The sample uses Hetzner (for IaaS) and Netcup (for domain services), but you may adjust the playbooks for other providers.

Repository

sample-setup

Language

Ansible, Python

Tech

Docker

Credits

This application was inspired by timing71.org.

About

Documentation for the iRacelog project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published