Airspaces is a web and desktop companion app to X-Plane, a flight simulator. It provides an online map where you can track your plane flying, along with your friends, or the whole world of X-Plane simmers!
Can I help you?
If you have a bug report, a feature request, or just any question, you can either create an issue on Github.
Thanks for your interest! Here are a few ways to help me improve Airspaces:
- by reporting bugs of feature requests here in the issues of via email - see above
- by contributing with code, if you are a developer. The technologies involved are Node.JS, ReactJS and Docker. PRs are welcome. See the "Development" section below.
- if you wish, by donating a small amount of money via Paypal:
Unless you are a developer interested in contributing to Airspaces, you probably should have clicked one of the above links.
Airspaces (excluding the desktop app) is composed of a React.JS frontend and a Node.JS backend. Both use Typescript.
- Node.JS version 10 or above LTS
- yarn version 1.15 or above.
Getting set up
Here is how to get set up:
Clone the repo:
git clone email@example.com:foucdeg/airspaces.git
Then in a terminal, install frontend dependencies and run the frontend:
cd frontend && yarn && yarn start
In another terminal, do the same for the server.
cd server && yarn && yarn start
The server is now running on port 9000 and will be listening for X-Plane UDP packets on port 49003. The frontend is now running on port 3000 and should have opened a window in your browser.
Optionnally, in a third terminal, you can run a fake plane signal sending its data to your server:
cd server && yarn fake
Build and deploy
You are free to use the Dockerfile to build a Docker image of the server:
docker build -f ./docker/api/Dockerfile . -t foucdeg/airspaces:api
You won't be able to push an image named
foucdeg/airspaces:api to Docker Hub, because, well, that's my name. Just use your Docker Hub username instead and you'll have a working Docker image of Airspaces with your changes!
This repository also includes the source code for the main website, https://airspaces.app. It is a Github Pages website, Github automatically builds it.
I run it locally using the following command:
docker run \ -t --rm \ -v "$PWD":/usr/src/app \ -e JEKYLL_GITHUB_TOKEN=$JEKYLL_GITHUB_TOKEN \ -p "4000:4000" starefossen/github-pages
$JEKYLL_GITHUB_TOKEN is a Github access token to allow the local container to fetch the data from Github that builds the website.