Back to Projects
Gitea CI/CD Nginx Webhook GoAccess

Private CI/CD Server using Gitea, Webhook, and GoAccess Monitoring

A lightweight, self-hosted CI/CD infrastructure on Ubuntu VPS utilizing Gitea and Webhooks for automated deployment with real-time GoAccess traffic monitoring.

Private CI/CD Server using Gitea, Webhook, and GoAccess Monitoring

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

1

Ubuntu Server

Acts as the stable, open-source operating system foundation for all integrated server services.

2

Bind9

Serves as the DNS server to translate domain names like "proyek.lokal" into the server's static IP address.

3

Nginx

Functions as a high-performance web server and reverse proxy to securely manage and serve web traffic.

4

Gitea

A lightweight, Go-based Version Control System used for managing private Git repositories with minimal resource consumption.

5

Webhook

An automation mechanism that triggers deployment scripts on the server immediately after code changes are detected.

6

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

1

Infrastructure Setup

Installation and configuration of Bind9 DNS and Nginx web server to establish basic network accessibility.

2

Git Implementation

Deploying Gitea as a self-hosted repository manager for secure source code version control.

3

CI/CD Automation

Configuring Webhooks and deployment scripts to synchronize code changes from Gitea to the Nginx web directory.

4

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

Workflow
GoAccess