Mattermost on AWS
What is Mattermost?
Mattermost is an open source collaboration tool for developers
Deploy Mattermost on AWS
This repo purpose is to deploy Mattermost on AWS with Cloudformation
Requirements
- have an AWS account
- host a domain or sub-domain on route53 (needed to create a SSL certs with ACM)
- Admin priviledge to AWS
Initial Setup Documentation
- 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.
Set up the first Infrastructure Stack
the first stack should to be called mattermost-pipeline
Sets to set up the first stack
First update parameters
- update
cfn-templates/parameters/cli-parameters.json
file wiht the specific of your aws account.
CloudFormationAdmin
role
Create an - TBD
mattermost-pipeline
stack
Create the first - 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
Deploy your first environment stack
Refer to the deploystack.md for instruction on how to deploy a stack.
CICD documentation
Refer to the cicd.md page for CICD pipeline documentation
CloudFormation Stacks
Refer to the cfn-templates.md for documentation on the CloudFormation templates
Infrastructure
Refer to the infrastructure.md page for documentation on the infrastructure design