SIRE is an open-source, multi-user emergency training simulator that delivers live incident scenarios to trainees via WebSockets — built for instructors who need realistic, repeatable drills.
Everything an instructor needs to run credible, high-fidelity incident exercises.
Scenario events are pushed live over Socket.IO with configurable time offsets, keeping every participant synchronized during an exercise.
Separate Instructor and Trainee views. Instructors control session flow; trainees receive and respond to unfolding incidents.
Each scenario unfolds in timed stages — from initial alert through full escalation — mirroring how real incidents develop.
In-memory session store means nothing to configure. Spin up a session, share the code, and trainees join instantly from any device.
Optional API key enforcement, ticket ID tracking, and structured audit logging built in — ready for enterprise compliance requirements.
Pre-configured for Railway, Render, Heroku, and Docker. Go from clone to live training environment in under five minutes.
Covering the full spectrum of real-world emergency types your organization may face.
A clean client-server split, real-time events, and stateless session storage.
Modern, lightweight, and dependency-minimal.
Backend
Frontend
Deploy
Up and running in under two minutes.
# 1. Clone the repo git clone https://github.com/aelayette/sire-simulator.git cd sire-simulator/backend # 2. Install dependencies npm install # 3. Configure environment (optional — defaults work for local dev) cp .env.example .env # 4. Start the server npm run dev # → Server running on http://localhost:8080
# Clone and start with Docker Compose git clone https://github.com/aelayette/sire-simulator.git cd sire-simulator/backend docker-compose up --build # → API available at http://localhost:8080
# One-click deploy options in backend/README.md # Railway → railway.json included # Render → render.yaml included # Heroku → Procfile + app.json included # Required environment variables: PORT=8080 API_KEY=your-secret-key ALLOWED_ORIGINS=https://your-frontend.com REQUIRE_API_KEY=true
Clean endpoints for session lifecycle management — pair with any frontend or automation tool.
Server status, uptime, and version info.
Create a new training session and receive a shareable session code.
Retrieve full session state including scenario and participants.
Join an existing session as a trainee.
Instructor starts the scenario — events begin streaming.
Terminate and clean up a session.