Back to articles
Technology Insight

Tự dựng máy chủ Git siêu nhẹ: Hướng dẫn cài đặt Forgejo trên VPS ARM Oracle Cloud Free Tier thay thế GitHub

May 29, 2026

Giới thiệu: Xu hướng tự lưu trữ (Self-hosting) và giải pháp thay thế GitHub

Trong kỷ nguyên số, mã nguồn là tài sản trí tuệ vô giá của mỗi lập trình viên và doanh nghiệp. Nhiều năm qua, GitHub, GitLab hay Bitbucket đã trở thành những điểm đến quen thuộc. Tuy nhiên, việc phụ thuộc hoàn toàn vào các nền tảng đám mây bên thứ ba luôn tiềm ẩn những rủi ro về thay đổi chính sách chi phí, giới hạn tính năng riêng tư, hoặc lo ngại về quyền kiểm soát dữ liệu. Đối với các doanh nghiệp nhỏ, các nhóm phát triển tối ưu chi phí, hoặc các lập trình viên yêu thích sự tự do, xu hướng Self-hosting (Tự dựng máy chủ) đang trở thành một lựa chọn chiến lược.

Bài viết này sẽ hướng dẫn bạn xây dựng một hệ thống quản lý mã nguồn Git hoàn chỉnh, bảo mật và siêu nhẹ bằng cách kết hợp hai yếu tố công nghệ tối ưu: Forgejo (nhánh phát triển độc lập, hướng cộng đồng từ Gitea) và VPS ARM của Oracle Cloud Free Tier (gói đám mây miễn phí vô địch về cấu hình hiện nay). Bạn sẽ sở hữu một hệ thống thay thế hoàn toàn GitHub mà không tốn một chi phí vận hành nào.

Tại sao lại chọn Forgejo và Oracle Cloud ARM?

1. Forgejo: Sự kế thừa tinh hoa từ Gitea

Forgejo ra đời như một nhánh tách (fork) từ Gitea với cam kết giữ vững tinh thần mã nguồn mở, không bị chi phối bởi các quyết định thương mại hóa. Những lý do khiến Forgejo vượt trội bao gồm:

  • Hiệu năng siêu nhẹ: Được viết bằng ngôn ngữ Go, Forgejo tiêu tốn cực ít tài nguyên. Hệ thống có thể chạy mượt mà chỉ với 200MB - 500MB RAM, nhẹ hơn hàng chục lần so với GitLab.
  • Giao diện quen thuộc: Giao diện người dùng của Forgejo cực kỳ trực quan, tương đồng đến 90% với GitHub, giúp đội ngũ của bạn không mất thời gian làm quen lại.
  • Tính năng toàn diện: Hỗ trợ đầy đủ các tính năng cốt lõi như Repository quản lý code, Pull Request, Issue tracking, Wiki, Kanban Board cho dự án, và đặc biệt là hệ thống CI/CD (Forgejo Actions) tương thích với GitHub Actions.

2. Oracle Cloud Free Tier (ARM Architecture): Phần cứng miễn phí cấu hình cao

Chương trình Always Free của Oracle Cloud cung cấp cấu hình VPS sử dụng chip Ampere Altra (ARM) cực kỳ mạnh mẽ:

  • Cấu hình lên tới 4 vCPUs và 24GB RAM (có thể chia nhỏ thành nhiều VPS hoặc gộp chung).
  • Dung lượng ổ cứng lưu trữ lên đến 200GB NVMe SSD tốc độ cao.
  • Băng thông miễn phí dồi dào, lên đến 10TB mỗi tháng.

Nhận định: Sự kết hợp giữa một phần mềm tối ưu mã nguồn (Forgejo) và một hạ tầng phần cứng ARM hiệu năng cao, miễn phí (Oracle Cloud) tạo nên một giải pháp lưu trữ Git hoàn hảo, bền vững cho doanh nghiệp và cá nhân.

Quy trình chuẩn bị hệ thống VPS Oracle Cloud

Bước 1: Khởi tạo VPS ARM và cấu hình Network

Trước khi cài đặt, bạn cần khởi tạo một instance trên giao diện Oracle Cloud Console với các lưu ý sau:

  1. Hệ điều hành: Chọn Ubuntu 22.04 LTS hoặc Ubuntu 24.04 LTS (phiên bản kiến trúc ARM64).
  2. Cấu hình: Chọn Shape VM.Standard.A1.Flex. Bạn có thể cấp phát 2 vCPUs và 8GB RAM cho máy chủ Git này (đã là quá thừa thãi cho Forgejo).
  3. Cấu hình Security List (Firewall): Truy cập vào Virtual Cloud Network (VCN), phần Ingress Rules để mở các cổng mạng sau:
    • 80/TCP và 443/TCP: Dành cho giao thức HTTP/HTTPS và cấp chứng chỉ SSL.
    • 22/TCP hoặc cổng tùy chỉnh: Dành cho kết nối SSH quản trị.
    • 2222/TCP (hoặc cổng bất kỳ bạn chọn): Dành cho kết nối SSH Git của Forgejo.

Bước 2: Cập nhật hệ thống và cấu hình Firewall nội bộ

Kết nối vào VPS qua SSH và thực hiện cập nhật các gói phần mềm lên phiên bản mới nhất, đồng thời mở cổng trên tường lửa của Ubuntu (iptables/ufw):

sudo apt update && sudo apt upgrade -y
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2222/tcp
sudo ufw enable

Hướng dẫn cài đặt Forgejo chi tiết bằng Docker Compose

Sử dụng Docker Compose là phương pháp quản lý, cập nhật và sao lưu Forgejo an toàn, nhanh chóng nhất trên môi trường VPS.

Bước 1: Cài đặt Docker và Docker Compose

Chạy các lệnh sau để cài đặt Docker Engine trên kiến trúc ARM64:

sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker

Bước 2: Tạo cấu trúc thư mục dự án

Tạo một thư mục riêng biệt để lưu trữ tệp cấu hình và dữ liệu của Forgejo nhằm mục đích dễ dàng sao lưu sau này:

mkdir -p ~/forgejo && cd ~/forgejo

Bước 3: Biên soạn tệp docker-compose.yml

Sử dụng trình soạn thảo văn bản (như nano) để tạo tệp cấu hình:

nano docker-compose.yml

Dưới đây là cấu hình chuẩn, sử dụng cơ sở dữ liệu PostgreSQL để đảm bảo hiệu năng cao và an toàn dữ liệu lâu dài:

version: '3.8'

services:
  server:
    image: codeberg.org/forgejo/forgejo:8
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - FORGEJO__database__DB_TYPE=postgres
      - FORGEJO__database__HOST=db:5432
      - FORGEJO__database__NAME=forgejo
      - FORGEJO__database__USER=forgejo
      - FORGEJO__database__PASSWD=MatKhauBaoMatCuaBan
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "8080:3000"
      - "2222:22"
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    restart: always
    environment:
      - POSTGRES_USER=forgejo
      - POSTGRES_PASSWORD=MatKhauBaoMatCuaBan
      - POSTGRES_DB=forgejo
    volumes:
      - ./db_data:/var/lib/postgresql/data

Lưu ý: Hãy thay đổi MatKhauBaoMatCuaBan bằng một chuỗi ký tự ngẫu nhiên có độ bảo mật cao.

Bước 4: Khởi chạy Forgejo

Kích hoạt các container chạy ngầm bằng lệnh:

sudo docker compose up -d

Cấu hình Reverse Proxy với Nginx và thiết lập SSL Let's Encrypt

Để truy cập máy chủ Git an toàn qua giao thức HTTPS (ví dụ: [https://git.domain.com](https://git.domain.com)), chúng ta cần thiết lập Nginx làm Reverse Proxy và cấu hình SSL miễn phí.

1. Cài đặt Nginx và Certbot

sudo apt install nginx certbot python3-certbot-nginx -y

2. Cấu hình Nginx Virtual Host

Tạo tệp cấu hình Nginx cho tên miền của bạn:

sudo nano /etc/nginx/sites-available/forgejo

Nội dung cấu hình:

server {
    listen 80;
    server_name git.domain.com; # Thay bằng tên miền của bạn

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $$host;
        proxy_set_header X-Real-IP $$remote_addr;
        proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $$scheme;
    }
}

Kích hoạt cấu hình và khởi động lại Nginx:

sudo ln -s /etc/nginx/sites-available/forgejo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

3. Cấp phát chứng chỉ SSL mã hóa HTTPS

Chạy lệnh Certbot để tự động cấu hình SSL bảo mật:

sudo certbot --nginx -d git.domain.com

Cấu hình giao diện ban đầu của Forgejo

Sau khi thiết lập tên miền thành công, hãy truy cập vào địa chỉ [https://git.domain.com](https://git.domain.com) trên trình duyệt để hoàn tất các thiết lập cài đặt ban đầu:

  • SSH Server Domain: Nhập tên miền của bạn (ví dụ: git.domain.com).
  • SSH Server Port: Điền 2222 (trùng với cổng chúng ta cấu hình trong Docker).
  • Gitea/Forgejo Base URL: Nhập chính xác URL HTTPS của bạn: [https://git.domain.com/](https://git.domain.com/).
  • Tài khoản Quản trị (Admin Account): Kéo xuống dưới cùng, tạo một tài khoản admin đầu tiên. Quan trọng: Tài khoản đầu tiên này sẽ nắm quyền tối cao tối cao quản lý toàn bộ hệ thống.

Đánh giá hiệu năng và kết luận

Sau khi đưa hệ thống vào vận hành thực tế, kết quả giám sát tài nguyên trên hạ tầng VPS ARM Oracle Cloud cho thấy những thông số vô cùng ấn tượng. Ở trạng thái nhàn rỗi (idle), Forgejo chỉ tiêu tốn chưa đầy 150MB RAM và mức độ sử dụng CPU dao động dưới 1%. Ngay cả khi thực hiện các tác vụ nặng như đẩy mã nguồn dung lượng lớn (git push) hoặc thực hiện các tiến trình tích hợp liên tục, hệ thống vẫn phản hồi tức thì với độ trễ cực thấp nhờ tốc độ đọc ghi vượt trội của ổ cứng NVMe SSD từ Oracle.

Việc làm chủ và tự vận hành một máy chủ Git riêng không chỉ giúp doanh nghiệp và các nhà phát triển giải quyết triệt để bài toán bảo mật dữ liệu, mà còn khẳng định năng lực làm chủ công nghệ hạ tầng. Với sự kết hợp hoàn hảo giữa Forgejo và Oracle Cloud Free Tier, bạn đã tạo ra một hệ sinh thái quản lý mã nguồn mạnh mẽ, độc lập và tối ưu chi phí ở mức tuyệt đối.

Tự dựng máy chủ Git siêu nhẹ: Hướng dẫn cài đặt Forgejo trên VPS ARM Oracle Cloud Free Tier thay thế GitHub | DPTCloud