This repository is a monorepo for projects written in TypeScript supporting libs and apps of GPP. It contains the following projects:
- navigate-ui: Web UI used to configure the telescope and its subsystems Navigate UI, written in React.
- navigate-configs: Backend api to manage configurations database using TypeScript, Graphql and Prisma.
- resource-ui: Web UI for Resource, written in React.
- common-ui: Shared code between
navigate-uiandresource-ui - e2e: end-to-end tests for navigate. Running
navigate-ui,navigate-configsand a navigate-server docker image
You can install a navigate cluster using the installation script provided in the deploy directory and in this link.
IMPORTANT!
A running docker service is required to install navigate, the user installing navigate should have permissions to run docker commands. Also, the docker images are hoster under noirlab organization, so the nlsoftware user should be used to pull docker images, which requires a docker login,
After running the install.sh script, the navigate command will be enabled to start, stop and update the cluster. For more information try the command navigate help.
This snippet can be used in order to run the install.sh script.
curl https://raw.githubusercontent.com/gemini-hlsw/navigate-ts/refs/heads/main/deploy/install.sh >install.sh
chmod +x install.sh
./install.shOpen the VS Code workspace in the root of the repository. You can use the command line or the GUI.
$ code workspace.code-workspaceTo install needed dependencies you can use PNPM. You can enable it with corepack by running the following command:
$ corepack enableWe are now using FontAwesome Pro which requires a license. To build the app locally request a TOKEN from the admins and you need to setup an env variable containing it like
export FONTAWESOME_NPM_AUTH_TOKEN=...$ pnpm install
$ pnpm ui dev
$ pnpm configs build
$ pnpm configs devThe project is automatically published by Github actions when a new tag is pushed. Two docker images are published:
noirlab/gpp-nav-configs: the docker image for navigate-configs.noirlab/gpp-nav: an extra layer on top ofnoirlab/gpp-nav-server, which adds the UI static files to/navigate-ui, so the backend can serve these files.