- Static website deployed in an S3 bucket
- Cloudfront pointing to the static website
- S3 website frontend
- EC2 backend with NodeJS
- Postgres Database
- Integration tests with:
- Slack integration
- Frontend and backend smoke testing
- Prometheus for monitoring
- Gmail for automated notifications
-
Fork this repository to your local machine
-
connect the repo to circleCI using the link below
-
Create an Environment varaible for AWS access in CircleCI
-
AWS_ACCESS_KEY_ID: Your AWS access key ID
-
AWS_DEFAULT_REGION: Your default AWS region
-
AWS_SECRET_ACCESS_KEY: Your AWS secret key
-
AuthEmail: Authentication email
-
EmailPassword: app password
-
FromEmail: Email to send Prometheus notifications from
-
ToEmail: The email to receive the notifications
Slack (create a slack app and fill in the following required items to auto-notify your channel on failure)
- SLACK_ACCESS_TOKEN
- SLACK_DEFAULT_CHANNEL
Database parameters for postgres DB A sample file is in ./backend/development.env. The only parameter you need to change here is TYPEORM_PASSWORD
TYPEORM_CONNECTION=postgres TYPEORM_DATABASE=postgres TYPEORM_ENTITIES=./src/modules/domain/**/.entity.ts TYPEORM_MIGRATIONS=./src/migrations/.ts TYPEORM_MIGRATIONS_DIR=./src/migrations TYPEORM_USERNAME=postgres TYPEORM_PORT=5432 TYPEORM_PASSWORD: any password of your choice
- Circle CI - Cloud-based CI/CD service
- Amazon AWS - Cloud services
- AWS CLI - Command-line tool for AWS
- CloudFormation - Infrastrcuture as code
- Ansible - Configuration management tool
- Prometheus - Monitoring tool