Fast Byte - Thuê VPS Giá Rẻ
Hướng dẫn chung

Hướng Dẫn Cài Gitea Trên Ubuntu VPS Tự Tạo Git Server Riêng A-Z

Hướng dẫn cài Gitea/Git Server trên Ubuntu VPS là thứ bạn cần nếu muốn một nơi lưu code hoàn toàn thuộc về mình: repo private không giới hạn, dữ liệu nằm hẳn trên máy chủ của bạn, không lo giới hạn dung lượng hay phí thuê bao hằng tháng. Bài viết sẽ đi qua toàn […]

Ảnh đại diện Thanh Lam NguyễnThanh Lam Nguyễn14 phút đọc

Hướng dẫn cài Gitea/Git Server trên Ubuntu VPS là thứ bạn cần nếu muốn một nơi lưu code hoàn toàn thuộc về mình: repo private không giới hạn, dữ liệu nằm hẳn trên máy chủ của bạn, không lo giới hạn dung lượng hay phí thuê bao hằng tháng. Bài viết sẽ đi qua toàn bộ quy trình từ A đến Z: chuẩn bị VPS, cài Git, cài MariaDB, tải binary Gitea, tạo systemd service rồi hoàn tất cấu hình qua giao diện web. Mọi thao tác đều thực hiện qua SSH, bạn chỉ cần một VPS Ubuntu và quyền sudo là có thể làm theo ngay. Nếu chưa có máy chủ, dịch vụ thuê VPS giá rẻ tại ThueVPSGiaRe.vn là điểm khởi đầu phù hợp cho nhu cầu này.

Gitea Là Gì Và Vì Sao Tự Host Git Server Trên Ubuntu VPS?

Gitea là phần mềm Git server mã nguồn mở, viết bằng ngôn ngữ Go, cung cấp giao diện web để quản lý repository, issue, pull request và thành viên. Điểm nổi bật nhất của Gitea là độ nhẹ hiếm có: chạy mượt trên VPS cấu hình nhỏ, cài đặt nhanh và rất hợp với cá nhân hoặc team nhỏ muốn tự chủ hoàn toàn dữ liệu source code.

Gitea - phần mềm Git server
Gitea – phần mềm Git server

Khi cần Git server riêng, bạn thường cân nhắc ba lựa chọn: Gitea, GitLab và GitHub. GitLab mạnh về hệ sinh thái DevOps tích hợp sẵn, đổi lại tiêu tốn tài nguyên máy chủ đáng kể — bài phân tích về GitLab sẽ giúp bạn hình dung rõ khoảng cách này.

GitHub tiện cho dự án công khai và cộng tác viên bên ngoài, còn khi cần kho repo nội bộ kín thì tự host vẫn là hướng tiết kiệm nhất. Workflow hằng ngày như clone, commit, push hay tạo pull request vẫn giống hệt khi làm việc với GitHub, nên team không phải học lại thói quen cũ; các thao tác đó được mô tả chi tiết trong bài hướng dẫn sử dụng GitHub của Fast Byte.

Tiêu chí Gitea GitLab GitHub
Hình thức Tự host, mã nguồn mở Tự host hoặc cloud Dịch vụ cloud
Tài nguyên VPS Rất nhẹ Nặng Không cần VPS riêng
Chi phí Miễn phí, chỉ tốn tiền VPS Bản free + bản trả phí Free + gói trả phí
Phù hợp Cá nhân, team nhỏ Doanh nghiệp cần DevOps Dự án mở, cộng tác rộng
  • Miễn phí, mã nguồn mở: không có phí bản quyền, toàn bộ chi phí chỉ là VPS vận hành.
  • Nhẹ tài nguyên: không cần VPS cấu hình lớn mới chạy được.
  • Repo private không giới hạn: code nội bộ nằm trên máy chủ bạn kiểm soát.
  • Quản trị qua giao diện web: tạo repo, thêm user, phân quyền đều thao tác bằng chuột.

Tiêu Chuẩn Phần Cứng & Hạ Tầng VPS Cho Gitea Server

Cấu hình VPS chạy Gitea ổn định cho một nhóm phát triển từ 5 đến 50 lập trình viên cần tối thiểu 2 vCPU, 1GB RAM và 20GB dung lượng ổ cứng SSD NVMe trên hệ điều hành Ubuntu LTS. Mức tài nguyên này đảm bảo hệ thống không bị lỗi thiếu bộ nhớ trong các đợt dọn rác cơ sở dữ liệu và xử lý nhiều phiên đẩy code cùng thời điểm.

  • Hệ điều hành: Lựa chọn tối ưu là phiên bản phân phối Ubuntu 24.04 LTS hoặc Ubuntu 22.04 LTS để đảm bảo nhận được các bản cập nhật an ninh dài hạn.
  • Bộ vi xử lý (CPU): Tối thiểu 2 Cores. Việc trang bị 2 Cores giúp máy chủ duy trì khả năng tiếp nhận yêu cầu phân nhánh, duyệt Merge Request và thực thi tác vụ nền mượt mà.
  • Bộ nhớ trong (RAM): Khuyến nghị từ 1GB trở lên. Khi thao tác với các kho chứa mã nguồn lớn, lệnh nén git gc ngầm sẽ tiêu tốn bộ nhớ tạm; dung lượng RAM ổn định sẽ ngăn chặn lỗi OOM (Out Of Memory) làm tắt dịch vụ.
  • Không gian lưu trữ (Disk): Từ 20GB đến 50GB ổ cứng chuẩn SSD NVMe nhằm đáp ứng số lượng lớn thao tác đọc ghi dữ liệu tập tin nhỏ liên tục.
  • Cấu hình mạng & Tên miền: Chuẩn bị sẵn một subdomain nội bộ (chẳng hạn git.yourcompany.com) và tiến hành trỏ bản ghi tên miền về địa chỉ IP của VPS một cách chính xác trước khi cài đặt.

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Hạ Tầng Tối Ưu Cho Git Server Nội Bộ Doanh Nghiệp

Dịch vụ VPS tại Fast Byte cung cấp phần cứng hiện đại với ổ cứng SSD NVMe tốc độ cao và đường truyền mạng trong nước thông suốt, giúp lập trình viên push/pull repository mượt mà mà không gặp tình trạng trễ mạng.

Tham khảo VPS giá rẻ

Chuẩn Bị & Cài Đặt Docker Engine Chuẩn V2 Trên Ubuntu

Việc áp dụng giải pháp ảo hóa tầng ứng dụng với công nghệ đóng gói Docker giúp tách biệt hoàn toàn Gitea khỏi môi trường của hệ điều hành gốc. Điều này mang lại sự an toàn cao, tạo sự thuận tiện khi di dời dữ liệu sang máy chủ mới và đơn giản hóa các tác vụ bảo trì sau này.

Bước 1: Gỡ bỏ các phiên bản gói Docker cũ

Để tránh xung đột thư viện giữa các bản phân phối, bạn nên dọn dẹp các thành phần không chính thức đã từng xuất hiện trên máy:

sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
Gỡ bỏ các phiên bản gói Docker cũ
Gỡ bỏ các phiên bản gói Docker cũ

Bước 2: Bổ sung kho lưu trữ và xác thực GPG Key chính thức

Cập nhật danh sách phần mềm hệ thống và cài đặt thêm các công cụ truyền dữ liệu cơ bản:

sudo apt-get update
sudo apt-get install ca-certificates curl -y
Cập nhật và cài đặt thêm các công cụ truyền dữ liệu
Cập nhật và cài đặt thêm các công cụ truyền dữ liệu

Tiếp theo, tạo thư mục lưu trữ chứng thực khóa và tải khóa ký bảo mật trực tiếp từ Docker:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Đăng ký nguồn APT chính thức của Docker vào tệp danh sách nguồn của Ubuntu:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Bước 3: Cài đặt Docker Engine và Docker Compose plugin

Tiến hành cập nhật lại index phần mềm và tải về Docker Engine cùng các tiện ích mở rộng theo quy chuẩn cài đặt Docker Compose trên Ubuntu:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Cài đặt Docker Engine và Docker Compose
Cài đặt Docker Engine và Docker Compose

Kiểm tra phiên bản compose để xác thực môi trường đã hoạt động chính xác:

docker compose version
Kiểm tra phiên bản compose
Kiểm tra phiên bản compose

Triển Khai Gitea & PostgreSQL Bằng Docker Compose

Đối với môi trường vận hành thực tế (Production), việc tích hợp cơ sở dữ liệu PostgreSQL mang lại tính toàn vẹn dữ liệu, khả năng đồng thời lớn và sức chịu tải vượt trội hơn hẳn so với tệp tin nhúng SQLite. Chúng ta sẽ gom cụm ứng dụng Gitea và máy chủ cơ sở dữ liệu PostgreSQL vào chung một cấu hình điều phối.

Bước 1: Thiết lập cấu trúc thư mục dự án

Tạo không gian thư mục chuyên biệt để quản lý tệp cấu hình và phân vùng dữ liệu:

mkdir -p ~/gitea-server
cd ~/gitea-server

Bước 2: Xây dựng tệp docker-compose.yml

Khởi tạo và chỉnh sửa tệp kê khai cấu hình bằng trình soạn thảo văn bản:

nano docker-compose.yml

Sao chép nội dung khai báo dịch vụ dưới đây. Chú ý chỉ định cụ thể mật khẩu bảo mật cho tài khoản cơ sở dữ liệu và giữ nguyên cấu hình cổng cho giao thức kết nối điều khiển qua SSH:

services:
  server:
    image: docker.gitea.com/gitea:1.25.3
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=YOUR_SECURE_PASSWORD
      - GITEA__server__SSH_LISTEN_PORT=22
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea_data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: postgres:14
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=YOUR_SECURE_PASSWORD
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - ./postgres_data:/var/lib/postgresql/data

networks:
  gitea:
    external: false

Nguyên lý kỹ thuật về cổng SSH: Trong môi trường container, nếu bạn đổi trực tiếp SSH Port hiển thị thành 222 mà không chỉ định biến GITEA__server__SSH_LISTEN_PORT=22, bản thân phần mềm Gitea sẽ chuyển cổng lắng nghe nội bộ sang 222. Điều này dẫn tới lỗi mất kết nối vì Docker đang tiến hành forward lưu lượng từ cổng 222 của Host vào cổng 22 của Container. Biến môi trường này giúp giữ cổng nội bộ luôn là 22, đảm bảo luồng định tuyến cổng ngoài 222:22 luôn thông suốt.

Bước 3: Khởi chạy các container nền tảng

Khởi động toàn bộ stack dịch vụ ở chế độ chạy ngầm (detached mode):

docker compose up -d

Kiểm tra trạng thái tiến trình sau khoảng 30 đến 60 giây khởi tạo:

docker compose ps
Khởi chạy các container nền tảng
Khởi chạy các container nền tảng

Thuê VPS giá rẻ

CPU Intel Gold, SSD NVMe U.2, giá từ 50K/tháng

Git server riêng bắt đầu từ một VPS nhỏ

Gitea rất nhẹ tài nguyên, một VPS cấu hình vừa đủ với quyền root đầy đủ đã chạy ổn định cho cá nhân hoặc team nhỏ. VPS giá rẻ Fast Byte dùng CPU Intel Gold và SSD NVMe U.2, tốc độ đọc ghi đáp ứng tốt việc thao tác Git liên tục, mà chi phí chỉ từ 50K/tháng.

Tham khảo VPS giá rẻ

Cấu Hình Nginx Reverse Proxy Và Cài Đặt SSL Let’s Encrypt

Dù giao diện web Gitea đang phản hồi qua port 3000, việc mở công khai cổng này ra ngoài Internet thiếu an toàn và không tiện lợi cho người dùng. Thiết lập Nginx làm cổng tiếp nhận ngược (Reverse Proxy) kết hợp chứng chỉ SSL giúp lưu lượng truy cập được bảo vệ an toàn qua giao thức HTTPS và tên miền chính thức.

Bước 1: Cài đặt và định cấu hình Nginx

Tải gói phần mềm máy chủ web Nginx từ hệ thống kho ứng dụng Ubuntu:

sudo apt install nginx -y

Tạo tập tin cấu hình Virtual Host riêng cho tên miền Gitea:

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

Dán đoạn cấu hình chuyển tiếp lưu lượng vào cổng 3000 (thay đổi giá trị git.yourcompany.com theo tên miền bạn sở hữu):

server {
    listen 80;
    server_name git.yourcompany.com;

    location / {
        proxy_pass http://localhost:3000;
        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;
    }
}

Tạo liên kết để kích hoạt cấu hình ảo, kiểm tra tính đúng đắn của cú pháp và nạp lại máy chủ Nginx:

sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Cài đặt và định cấu hình Nginx
Cài đặt và định cấu hình Nginx

Bước 2: Cấp chứng chỉ bảo mật SSL miễn phí qua Certbot

Thực hiện cài đặt Certbot qua công cụ đóng gói Snap để kích hoạt chứng chỉ bảo mật Let’s Encrypt cho Nginx, giúp mã hóa toàn bộ dữ liệu khi lập trình viên kết nối:

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d git.yourcompany.com

Hoàn Tất Cài Đặt Qua Giao Diện Web & Lưu Ý Cổng SSH

Sau khi hoàn tất cấu hình Nginx và SSL, hãy mở trình duyệt web và truy cập vào đường dẫn https://git.yourcompany.com. Lúc này, bảng cấu hình ban đầu của Gitea sẽ hiển thị để bạn thiết lập thông số cho máy chủ Git.

  • Thiết lập Database (Database Settings): Nhờ các tham số đã khai báo trong tệp Docker Compose từ trước, các trường cấu hình kết nối tới PostgreSQL đã được điền sẵn chính xác; bạn chỉ cần giữ nguyên mặc định.
  • Tên ứng dụng & Miền (Application Settings):
    • Site Title: Nhập tên đại diện cho hệ thống Git của đội ngũ (ví dụ: DevCenter Git Server).
    • Server Domain: Nhập đúng tên miền của bạn: git.yourcompany.com.
    • SSH Server Port: Nhập giá trị 222. Giá trị này giúp định hình đường dẫn hiển thị để clone code qua SSH (như ssh://git@domain:222/repo.git), trong khi cổng kết nối ngầm bên trong container vẫn là cổng 22.
    • Gitea Base URL: Điền địa chỉ đầy đủ dạng HTTPS và có dấu gạch chéo ở cuối: https://git.yourcompany.com/.
  • Tùy chọn dịch vụ hệ thống: Đánh dấu tích vào ô Disable Self-Registration (Tắt tính năng tự đăng ký tài khoản). Đây là nguyên tắc quan trọng nhằm ngăn chặn người dùng tự do tạo tài khoản trên máy chủ của doanh nghiệp.
  • Tạo tài khoản Administrator: Mở rộng mục cấu hình tài khoản quản trị và thiết lập tên đăng nhập cùng mật khẩu bảo mật cao cho người phụ trách hệ thống.

Nhấn vào nút Install Gitea để hệ thống tiến hành khởi tạo cơ sở dữ liệu và hoàn thiện quá trình cài đặt. Khi thành công, trình duyệt sẽ tự động chuyển hướng bạn tới trang quản lý chính của Git Server.

Quy Trình Sao Lưu Dữ Liệu Và Nâng Cấp Hệ Thống Bền Vững

Xây dựng máy chủ mã nguồn nội bộ đồng nghĩa với việc bạn phải chịu trách nhiệm hoàn toàn về sự an toàn của dữ liệu dự án. Thiết lập chiến lược sao lưu định kỳ và quy trình cập nhật chuẩn chỉ giúp máy chủ luôn trong trạng thái sẵn sàng phục vụ đội ngũ phát triển.

Quy trình sao lưu (Backup) toàn vẹn

Toàn bộ dữ liệu của Gitea cùng cơ sở dữ liệu PostgreSQL đã được gắn vào thư mục cục bộ ~/gitea-server trên máy chủ. Bạn có thể áp dụng phương pháp đóng gói sao lưu dữ liệu máy chủ bằng cách nén toàn bộ thư mục này:

cd ~
tar -czvf gitea-backup-$(date +%F).tar.gz gitea-server

Để tự động hóa hoàn toàn, bạn nên thiết lập tác vụ này chạy định kỳ hằng đêm thông qua tiện ích lập lịch Cronjob trên máy chủ Linux, sau đó sử dụng công cụ như rclone để chuyển tiếp gói tin nén sang các hệ thống lưu trữ ngoài như Google Drive hoặc S3.

Quy trình nâng cấp phiên bản Gitea an toàn

Khi nhà phát triển công bố các bản cập nhật tính năng mới hoặc vá lỗ hổng bảo mật, bạn có thể nâng cấp hệ thống mà không làm mất mát dữ liệu theo các bước:

  1. Chỉnh sửa tệp docker-compose.yml và thay đổi tag phiên bản image (ví dụ cập nhật từ 1.25.3 sang phiên bản mới hơn).
  2. Tải image mới về máy chủ qua lệnh:
    docker compose pull
  3. Khởi động lại các container để áp dụng bản cập nhật:
    docker compose up -d

Docker sẽ tự động cập nhật container dựa trên image mới mà vẫn giữ nguyên vẹn dữ liệu trong các thư mục volume đã được lưu trữ trên ổ đĩa của VPS.

Thông qua bài Hướng dẫn cài Gitea/Git Server trên Ubuntu VPS chi tiết này, bạn đã nắm vững toàn bộ quy trình từ chuẩn bị máy chủ, triển khai container Docker, định tuyến Nginx cho đến tự động hóa sao lưu định kỳ. Việc làm chủ một hệ thống Git Server riêng biệt không chỉ giúp cắt giảm chi phí thuê ngoài mà còn bảo vệ an toàn cho tài sản sở hữu trí tuệ của doanh nghiệp. Hãy bắt đầu chuẩn bị một môi trường máy chủ ổn định để xây dựng kho mã nguồn an toàn cho đội ngũ của mình.

Cần một VPS giá rẻ để bắt đầu?

Chọn cấu hình vừa đủ nhu cầu, ưu tiên chi phí dễ tiếp cận và khả năng quản trị riêng.

Xem bảng giá VPS

Nội dung hướng dẫn trên được biên soạn cho mục đích tham khảo kỹ thuật. Các câu lệnh, quy chuẩn cấu hình và biến môi trường có thể có sự thay đổi tùy theo bản phân phối hệ điều hành, phiên bản phần mềm cũng như môi trường thực tế của bạn. Đội ngũ quản trị nên thực hiện kiểm thử trên môi trường staging, sao lưu toàn bộ dữ liệu dự án trước khi đưa vào ứng dụng cho hệ thống production chính thức.

Chia sẻ: Facebook LinkedIn
Quay lại trang blog

Bài viết liên quan