Files
OpenSquawk/README.md
2026-08-01 21:04:14 +02:00

81 lines
2.7 KiB
Markdown

# Self-host OpenSquawk
OpenSquawk is a browser-based aviation radio training application. It provides
Live ATC scenarios with spoken controller responses, a classroom learning mode,
and optional simulator/cockpit bridge integration.
This repository contains the Nuxt application and its H3 API. Live ATC routing
and authoritative session state are provided by the separate
[`OpenSquawk-API`](https://github.com/OpenSquawk/OpenSquawk-API)
service.
## Requirements
- Node.js 22 and Yarn 4
- MongoDB
- Python 3.12 and Poetry for `OpenSquawk-API`
- An OpenAI-compatible service for cloud STT/TTS, or a configured local speech
provider
The simulator/cockpit bridge is optional.
## Start locally
Start MongoDB, then prepare the Nuxt application:
```bash
corepack enable
cp .env.example .env
yarn install
```
Generate strong values for `JWT_SECRET`, `APP_JWT_SECRET`, and
`SERVICE_SECRET`. Keep `AUTH_MODE=open` for a self-hosted instance without a
login. Configure the speech provider variables required by your setup.
In a separate checkout of `OpenSquawk-API`, start the decision backend:
```bash
poetry install
poetry run uvicorn main:app --reload
```
It listens on `http://127.0.0.1:8000` by default. If it runs elsewhere, set
`NUXT_PUBLIC_RADIO_BACKEND_URL` accordingly.
Start the Nuxt application:
```bash
AUTH_MODE=open yarn dev
```
The application is then available at `http://localhost:3000`.
## Configuration
All documented variables and self-hosting defaults are in
[`.env.example`](./.env.example). MongoDB stores user state, learning progress,
bug reports, and transmission logs locally. Telemetry forwarding is disabled
when `TELEMETRY_URL` is empty.
## Services
- `OpenSquawk-API`: decision flows, routing, and Live ATC session state
- MongoDB: application identities, progress, reports, and logs
- OpenAI-compatible or local speech service: transcription and controller audio
- Optional bridge: simulator and cockpit integration
## License
OpenSquawk is source-available for personal self-hosting. Individuals may use
and modify it privately, and may share source code and public forks under the
same license. A running instance may only be used by the individual who hosts
it. Providing functionality to anyone else is prohibited, whether paid or
free of charge; this includes SaaS, shared instances, and hosting for clubs or
other organizations. Commercial and organizational use requires an express
written exception or separate license from the applicable copyright holder.
Contributions are welcome under the contribution grant in section 6 of the
[OpenSquawk Community Source License](./LICENSE). OpenSquawk is not open-source
software as defined by the Open Source Initiative.