apptension / aws-boilerplate

Opinionated full stack web app's boilerplate, ready to be deployed to AWS platform.

Home Page:https://apptension.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS Boilerplate

AWS Boilerplate License Maintenance

Note: The documentation is a work in progress. It will be in a much better state in couple of days!

The primary objective of this boilerplate is to give you a production ready code that reduces the amount of time you would normally have to spend on system infrastructure's configuration. It contains a number of services that a typical web application has (frontend, backend api, admin panel, workers) as well as their continuous deployment. Using this boilerplate you can deploy multiple environments, each representing a different stage in your pipeline.

We don't create any new CLIs or APIs that you need to learn. We use existing solutions, which you can extend or change however you like:

  • Make
  • CDK (TypeScript)
  • Serverless Framework
  • Docker

Prerequisites

  • Install latest Node.js (with NPM >= 6)

  • Install Python 3.8

    We recommend installing Python using pyenv

  • Install Pipenv

  • Install AWS CLI version 2

  • Install Docker

Installation

We recommend cloning this repository instead of downloading the ZIP. This way you'll be able to merge latest changes without too much hassle by resolving conflicts using your favourite tools.

To setup the project and install local dependencies run following command:

sh ./setup.sh

Running locally

Run backend services:

make up

Backend is running on http://localhost:5000.

Admin Panel is running on http://admin.localhost:5000.

Workers do not expose any http address.

System architecture diagram

System Diagram

How do I deploy the app to AWS?

Check out our deployment to AWS documentation

Services included in boilerplate

The boilerplate contains a number of typical services that are ready to be deployed to AWS. Each of them resides in the services directory and has to contain a Makefile. Do not change the names of the rules that are defined in Makefiles unless you know what you're doing. Most of them are used in CodeBuild jobs in your CI pipeline.

  • Web App – Single page application
  • Backend – Django app containing three services:
    • API backend
    • Admin Panel
    • Migrations
  • Async Workers – Serverless Framework

Continuous integration / Continuous Deployment

Each deployed environment comes with a preconfigured CI/CD implemented with AWS CodeCommit, AWS CodeBuild, and AWS CodePipeline. The general idea of deployment is for the user to push code to a master branch of the CodeCommit repository created by the Ci CDK Stack.

Check out the CI/CD documentation to learn more.

CI/CD Diagram

Guides

About

Opinionated full stack web app's boilerplate, ready to be deployed to AWS platform.

https://apptension.com

License:MIT License


Languages

Language:TypeScript 41.8%Language:Python 25.2%Language:JavaScript 16.3%Language:Shell 8.2%Language:Makefile 5.5%Language:HTML 1.3%Language:Dockerfile 1.3%Language:Handlebars 0.5%