Makefile
makeormake helpto list all commandsmake docker-upto start all containersmake docker-refreshto start the background servicesmake docker-cleanto stop and delete all containers, volumes, and networks related to the application
WARNING: Running make docker-clean or make docker-refresh will wipe the database, redis, and minio data
Setup
- Override any environment variables in
.env.local - Build the required images. Running just
make buildwill build thenginximagemake build f=nginxmake build f=apimake build f=ui
- Generate the SSL certificates with
make cert d=<DOMAIN>- Running just
make certwill generatelocalhostcertificates
- Running just
- Run the application with
make up
Development Environment
Start background services with make docker-refresh
- Note: when
ENVIRONMENTis not set toproduction(i.e., set todevelopment), the nginx container will function only as a reverse proxy - the UI must be run throughmake run-ui
Start the UI through make run-ui and the API through make run-api
Production Environment
Start with make docker-up
The most likely to change environment variables are the following:
UI_PORTAPI_PORTPOSTGRES_PORTPOSTGRES_PASSWORD- Please change in production environmentsMINIO_HOST- Match to theNGINX_HOSTvalue (see below)MINIO_ROOT_PASSWORD- Please change in production environmentsMINIO_BROWSER_REDIRECT_URL- Change to the FQDN of the URL that is reachable through the internet. For example:https://aviation.bensherriff.com/minio/NGINX_HOST- The IP address of the systemNGINX_INTERNAL_HOST- Typicallyhost.docker.internalor172.17.0.1to allow communication within the docker networkENVIRONMENT- Change toproductionADMIN_EMAIL- Please change in production environmentsADMIN_PASSWORD- Please change in production environmentsVITE_API_URL- Change to the FQDN of the URL that is reachable through the internet. For example:https://aviation.bensherriff.com/api__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS- Change to the domain of theVITE_API_URL. For example:aviation.bensherriff.com
If the App is not directly exposed to the internet (i.e., behind another reverse proxy or similar),
then NGINX_SSL_ENABLED most likely should be false. The NGINX_SSL_ENABLED should only be
enabled when you need to set up SSL directly. However, the SSL configuration is incomplete, and may
require additional configuration that is not included in this README.
- Additionally, run
make certto generate certificates.
Data Sources
Airport Data
Potential Data sources
- https://adip.faa.gov/agis/public/#/airportSearch/advanced
- https://www.icao.int/Aviation-API-Data-Service/Pages/default.aspx
- https://ourairports.com/data/
- mborsetti/airportsdata
- https://www.iata.org/en/publications/directories/code-search/
- openstreet
Metar Data
Metar data is collected from aviationweather.gov.
Decoding METARS
The following resources were used to help decode METARS.
OpenMapTiles
ADS-B
- https://blog.exploit.org/ads-b-guide-demodulation-and-decoding/
- https://mode-s.org/1090mhz/index.html
- https://planewave.github.io/posts/rtlsdr/
- http://jasonplayne.com:8080/#
Other data
Tests
cargo test metars::model::tests::test_parse_time -- --exact --nocapture
