Sim RaceCenter Director is your mission-critical, on-premise execution engineβthe nerve center bridging cloud-based Race Control with your local race center hardware and software ecosystem (OBS, iRacing, and beyond).
Think of it as the broadcast control room for high-performance sim racing operations. This Electron-powered application runs locally on your race center PC, providing secure, real-time orchestration of streams, telemetry, and race events.
- π Secure Cloud Bridge β Azure AD authentication with local execution
- π₯ OBS Integration β Broadcast control at your fingertips
- ποΈ iRacing Telemetry β Real-time race data streaming
- β‘ High-Performance Architecture β TypeScript + Electron + React
- π Cross-Platform β Windows, Linux AppImage support
- Security Design & Architecture β Read how we handle authentication and secure token storage.
Before entering the pit lane, ensure you have:
- Node.js 18+ (Download)
- npm or pnpm package manager
- Git for version control
-
Clone the repository
git clone https://github.com/margic/director.git cd director -
Install dependencies
npm install
-
Configure environment
cp .env.example .env # Edit .env with your Azure AD and Race Control credentials -
Start development mode
npm run dev
# Build the application
npm run build
# Create distributable packages
npm run distOutput locations:
- Windows:
release/Sim RaceCenter Director Setup.exe - Linux:
release/Sim RaceCenter Director.AppImage
Development Mode:
npm run devThis starts the Vite dev server and launches the Electron application with hot-reload enabled.
Production Mode:
Run the built executable from the release/ directory after building.
- Authentication β Sign in with your Azure AD credentials
- Cloud Sync β Director establishes secure connection to Race Control
- Local Integration β Configure OBS, iRacing, and other integrations
- Go Live β Execute broadcast operations from the control panel
| Command | Description |
|---|---|
npm run dev |
Start development environment with hot-reload |
npm run build |
Compile TypeScript and build production assets |
npm run dist |
Create platform-specific installers |
|
Frontend Layer
|
Backend Layer
|
βββββββββββββββββββββββββββββββββββββββββββ
β Cloud Race Control (Azure) β
β (Command Center) β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β Secure Bridge
β (Azure AD Auth)
ββββββββββββββββΌβββββββββββββββββββββββββββ
β Sim RaceCenter Director (Local) β
β ββββββββββββββββββββββββββββββββ β
β β Electron Main Process β β
β β - Auth Service β β
β β - IPC Handlers β β
β ββββββββββββ¬ββββββββββββββββββββ β
β β β
β ββββββββββββΌββββββββββββββββββββ β
β β React Renderer β β
β β - Control Dashboard β β
β β - Broadcast Management β β
β ββββββββββββββββββββββββββββββββ β
ββββββββββββββββ¬βββββββββββββββββββββββββββ
β
ββββββββββ΄βββββββββ
β β
βββββββΌββββββ βββββββΌββββββ
β OBS β β iRacing β
β Control β β Telemetry β
βββββββββββββ βββββββββββββ
| Feature | Status | Description |
|---|---|---|
| π Azure AD Auth | β Active | Secure cloud authentication |
| π₯ OBS Integration | β Active | Broadcast scene control |
| ποΈ iRacing API | β Active | Live telemetry streaming |
| π Dashboard UI | β Active | React-based control interface |
| π Cross-Platform | β Active | Windows + Linux support |
We're always looking for skilled engineers to join the pit crew. Whether you're interested in improving the control interface, optimizing broadcast integrations, or enhancing telemetry featuresβyour contributions are welcome.
- Fork the repository
- Create a feature branch (
git checkout -b feature/telemetry-enhancement) - Commit your changes (
git commit -m 'Add advanced telemetry overlay') - Push to your branch (
git push origin feature/telemetry-enhancement) - Open a Pull Request
- π Follow TypeScript best practices
- π§ͺ Write tests for new features (when test infrastructure exists)
- π Update documentation for user-facing changes
- π¨ Match the existing code style
- β Ensure builds pass before submitting PRs
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- πΊ Updates: YouTube @simracecenter
This project is licensed under the GNU General Public License v3.0.
See LICENSE for full details.

