47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
# above_me
|
|
## Goal
|
|
This projects listens to the APRS-servers of the [Open Glider Network](http://wiki.glidernet.org/) and keeps track of all incoming aircraft status. It provides an API that returns the latest status for each aircraft within a given location and range. It also provides a simple website that fetches and lists those aircraft status based on your device location automatically.
|
|
|
|
## Set up
|
|
### Native
|
|
#### Build
|
|
##### Backend
|
|
- `cd backend/`
|
|
- `cargo build --release`
|
|
|
|
##### Frontend
|
|
- `cd frontend/`
|
|
- `npm run copy-dependencies`
|
|
- `npm run compile`
|
|
|
|
#### Run
|
|
- Either run `RUST_LOG=error cargo run` inside the [backend/](backend) directory or build the backend and run `RUST_LOG=error ./backend/target/release/above_me`.
|
|
- Build the frontend and serve the _frontend/dist_ directory.
|
|
(For **development**, you may run `npm run dev` inside the [frontend/](frontend) directory. Requires _Python 3_.)
|
|
|
|
#### Configuration
|
|
Only the backend must be configured. Frontend will run as-is. There are three ways for configuration:
|
|
|
|
1. _/config.json_ (copy [config.example.json](config.example.json))
|
|
2. _/backend/config.json_ (copy [config.example.json](config.example.json), overrides _1._)
|
|
3. by environment variables with the prefix _ABOVE\_ME\_\__ (see [/docker/.env.example](docker/.env.example), overrides _1._ and _2._)
|
|
|
|
### Docker
|
|
Configure by setting up _/docker/.env_ (copy [/docker/.env.example](docker/.env.example)) and run `docker compose up`.
|
|
|
|
(Please note that the _bind\_url_ should be left unconfigured as it is used in the [/docker/docker-compose.yml](docker/docker-compose.yml) config file. Otherwise the proxy-pass may break.)
|
|
|
|
## API
|
|
API-Documentation: [openapi.yml](openapi.yml)
|
|
|
|
## Status
|
|
This project is up and running. I'd say it's "feature-complete" for my use-case.
|
|
I'll maybe start building a nicer frontend sometimes. (see [TODO.md](TODO.md))
|
|
|
|
## License
|
|
This code is licensed under the MIT-License (see [LICENSE](LICENSE)). Before using it, make sure to not violate against OGN rules:
|
|
|
|
see [OGN data usage](https://www.glidernet.org/ogn-data-usage/)
|
|
see [ODbL summary](https://opendatacommons.org/licenses/odbl/summary/)
|
|
|
|
(This project complies to those rules by only publishing data that's [at most 5 minutes old](backend/src/api/state.rs#L127) and [only for aircraft that don't have stealth- or no-tracking-mode active](backend/src/ogn/aprs/conversion.rs#L26).) |