Deploy

Since Smarter is a Docker-based web application and REST API, deployment is typically handled via container orchestration platforms such as Kubernetes, Docker Swarm, or cloud-based services like AWS ECS or Azure Container Instances.

Local

To deploy Smarter locally for development or testing purposes, you can use this docker-compose.yml file located in the root of the Smarter repository with Docker Compose. Ensure you have Docker and Docker Compose installed on your machine. Note that Docker Desktop installs both Docker and Docker Compose for you.

make run

See Makefile for additional deployment options.

Production

For production deployments, you can utilize cloud platforms such as AWS, Google Cloud Platform, or Microsoft Azure. You can use this reference GitHub Actions workflow as a starting point for your own CI/CD pipeline. This workflow deploys the Smarter cloud platform to an AWS Elastic Kubernetes Service (EKS) cluster.

Smarter GitHub Actions Deploy

Kubernetes

The Smarter project maintains a Helm chart located in the ./helm/charts/smarter directory of the smarter repository. This chart is published to https://artifacthub.io/packages/helm/project-smarter/smarter and is regularly updated with each new release. You can use this Helm chart to deploy Smarter to any Kubernetes cluster.

You should also familiarize yourself with the Smarter Terraform modules located in https://github.com/smarter-sh/smarter-infrastructure for provisioning the necessary AWS cloud infrastructure to run Smarter in production.