Back to articles
Technology Insight

Gitea Actions: Tự động hóa CI/CD 100% On-Premise không gửi mã nguồn ra bên ngoài

June 6, 2026

Giới thiệu xu hướng CI/CD On-Premise hiện nay

Trong kỷ nguyên số hóa, mã nguồn (source code) được coi là tài sản trí tuệ cốt lõi của doanh nghiệp. Việc lựa chọn công cụ tích hợp và triển khai liên tục (CI/CD) không chỉ dừng lại ở câu chuyện tính năng hay chi phí, mà yếu tố bảo mật và quyền kiểm soát dữ liệu đang trở thành tiên quyết. Nhiều tập đoàn lớn, các tổ chức tài chính, ngân hàng và cơ quan chính phủ bắt buộc phải áp dụng mô hình On-Premise để tuân thủ các quy định nghiêm ngặt về dữ liệu.

Trước đây, khi nhắc đến CI/CD tự lưu trữ (self-hosted), những cái tên như Jenkins hay GitLab CI thường được nghĩ đến đầu tiên. Tuy nhiên, Jenkins đòi hỏi cấu hình phức tạp và tốn tài nguyên quản trị, còn GitLab lại quá nặng nề cho các hạ tầng vừa và nhỏ. Đúng lúc này, Gitea Actions xuất hiện như một giải pháp đột phá: nhẹ, nhanh, mạnh mẽ và đặc biệt là tương thích hoàn toàn với cú pháp GitHub Actions quen thuộc.

---

Gitea Actions là gì? Khác biệt cốt lõi với GitHub Actions

Gitea là nền tảng quản lý mã nguồn Git tự lưu trữ cực kỳ tối giản được viết bằng ngôn ngữ Go. Kể từ phiên bản 1.19, Gitea chính thức tích hợp hệ thống CI/CD riêng mang tên Gitea Actions.

Điểm độc đáo của Gitea Actions nằm ở chỗ nó sử dụng công cụ act_runner (dựa trên dự án mã nguồn mở nổi tiếng nektos/act) làm công cụ điều phối lệnh. Nhờ cấu trúc này, Gitea Actions mang lại những giá trị cốt lõi vượt trội:

  • Tương thích cú pháp YAML: Bạn có thể sử dụng lại hầu hết các file cấu hình workflow được viết cho GitHub Actions mà không cần chỉnh sửa hoặc chỉ cần thay đổi rất ít.
  • Tận dụng hệ sinh thái có sẵn: Gitea Actions có khả năng tải và chạy trực tiếp các Action plugin từ các nguồn Git công khai hoặc lưu trữ nội bộ.
  • Kiến trúc phân tán: Server Gitea đóng vai trò điều phối trung tâm, trong khi các tác vụ nặng sẽ được đẩy về các máy ảo/container chạy act_runner riêng biệt.

Sự khác biệt quan trọng: Khác với GitHub Actions – nơi mã nguồn của bạn phải gửi lên đám mây của Microsoft và phụ thuộc vào số phút build miễn phí, Gitea Actions chạy hoàn toàn trong mạng nội bộ của bạn. Không một dòng code, không một token bí mật nào bị lọt ra Internet.

---

Tại sao doanh nghiệp nên chọn Gitea Actions để bảo vệ mã nguồn?

1. Bảo mật tuyệt đối (Zero External Data Leak)

Khi sử dụng các dịch vụ SaaS như GitHub hay Cloud-based CI/CD, mã nguồn và các thông tin tối mật (Secret Keys, API Token, Private Certificate) luôn tiềm ẩn nguy cơ bị rò rỉ nếu nhà cung cấp gặp sự cố bảo mật. Với Gitea Actions, toàn bộ quy trình từ lưu trữ code, kích hoạt webhook đến biên dịch và đóng gói ứng dụng đều diễn ra sau lớp tường lửa (Firewall) của doanh nghiệp.

2. Tối ưu hóa chi phí hạ tầng vượt trội

Các gói dịch vụ Enterprise của các nền tảng lớn thường tính phí theo số lượng người dùng (Per-user pricing) hoặc giới hạn băng thông, dung lượng lưu trữ Artifact (file sau khi build). Gitea Actions hoàn toàn miễn phí và không giới hạn. Bạn có thể tận dụng các server cũ, máy tính văn phòng hoặc cụm Kubernetes sẵn có để làm Runner mà không tốn thêm một đồng chi phí bản quyền nào.

3. Tốc độ build cực nhanh trong mạng LAN

Do chạy On-Premise, các tác vụ kéo mã nguồn (Git Clone), tải thư viện hoặc đẩy các image Docker lên Registry nội bộ (như Harbor hoặc chính Package Registry tích hợp của Gitea) diễn ra với tốc độ mạng LAN (Gbps), loại bỏ hoàn toàn hiện tượng nghẽn mạng hoặc độ trễ đường truyền quốc tế.

---

Kiến trúc vận hành của Gitea Actions

Để hiểu cách hệ thống hoạt động mà không cần kết nối ra ngoài, hãy nhìn vào kiến trúc gồm hai thành phần chính:

  1. Gitea Server: Giao diện quản lý trực quan, nơi hiển thị trạng thái log build, quản lý phân quyền và lưu trữ các file cấu hình workflow tại thư mục .gitea/workflows/.
  2. Act Runner: Một chương trình độc lập chạy dưới dạng tiến trình hệ thống (Systemd) hoặc Container (Docker/Kubernetes). Runner này sẽ liên tục gửi yêu cầu (Long-polling) đến Gitea Server để nhận các Job đang chờ xử lý.

Khi có sự kiện như push hoặc pull request, Gitea Server tạo ra Job, act_runner nhận Job này, khởi tạo một môi trường Container biệt lập (Sandbox) để thực thi các bước biên dịch, kiểm thử, sau đó trả kết quả log và Artifact về lại cho Server.

---

Hướng dẫn nhanh các bước triển khai Gitea Actions

Quy trình thiết lập hệ thống CI/CD On-Premise với Gitea Actions rất đơn giản, bao gồm 4 bước cơ bản sau:

Bước 1: Bật tính năng Actions trên Gitea

Mặc định, tính năng này có thể chưa được kích hoạt. Bạn cần truy cập vào file cấu hình cấu trúc hệ thống của Gitea (thường là app.ini) và thêm đoạn mã sau:

[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://gitea.com

Sau đó, tiến hành khởi động lại dịch vụ Gitea để áp dụng cấu hình mới.

Bước 2: Đăng ký và cấu hình Act Runner

Tải bộ cài đặt act_runner phù hợp với hệ điều hành của bạn từ trang chủ Gitea. Tiến hành lấy mã Token đăng ký tại trang Quản trị hệ thống (Site Administration -> Actions -> Runners) và chạy lệnh:

./act_runner register

Hệ thống sẽ yêu cầu điền URL của Gitea Instance và nhập chuỗi Token. Bạn cũng có thể định nghĩa các nhãn (Labels) như ubuntu-latest:docker://node:20-alpine để chỉ định môi trường container mặc định cho Runner.

Bước 3: Khởi chạy Runner

Chạy lệnh dưới đây để Runner bắt đầu lắng nghe các lệnh build từ hệ thống:

./act_runner daemon

Mẹo nhỏ: Đối với môi trường sản xuất (Production), bạn nên cấu hình chạy lệnh này dưới dạng một Systemd Service hoặc deploy thẳng vào cụm Kubernetes để đảm bảo khả năng tự phục hồi khi gặp sự cố.

Bước 4: Tạo file Workflow đầu tiên

Tại kho lưu trữ mã nguồn của bạn, tạo file .gitea/workflows/demo.yaml với nội dung tương tự mẫu sau:

name: On-Premise CI Pipeline
on: [push]
jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository code
        uses: actions/checkout@v4
      - name: Run internal tests
        run: |
          echo "Đang thực thi kiểm thử nội bộ..."
          echo "Hoàn thành 100% bảo mật!"

Ngay khi bạn thực hiện lệnh git push file này lên Gitea Server, hệ thống sẽ tự động kích hoạt tiến trình CI/CD và bạn có thể theo dõi tiến độ trực tiếp trên giao diện web trực quan.

---

Kết luận và Khuyến nghị

Gitea Actions thực sự là một làn gió mới thay đổi cuộc chơi DevOps cho các đội ngũ ưu tiên tính riêng tư và bảo mật dữ liệu. Việc làm chủ hệ thống CI/CD 100% On-Premise giờ đây không còn là đặc quyền của các ông lớn có hạ tầng khủng nhờ sự gọn nhẹ và tiện dụng của cấu trúc Gitea.

Nếu doanh nghiệp của bạn đang tìm kiếm một giải pháp tự động hóa quy trình phần mềm mạnh mẽ, dễ quản trị, tiết kiệm tài nguyên phần cứng và quan trọng nhất là giữ trọn vẹn mã nguồn trong tầm tay, Gitea Actions chắc chắn là câu trả lời hoàn hảo nhất ở thời điểm hiện tại.