Deploying

Deploy to Google App Engine#

Cloud Carbon Footprint is configured to be deployed to Google App Engine (standard environment) using GitHub Actions. See the Hello World example for instructions on setting up a Google Cloud Platform project and installing the Google Cloud SDK to your local machine.

Before deploying, you'll need to build the application and create the packages/api/.env and packages/client/.env file as detailed above. There are two scripts to populate these files as part of the GitHub Actions pipeline: packages/cli/create_server_env_file.sh and client/create_client_env_file.sh.

Once you've set up the CGP project and have the command line tools, Cloud Carbon Footprint can be deployed with ./appengine/deploy-staging.sh or ./appengine/deploy-production.sh, depending on your environment.

Or if you want to use GitHub Actions, you can see the configuration for this in .github/workflows/ci.yml.

It will deploy to https://<something>.appspot.com.

Deploy to AWS#

The application can also be deployed in AWS by making use of EC2 as the compute service to run it on. In order to do so, we provide a basic infrastructure setup that spins up all the necessary cloud resources, from the required role/policies to the actual compute resource and its provisioning (EC2 with user data).

The infrastructure setup, developed with Terraform, can be found in terraform/aws and needs to be parametrized with the right values and tweaked to the specific circumstances of the user i.e. there might not be the need to fire up all resources but a subset of them.

For more information, please note that there are specific instructions for this here.

Deploy to other cloud providers#

Cloud Carbon Footprint should be deployable to other cloud providers such as Heroku or AWS Elastic Beanstalk. However, only Google App Engine has been tested currently, so there may be some work involved in doing this.

Don't forget to deploy your .env files or otherwise set the environment variables in your deployment.

Cloud Carbon Footprint is an open-source project, sponsored by Thoughtworks Inc. under the Apache License, Version 2.0

PRIVACY POLICY