Project Overview
Modern software development requires automated, structured, and controllable deployment systems. Popular CI/CD solutions often demand significant server resources, posing a challenge for small-scale developers or educational environments with limited budgets. This project solves these issues by building a lightweight, private CI/CD architecture on an Ubuntu VPS. It integrates Gitea for version control and Webhooks for automation, providing independence from third-party services while maintaining data sovereignty and operational efficiency on low-specification hardware.
System Architecture
Ubuntu Server
Acts as the stable, open-source operating system foundation for all integrated server services.
Bind9
Serves as the DNS server to translate domain names like "proyek.lokal" into the server's static IP address.
Nginx
Functions as a high-performance web server and reverse proxy to securely manage and serve web traffic.
Gitea
A lightweight, Go-based Version Control System used for managing private Git repositories with minimal resource consumption.
Webhook
An automation mechanism that triggers deployment scripts on the server immediately after code changes are detected.
GoAccess
A real-time monitoring tool that analyzes Nginx access logs to visualize server traffic and visitor statistics.
Key Features
Resource Efficiency
Designed to run smoothly on servers with limited CPU and memory using lightweight components.
Automated Deployment
Eliminates manual file transfers by using Webhooks to trigger real-time updates upon repository pushes.
Real-Time Monitoring
Provides instant visualization of web traffic and server performance without needing a complex database.
Data Sovereignty
A fully self-hosted private environment that ensures complete control over internal data and development processes.
Secure Reverse Proxy
Nginx hides internal services and enables HTTPS to protect data communication from external exposure.
System Flow
Infrastructure Setup
Installation and configuration of Bind9 DNS and Nginx web server to establish basic network accessibility.
Git Implementation
Deploying Gitea as a self-hosted repository manager for secure source code version control.
CI/CD Automation
Configuring Webhooks and deployment scripts to synchronize code changes from Gitea to the Nginx web directory.
Monitoring Integration
Setting up GoAccess to parse Nginx logs and generate a real-time visual monitoring dashboard.
Project Outcome
The project successfully established a functional, lightweight CI/CD pipeline where code commits to Gitea automatically trigger website updates via Webhooks. The system proved stable on resource-limited hardware, with GoAccess providing valuable real-time traffic insights without overtaxing the CPU. This architecture offers a practical, independent DevOps alternative for educational and small-scale development environments.
Screenshots