Tất cả hệ thống hoạt động bình thường 21 tiền mã hóa được chấp nhận · Hoan nghênh Monero Chính sách không KYC
ChainVPS

Dev · không KYC

Lưu Trữ Gitea Trên VPS Offshore

Vận hành máy chủ Git nhẹ của riêng bạn trên một VPS no-KYC, thanh toán bằng crypto, và giữ mọi repo, issue cùng pipeline CI tránh xa các dịch vụ cloud của bên thứ ba.

Đó là gì

Gitea là một dịch vụ Git tự triển khai được viết bằng Go — một giải pháp thay thế nhẹ cho GitHub/GitLab, cung cấp repository, pull request, issue, wiki, release và Actions (CI/CD). Gitea được phân phối dưới dạng một binary duy nhất hoặc Docker image với mức sử dụng bộ nhớ nhỏ, rất phù hợp cho các nhóm muốn toàn quyền kiểm soát mã nguồn của mình.

Tại sao nên lưu trữ offshore

Mã nguồn là một trong những dữ liệu nhạy cảm nhất mà một nhóm phát triển nắm giữ; lưu trữ nó trên một VPS offshore, không yêu cầu định danh giúp nó nằm ngoài tầm với của các nền tảng lưu trữ code lớn cùng các chính sách lưu trữ dữ liệu và gỡ bỏ nội dung của họ. Thanh toán bằng crypto không cần KYC nghĩa là hạ tầng dự án của bạn không gắn với một danh tính doanh nghiệp, và băng thông không giới hạn cho phép các thao tác clone, chạy CI và tải release diễn ra mà không lo bất ngờ về đo lường lưu lượng.

Triển khai

Một cấu hình mẫu hoạt động thực tế

Sao chép nội dung này vào một instance ChainVPS mới. Thay thế các placeholder, sau đó khởi chạy.

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    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=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

Tường lửa

Các cổng cần mở

CổngGiao thứcMục đích
3000TCPGiao diện web Gitea và HTTP git — nên đặt sau một reverse proxy TLS (Caddy/Nginx) trong môi trường production
222TCPGit-over-SSH (cổng host được ánh xạ tới container port 22) để clone/push bằng SSH key
443TCPHTTPS thông qua reverse proxy của bạn khi đã có domain và chứng chỉ (cert)
22TCPSSH của host dùng cho quản trị — nên dùng cổng riêng biệt với cổng 222 của Gitea và chỉ cho phép đăng nhập bằng key

Chọn đúng cấu hình

Gói nào bạn cần

Nhẹ

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Dev đơn lẻ hoặc một vài người dùng, vài chục repo, không có CI. Gitea khi rảnh chỉ dùng khoảng 150-200 MB RAM.

Trung bình

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Nhóm nhỏ, nhiều pull request đang hoạt động, cộng thêm một hoặc hai Gitea Actions runner cho CI. Nên thêm một storage volume cho các file release lớn.

Nặng

Dedicated (or Storage VPS for repos)

Nhiều người dùng truy cập đồng thời, monorepo lớn, CI chạy song song nặng, hoặc nhiều media qua LFS. CPU riêng (dedicated) giúp các thao tác clone/pack luôn nhanh nhạy; nên kết hợp với gói Storage cho dữ liệu repo/LFS.

Vị trí tốt nhất: Hãy chọn một vị trí thuộc nhóm bảo mật cao — Thụy Sĩ (CH) và Iceland (IS) mang lại mức độ bảo vệ dữ liệu mạnh nhất cho mã nguồn, cùng với Hà Lan (NL), Romania (RO), Moldova (MD) và Luxembourg (LU) là những lựa chọn offshore thay thế vững chắc. Hãy chọn khu vực gần với các contributor của bạn nhất để giảm độ trễ khi clone/push, vì các round-trip của git khá nhạy cảm với độ trễ.

Khóa chặt bảo mật

Checklist tăng cường bảo mật

  • Không bao giờ để cổng 3000 lộ trực tiếp ra internet — hãy đặt Gitea sau một reverse proxy TLS (Caddy auto-HTTPS hoặc Nginx + certbot) và đặt GITEA__server__ROOT_URL thành domain https để các URL clone chính xác.
  • Đặt DISABLE_REGISTRATION=true (đã có sẵn trong file compose) ngay sau khi tạo tài khoản admin để không ai có thể tự đăng ký; hãy mời người dùng thủ công hoặc qua trang quản trị (admin panel).
  • Giữ git-over-SSH ở cổng 222 và sshd của host trên một cổng khác, cả hai đều chỉ cho phép đăng nhập bằng key (PasswordAuthentication no); Gitea tự quản lý authorized_keys nội bộ, vì vậy đừng tự tay chỉnh sửa file này.
  • Bật 2FA cho mọi tài khoản và bắt buộc áp dụng với admin; chuyển mật khẩu DB ra khỏi biến môi trường sang Docker secret hoặc file .env với quyền 600.
  • Sao lưu ./gitea (repo, config, LFS) và pg_dump của database gitea theo lịch định kỳ, đồng thời ghim image theo một version tag cụ thể (gitea/gitea:1.22) thay vì latest để việc nâng cấp luôn có chủ đích — hãy đọc release notes trước khi nâng cấp các phiên bản major.

Câu hỏi

Hosting Gitea — FAQ

Tôi có thể chạy CI/CD mà không cần một dịch vụ riêng biệt không?

Có. Gitea có sẵn tính năng Actions (tương thích với GitHub Actions). Hãy bật tính năng này, sau đó đăng ký một runner container (gitea/act_runner) với instance của bạn. Với tải CI thực tế, nên dùng gói Trung bình trở lên để việc build không làm ảnh hưởng tới dịch vụ web.

SQLite, MySQL hay PostgreSQL?

SQLite phù hợp cho một người dùng duy nhất với tải nhẹ và không cần container DB riêng. Với bất kỳ nhóm nào hoặc nếu có định hướng phát triển, hãy dùng PostgreSQL như trong file compose — nó xử lý đồng thời (concurrency) tốt hơn nhiều và rất dễ sao lưu bằng pg_dump.

Làm thế nào để di chuyển repo của tôi ra khỏi GitHub/GitLab?

Công cụ migration có sẵn của Gitea nhập một repo theo URL, bao gồm cả issue, PR, release và wiki. Hãy thêm một token cho nền tảng nguồn vào form migration để lấy được các repo riêng tư cùng metadata.

Giải pháp này có xử lý được file lớn (Git LFS) không?

Có, LFS được hỗ trợ sẵn (native) và lưu trữ trong /data. Nếu bạn lưu các file binary hoặc media lớn, hãy đặt ./gitea trên một volume của gói Storage VPS và tính toán dung lượng ổ đĩa phù hợp — dữ liệu LFS tăng lên rất nhanh.

Mã nguồn của tôi có được giữ riêng tư trên một host no-KYC không?

Các repo của bạn nằm hoàn toàn trên ổ đĩa VPS, tại khu vực pháp lý offshore mà bạn đã chọn; không có gì được sao chép sang bên thứ ba. Hãy giữ tính năng đăng ký ở trạng thái tắt, dùng HTTPS + SSH key, bật 2FA, và thực hiện sao lưu mã hóa ra ngoài máy chủ (off-box) để có toàn quyền kiểm soát.

Khởi tạo ngay Gitea
trong 60 giây tới.

Băng thông không giới hạn · Đã bao gồm DDoS · 21 loại tiền điện tử · Không KYC.