Application
Node.js and Express serve the EJS frontend and expose backend API routes.
Project details
This project started as a small Pokédex application and evolved into a full DevOps deployment lab using Docker, Terraform, Ansible, AWS Systems Manager, DNS, HTTPS, and GitHub Actions CI.
Node.js and Express serve the EJS frontend and expose backend API routes.
The backend calls PokéAPI, formats the response, and returns only useful data.
The application is packaged as a Docker image and deployed as a container.
Terraform provisions the AWS infrastructure, including VPC, EC2, IAM, SSM, and security groups.
Ansible runs from a Dockerized control node and deploys the app through AWS Systems Manager without SSH.
Caddy runs as a reverse proxy container and provides HTTPS with Let's Encrypt.
GitHub Actions validates the Node.js app, builds the Docker image, and checks Terraform formatting and validation.
Makefile commands automate the main workflow: infrastructure creation, deployment, health checks, and cleanup.