Skip to main content

Welcome to the React + Express DevOps Mini Project

This project is designed to help you master the fundamentals of modern DevOps practices through a practical, hands-on approach. You’ll work with a simple full-stack application to learn containerization, multi-stage Docker builds, and automated CI/CD pipelines with Jenkins.

What you’ll build

A complete CI/CD pipeline that automatically builds, tests, and deploys a full-stack application using industry-standard tools. The application features a React frontend and Node.js + Express backend, all containerized with Docker and deployed via Jenkins.

Key features

Multi-stage Docker builds

Learn how to optimize Docker images using multi-stage builds that separate frontend compilation, backend setup, and production deployment

Jenkins CI/CD pipeline

Automate your deployment workflow with a complete Jenkins pipeline that handles checkout, build, and container deployment

Full-stack containerization

Containerize both React frontend and Express backend in a single optimized image with Docker Compose orchestration

Production-ready setup

Deploy a production-optimized application with proper port configuration, environment handling, and container management

What you’ll learn

Through this project, you’ll gain practical experience with:
  • Docker fundamentals: Building multi-stage Dockerfiles, creating optimized images, and managing containers
  • Container orchestration: Using Docker Compose to manage application services
  • CI/CD automation: Setting up Jenkins pipelines for automated builds and deployments
  • DevOps best practices: Implementing proper build stages, container lifecycle management, and deployment strategies

Technology stack

This project uses a modern, industry-standard technology stack:
  • Frontend: React 19.2 with React Scripts for building and bundling
  • Backend: Node.js 18 with Express 5.1 and CORS support
  • Containerization: Docker with multi-stage builds and Docker Compose
  • CI/CD: Jenkins with declarative pipeline syntax
  • Runtime: Alpine Linux for minimal container footprint

Architecture overview

The application uses a three-stage Docker build process:
  1. Frontend build stage: Compiles the React application into optimized static assets
  2. Backend build stage: Installs Node.js dependencies for the Express server
  3. Production stage: Combines both into a minimal Alpine Linux image that serves the React frontend through the Express backend
The Express server runs on port 5000 and serves both the API endpoints and the compiled React application, making it simple to deploy and manage.
This project is perfect for beginners who want to understand DevOps concepts through practical implementation. All code is intentionally kept simple to focus on the deployment and automation aspects.

Next steps

Quick start

Get the application running locally in under 5 minutes

Docker setup

Understand the multi-stage Dockerfile and build process

Build docs developers (and LLMs) love