Skip to content

Configuration for remote deployment infrastructure and local development environment

License

Notifications You must be signed in to change notification settings

HeliumEdu/deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Versions Build GitHub License

Helium Infrastructure

The deployment infastructure for Helium Edu.

Released container images are published to Helium's AWS ECR.

Prerequisites

  • Docker
  • Python (>= 3.12)
  • Terraform (>= 1.9)
  • See Deployment for others

Getting Started

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.

Development

Initialize dev-local Environment in Terraform

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.

Docker Setup

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
make

Done! The frontend, platform, and ci-tests are now setup for you.

If dev-local was not provisioned, you'll want to set PROJECT_DISABLE_EMAILS=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

Image Architecture

By default, deployable Docker images will be built for linux/arm64. To build native images on an x86 architecture instead, set PLATFORM=amd64.

Deployment

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.

Initialize prod-like Environment in Terraform

For more information on deploying a hosted, fully functional prod-like environment, see the prod Terraform Workspace.

About

Configuration for remote deployment infrastructure and local development environment

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •