Project details

Node.js Pokédex deployed with a complete DevOps workflow.

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.

Application

Node.js and Express serve the EJS frontend and expose backend API routes.

External API

The backend calls PokéAPI, formats the response, and returns only useful data.

Docker

The application is packaged as a Docker image and deployed as a container.

Infrastructure

Terraform provisions the AWS infrastructure, including VPC, EC2, IAM, SSM, and security groups.

Deployment

Ansible runs from a Dockerized control node and deploys the app through AWS Systems Manager without SSH.

HTTPS

Caddy runs as a reverse proxy container and provides HTTPS with Let's Encrypt.

CI

GitHub Actions validates the Node.js app, builds the Docker image, and checks Terraform formatting and validation.

Operations

Makefile commands automate the main workflow: infrastructure creation, deployment, health checks, and cleanup.