Skip to content

navapbc/template-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nava Strata

Open source tools for every layer of government service delivery.

Strata is a gold-standard target architecture and suite of open-source tools that gives government agencies everything they need to run a modern service.

AWS infrastructure template

Overview

This template repository provides foundational AWS infrastructure for deploying modern web applications. It is part of the interoperable Nava Strata suite of open source tools.

What's Included

This template provides everything you need to deploy a production-ready web application:

  • Team Workflows – Pull request templates, architecture decision records (ADRs), and Makefiles for streamlined development
  • Account Level Foundational Infrastructure – Infrastructure for terraform backends, including an S3 bucket and DynamoDB table for storing and managing terraform state files.
  • Application Infrastructure – Container registry, load balancers, web services, and databases for your web app
  • Continuous Integration – GitHub Actions for automated linting, validation, and security compliance checks
  • Continuous Deployment – infrastructure for continuous deployment, including: AWS account access for Github actions, scripts for building and publishing release artifacts, and a Github action for automated deployments from the main branch.
  • Comprehensive Documentation – Technical documentation explaining all architectural decisions and defaults

System Architecture

The infrastructure creates a robust, scalable system architecture:

System architecture

See the system architecture documentation for detailed information.

Prerequisites

Before using this template, you need an application ready to deploy.


Getting Started

Installation

Install the template into your project using the Nava Platform CLI:

  1. Install the nava-platform tool: Follow the instructions at github.com/navapbc/platform-cli

  2. Run the installation command in your project's root directory:

    nava-platform infra install .
  3. You're ready to go! Proceed to the setup steps below.

Setup Guide

Follow these steps in order to set up your complete infrastructure:

Step 1: Infrastructure Setup

Follow the instructions in infra/README.md to setup the infrastructure for your application.

Step 2: Configure CI

After setting up AWS resources, set up GitHub Actions workflows for automated testing and validation

Step 3: Enable Continuous Deployment

After configuring GitHub Actions, set up continuous deployment for automated deployments from the main branch

Step 4: Pull Request Environments (Optional)

After setting up continuous deployment, you can optionally set up pull request environments for testing changes in isolation

Step 5: Team Workflow

Set up your team workflow – this can be done at any point in the process

Keeping Your Infrastructure Up to Date

With the nava-platform tool installed, run the following in your project's root directory:

nava-platform infra update .

Handling Update Conflicts

If the update fails, the tool will provide some guidance, but effectively the next step will be apply the updates in smaller pieces with manual merge conflict resolution.

Important: Always read the release notes before updating to check for breaking changes that may affect your infrastructure.


Additional Resources

  • Documentation – Comprehensive guides and architectural decisions
  • Contributing – How to contribute to this project
  • License – Apache 2.0 License
  • Security – Security policies and vulnerability reporting

Community

About

A template to set up foundational infrastructure for your application in AWS

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published