The deployment infrastructure for Helium.
Released container images are published to Helium's AWS ECR.
- Docker
- Python (>= 3.12)
- Terraform (>= 1.9)
- See Deployment for others
This repository contains everything that is necessary for deployment and local development, including setting up a local machine to use Docker, and the Terraform necessary to provision environments.
For more information on setting up a minimal (but fully functional) dev-local environment, see
the dev-local Terraform Workspace.
This is not necessary to develop locally with Docker, but certain features (like emails and text messages)
will not be available without this.
Here is a minimal set of commands that will get a Docker environment setup locally.
git clone https://github.com/HeliumEdu/deploy.git helium
cd helium
makeDone! The frontend, platform, and
cluster-tests are now setup for you.
If dev-local was not provisioned, you'll want to set PROJECT_DISABLE_EMAILS=True and PROJECT_DISABLE_TEXTS=True
in platforms's .env file (and restart Docker
with make restart). Helium is now accessible at http://localhost:3000, and you should be able to register for an
account. Or have a look at the platform's README
for steps to create a superuser with access to the admin site.
In the future, this local Docker environment can quickly be brought up again simply by running:
make start
By default, deployable Docker images will be built for linux/arm64. To build native images on an x86 architecture
instead, set PLATFORM=amd64.
Use the Release action to cut a release and publish container images to AWS ECR. If a Terraform Workspace has been provisioned and hooks to this repo are setup, then bumping the Image URI version variable in Terraform will trigger a new deployment to this version when the Terraform applies.
For more information on deploying a hosted, fully functional prod-like environment, see
the prod Terraform Workspace.