Git Actions with Gitea

Gitea, GitHub and GitLab Runners - all the same?

Project info


Software Engineering

2024/11/15

Introduction

A brief project description or quote to summarize its goals.

“Basic setup including server, runner, and pipeline to deploy a website on an Nginx server ”
— Arek

Explore the Project

Tips

Tech details - Go to general technical info about components (on this page)


About

Introduction
Inspired by the recent interview conversation, I decided to synthesize and expand my interdisciplinary knowledge and try my hand at the DevOps approach. The impact of this culture is visible not only in software delivery but also in data processing and analysis (DataOps), infrastructure management (GitOps), and improving the reliability of production environments (SRE). I consider it a valuable lesson and an excellent complement to my previous projects.

In this project, I explored and successfully set up a server and tools to automate deployments triggered by pushes to the main branch. The process involves checking out the repository to the target directory without building packages, serving as a foundation for future initiatives and projects. This approach offers a simpler case to more complex pipelines, such as those I've implemented in JetBrains TeamCity.

Note: While the containerized Gitea setup functions well, containerized runners are more challenging to configure compared to standard installations.

Project Overview

In General

Components

Quick Summary

  1. CI/CD Service
  2. Infrastructure and Networking

List of All Technologies

Grouped by Category

Category Technologies
VCSGit + Gitea (self-hosted GitLab or GitHub alternative)
CI/CDGitea Actions ✦ Gitea Runner
YAMLWorkflow definition
ContainerizationDocker, Docker Compose
OSLinux Debian
Web ServerNGINX as a Reverse Proxy
SSLCertbot + Let's Encrypt for automatic SSL
Monitoring & ObservabilityNetData
Local DNS & DHCPPiHole/Unbound
Static Site GeneratorEleventy (11ty) for generating a static homepage

Components Specification

Detailed Information Grouped by Components

Table of Contents:

  1. CI/CD Service
  2. Infrastructure and Networking

Details
  1. CI/CD Service

    Setup including server, runner, and pipeline to deploy a website on an Nginx server
    Use Cases
    • Version Control: Managing repositories and tracking the history of code changes
    • CI/CD: Managing repositories and tracking code change history
    • Pipeline #1: Deploying a simple website
    Tech Stack
    Category Description
    VCS Git + Gitea (self-hosted GitLab or GitHub alternative)
    CI/CD Gitea Actions
    CI/CD Gitea Runner
    YAML Workflow definition
    Containerization Docker, Docker Compose
    OS Linux Debian
  2. Infrastructure and Networking

    Managing network and server infrastructure using NGINX and local DNS.
    Use Case
    • Network Routing: Handling subdomains and securing HTTP/S traffic
    • SSL/TLS Management: Ensuring secure connections with SSL certificates
    Tech Stack
    Category Description
    Web Server NGINX as a Reverse Proxy
    SSL Certbot + Let's Encrypt for automatic SSL
    Monitoring & Observability NetData
    Local DNS & DHCP PiHole/Unbound
    Static Site Generator Eleventy (11ty) for generating a static homepage

Additional Information

  • Domain: DevOps, DataOps
  • Status: in_progress
  • Keywords: Gitea CI/CD Docker GitLab GitHub

Thumbnail

UML Sequance Diagram