Mattermost is an open source collaboration tool for developers
This repo purpose is to deploy Mattermost on AWS with Cloudformation
- have an AWS account
- host a domain or sub-domain on route53 (needed to create a SSL certs with ACM)
- Admin priviledge to AWS
- The Mattermost application is deployed via AWS CloudFormation.
- Each CloudFormation deployment is called a Stack
- Each stack is an independent environment with no shared resources with other environments.
- AWS CLI
- Must be referencable as
aws
from the command line.
- Must be referencable as
This document will describe how to setup the infrastructure needed to deploy multiple environments.
the first stack should to be called mattermost-pipeline
Sets to set up the first stack
- update
cfn-templates/parameters/cli-parameters.json
file wiht the specific of your aws account.
- TBD
- go to the
cfn-templates
folder - enter the following command in a terminal window
aws cloudformation create-stack --stack-name mattermost-pipeline --template-body file://cfn-pipeline.yml --parameters file://parameters/cli-parameter.json --capabilities CAPABILITY_NAMED_IAM --tags Key=stackname,Value=mattermost-pipeline
This stack will
- create 1 repo in
CodeCommit
mattermost
(where the code for the app resides)
- create 2 s3 buckets
- s3 artifact bucket for the container build
- s3 cloudformation template
- Create an ECR repository for the container image
- IAM roles
- Deployment pipeline
- Container Build Project
- Container build pipeline
Refer to the deploystack.md for instruction on how to deploy a stack.
Refer to the cicd.md page for CICD pipeline documentation
Refer to the cfn-templates.md for documentation on the CloudFormation templates
Refer to the infrastructure.md page for documentation on the infrastructure design