Local development
| Part | Platform |
|---|---|
| Backend | Windows |
| EuroScope plugin | Windows x86 (Win32) — MSVC |
| Frontend | Windows, Linux & Mac |
| Docs | Windows, Linux & Mac |
Host requirements
Section titled “Host requirements”| Requirement | Used for | Notes |
|---|---|---|
| Docker Desktop | Backend | Compose for Postgres, migrator, optional full API image |
| Go | Backend | Version per backend/go.mod |
| Node.js 22.x | Frontend, docs | Version locked in frontend/package.json engines |
| Visual Studio 2022 or Build Tools (C++ workload) | EuroScope plugin | Must use an x86 Native Tools MSVC prompt — x64 produces the wrong architecture |
| CMake ≥ 3.15 | EuroScope plugin | |
| Ninja | EuroScope plugin | Matches CI |
Backend
Section titled “Backend”From backend/, bring up the full stack (API on 8090, Postgres, migrator):
docker compose --profile all up --build -dTo run the Go binary on the host instead, start only Postgres then:
docker compose --profile database up --build -dgo run ./cmd/serverSet DATABASE_CONNECTIONSTRING to localhost:5432 (see backend/.env).
Frontend
Section titled “Frontend”From frontend/:
npm cinpm run devDefault wsUrl in public/config.js is ws://localhost:8090/frontEndEvents.
EuroScope plugin
Section titled “EuroScope plugin”From euroscope-plugin/ in an x86 MSVC environment:
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja -B buildcmake --build buildSwap Debug for Release to mirror .github/workflows/build-plugin.yml.
To install:
- Copy
build/bin/FlightStripsPlugin.dllandbuild/bin/flightstrips_config.iniinto your EuroScope Plugins folder (%AppData%\EuroScope\<ICAO>\Plugins\). - Keep any EuroScope dependency DLLs beside the plugin.
- Load the DLL from EuroScope’s plugin dialog.
flightstrips_config.ini for local development
Section titled “flightstrips_config.ini for local development”The values that differ from production:
[authentication]audience = backend-devclientId = oPIlNgkBODM1OEFTrcKOZl9JavEives3
[api]baseurl = ws://localhost:8090/euroscopeEvents
[logging]level = DEBUGAll other keys (authority, redirectPort, enabled) stay the same as production. Full reference: src/config_dev.ini (dev), src/config.ini (prod).
userconfig.ini holds personal tokens and is gitignored — do not commit it.
From docs/:
npm cinpm run devDev server runs at localhost:4321 by default.
Wiring checks
Section titled “Wiring checks”With the backend on 8090: the frontend shows live strips once auth and WebSockets succeed; the plugin negotiates the euroscopeEvents WebSocket independently of the frontend origin.