A production-grade Next.js application designed to validate deployment infrastructure, CI/CD pipelines, and modern web technology stack compatibility.
This test application serves as a proof-of-concept for production-grade deployment workflows, validating:
- β Docker containerization and multi-stage builds
- β Automated CI/CD pipeline with GitHub Actions
- β Multi-VPS deployment strategies
- β Modern React/Next.js stack compatibility
- β Infrastructure scalability and reliability
- Next.js 15.3.2 - React framework with App Router
- React 19.1.0 - Latest React with concurrent features
- TypeScript 5 - Type-safe development
- Tailwind CSS v4 - Modern utility-first CSS framework
- pnpm - Fast, disk space efficient package manager
- Turbopack - Ultra-fast development bundler
- ESLint 9 - Code quality and consistency
- Google Fonts (Geist) - Modern typography
- Docker - Containerization with multi-stage builds
- GitHub Actions - Automated CI/CD pipeline
- Multi-VPS Deployment - Redundant server architecture
- Node.js 18+
- pnpm (recommended) or npm/yarn
- Docker (for containerization)
-
Clone the repository
git clone <repository-url> cd do-infra-test-app.coursegenix.me
-
Install dependencies
pnpm install # or npm install -
Start development server
pnpm dev # or npm run dev -
Open your browser Navigate to http://localhost:3000
| Command | Description |
|---|---|
pnpm dev |
Start development server with Turbopack |
pnpm build |
Build production application |
pnpm start |
Start production server |
pnpm lint |
Run ESLint code analysis |
docker build -t coursegenix-test-app .docker run -p 3000:3000 coursegenix-test-app- deps: Install dependencies only
- builder: Build application with optimizations
- runner: Minimal production runtime (Node.js 18 Alpine)
The project includes automated deployment via GitHub Actions:
- β Multi-environment deployment (VPS1, VPS2)
- β Docker Hub integration for image registry
- β Automated container management (stop, remove, deploy)
- β SSH-based VPS deployment
Configure the following in GitHub repository settings:
DOCKER_USERNAME # Docker Hub username
DOCKER_PASSWORD # Docker Hub access token
VPS1_HOST # VPS 1 IP address
VPS1_USERNAME # VPS 1 SSH username
VPS2_HOST # VPS 2 IP address
VPS2_USERNAME # VPS 2 SSH username
VPS_SSH_KEY # SSH private key for VPS access
Pipeline automatically deploys on push to main branch.
βββ .github/workflows/ # CI/CD pipeline configuration
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js App Router pages
β βββ globals.css # Global styles with Tailwind
β βββ layout.tsx # Root layout component
β βββ page.tsx # Homepage component
βββ Dockerfile # Multi-stage container build
βββ next.config.ts # Next.js configuration
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
- Standalone output enabled for Docker optimization
- App Router architecture for modern React patterns
- TypeScript strict mode enabled
- Multi-stage builds for optimized image size
- Non-root user for security best practices
- Alpine Linux base for minimal attack surface
This test application validates the foundation for production deployment. For full production use, consider adding:
- Environment variable management
- Database integration and migrations
- Authentication and authorization
- Rate limiting and security headers
- Comprehensive testing suite (unit, integration, E2E)
- Monitoring and observability (health checks, metrics)
- Error tracking and logging
- CDN and caching strategies
This project is licensed under the Apache License 2.0.
Note: This is a test project designed to validate production deployment workflows and infrastructure reliability before full-scale application development.