Skip to main content

Deployment

There are a few different ways to deploy Aerie:

  • To get Aerie running quickly on your computer, see the fast track instructions for minimal setup.
  • If you plan to deploy Aerie in a shared production environment, read this entire page and then see the production deployment guide.
  • If you are a developer and you want to run Aerie locally & make changes to Aerie core code, read this page and then head to the developer guide in the repository for local setup instructions.

The rest of this document goes into more depth about the Aerie system and how it should be deployed, regardless of environment.

Aerie Releases

Aerie releases are published on the Github Releases page, and each release has a Deployment.zip artifact attached. This folder contains everything necessary to deploy a version of Aerie - namely the docker-compose.yml and .env files, detailed below. These files are provided as a starting point and should be modified to suit your needs.

Environment Variables

Each Aerie service is configured with environment variables, some of which are required to run. They are expected to be set in a .env file in the folder you're running Aerie from. The version of this file provided in Deployment.zip is an empty template that must be filled in with service usernames and passwords of your choosing. See this .env.template file for a completed example.

A description of allowed variables is found in the Environment Variable Documentation - it's recommended to read through these & determine which are relevant to your situation.

Of note, the aerie-merlin, aerie_merlin_worker, aerie-scheduler, and aerie-scheduler-worker containers can be provided additional JVM arguments - for example, allocated heap size - as environment variables. Desired JVM flags should be added to the JAVA_OPTS environment variable for the container being configured.

Docker

Aerie consists of multiple services, and uses Docker and Docker Compose to manage and run them. The artifacts used to deploy Aerie are a collection of Docker images, one per service, which we publish to the public GitHub Packages repository. Aerie images conform to the OCI Image Format and may be compatible with Docker alternatives, but only Docker is officially supported.

Docker Compose commands are used to build and run the Aerie services all together, so in general you should only need to run docker compose up & docker compose down (along with some various command flags) to start and stop Aerie.

docker-compose.yml

Docker Compose uses a configuration file called docker-compose.yml to control all sorts of options for the Aerie services. The compose file provided in Deployment.zip should work as-is, but modifying this file is one of your most useful tools for controlling deployment-specific Aerie configuration options. Options in this file control:

  • The source & version (tag) of the image used for each service (in the image field)
  • The network ports used by each service (in ports)
  • The directories used as mounted file volumes (in volumes)
  • and other various environment variables passed to each service (in environment)

A full list of possible options can be found in the Docker compose file reference.

Aerie services & images

The following is a list of all of the required Aerie services, their associated Docker images (to be run by Compose), and their default network ports. The ui, gateway and hasura services are all "public-facing", which means their ports must be exposed to the network when running in a shared/production environment.

ImageDescriptionPortPublic
aerie-uiThe web-based client application for Aerie.80
aerie-gatewayGateway server used for file-upload and authentication.9000
aerie-hasuraHasura Docker image with bundled Aerie-specific Hasura metadata8080
aerie-merlinService for planning and simulation27183
aerie-merlin-workerWorker for executing simulations27187
aerie-postgresPostgres Docker image with bundled Aerie-specific SQL5432
aerie-schedulerService for scheduling27185
aerie-scheduler-workerWorker for executing scheduling goals27189
aerie-sequencingService for sequence generation and management27184

System Requirements

Software

NameVersion
Docker20.x

Hardware

Note these numbers are lower bounds. You will need to scale Aerie based on your mission needs.

HardwareDetails
CPU2 Gigahertz (GHZ) or above
RAM8 GB at minimum
Storage15 GB
Display resolution2560-BY-1600, recommended
Internet connectionHigh-Speed connection, at least 60MBPS

Supported Browsers

NameVersion
ChromeLatest
FirefoxLatest

Defect Reporting Procedure

Defect reports should be sent to: aerie-support@googlegroups.com. For chat-based support, please join us on the NASA-AMMOS Slack, in the #aerie-users channel.