The RGS repository contains the main infrastructure for the uORocketry Ground Station.
The infrastructure is composed of the following components:
We are using a TimescaleDB instance for the database. The database schema is defined using the Drizzle ORM and we also use Hasura to expose a GraphQL API for consuming the data.
The providers are the components that receive data from an external source (eg: The rocket or a sensor) and broadcast it to the rest of the infrastructure.
These are the hydra_provider
, which receives data from the Hydra rocket and the labjack_provider
, which receives data from the labjack sensors.
The frontends are the components that allow the user to interact with the infrastructure. At the moment only being the web
frontend.
There are a few things of interest that you might want to have running on your machine:
- Docker + Docker Compose
- The backend Database/Hasura instance which can be run with
docker compose up
- The web frontend application. See its README for more information.
- The
hydra_provider
project which can provide usefull serial/development-random-data for the web frontend. See its README for more information. - Labjack Provider has not been implemented yet.
In addition, you can use PM2 as a process manager to run the stack. This is useful for running the ground station in case a process crashes.
- Run
pm2 start
to start the processes defined in the ecosystem file. - See PM2 Quick Start for more information.
Note: For development purposes hydra_provider
isn't included in the pm2
ecosystem file. Check its README for more information on how to run it.
Quickly stopping all containers: podman compose down --remove-orphans -t 0
Rebuilding the containers: podman compose up --build
Please refer to each of the following for more information.
- SvelteKit (Web Framework)
- Hasura (GraphQL API)
- Drizzle ORM (Database Schema)
- Slack (For general questions)