Advanced GitLab CI/CD Pipeline Development

Job ID: 40131999

Budget: $30 – $250 USD

I. Concise Statement of Core Requirements
Based on a self-hosted GitLab instance, establish a standardized CI/CD pipeline for three independent projects: Admin Panel, User Frontend, and Backend Service. Implement automated deployment across multiple environments, paired with a reverse proxy container for unified SSL certificate management. Throughout the process, ensure server environment cleanliness, stable deployment updates, and valid SSL certificates. Specific requirements are as follows:

II. Detailed Requirements by Dimension
1. CI/CD Pipeline Setup
Each of the three projects must maintain independent Dockerfile and docker-compose.yml files.
Configure an automated pipeline using GitLab CI to trigger automatic build, test, and deployment processes upon code commit/merge.
2. Reverse Proxy and SSL Certificate Management
Deploy a standalone reverse proxy container (e.g., Nginx/Traefik) to uniformly route access requests for the three services.
The reverse proxy container shall automatically handle SSL certificate application, configuration, and renewal without manual intervention, ensuring compliant HTTPS access for all services.
3. Multi-Environment Deployment Rules
Testing Environment: Deployed on the same server as GitLab, with automatic updates triggered by code commits.
Production Environment: Support deployment to multiple remote servers (configured as an array of servers). Enable automated deployment upon code updates, ensuring no errors or service interruptions during deployment/updates for robust service operation.
4. Environment Cleanliness Requirements
GitLab Host (Testing Environment): Automatically clean up redundant images, containers, and logs post-deployment/update to prevent excessive storage space usage.
Production Remote Servers: Clean up legacy version resources before each deployment/update to maintain a clean environment and avoid conflicts caused by residual files/containers.

III. Core Objectives
Onboarding New Production Servers: Achieve automated deployment by simply completing domain name resolution, opening required ports, and adding server information to the GitLab production server array—no additional manual configuration needed.
Full-Lifecycle Assurance: Prevent significant redundant storage space usage on servers, ensure automatic renewal and validity of SSL certificates, guarantee error-free service deployment/updates, and maintain a scalable and easily maintainable overall architecture.