所有系统运行正常 21 支持的加密货币 · 欢迎使用 Monero 无需 KYC 政策
ChainVPS

开发 · 无需 KYC

在离岸VPS上部署 Gitea

在无需 KYC 认证、支持加密货币支付的 VPS 上运行属于你自己的轻量级 Git 服务,让每一个仓库、每一个 issue 和每一条 CI 流水线都远离第三方云平台。

这是什么

Gitea 是一款使用 Go 编写的自托管 Git 服务——一个轻量级的 GitHub/GitLab 替代方案,提供仓库、拉取请求(PR)、issue、wiki、发行版(Release)以及 Actions(CI/CD)等功能。它以单个二进制文件或 Docker 镜像的形式发布,内存占用极小,非常适合希望完全掌控自己源代码的团队。

为何选择离岸托管

源代码是团队所持有的最敏感数据之一;将其托管在无实名、离岸的 VPS 上,可以使其脱离各大代码托管平台的数据留存与下架政策的管辖范围。使用加密货币支付且无需 KYC 认证,意味着你项目的基础设施不会与某个企业身份绑定,而不限流量的带宽也让克隆、CI 运行和发行版下载不必担心超额计费的意外。

部署过程

一套可用的参考配置

将其复制到全新的 ChainVPS 实例中。替换占位符后即可启动。

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

防火墙

需开放的端口

端口协议用途
3000TCPGitea 网页界面和 HTTP git——生产环境中应将其置于 TLS 反向代理(Caddy/Nginx)之后
222TCP基于 SSH 的 Git 协议(主机端口映射到容器的 22 端口),用于通过 SSH 密钥进行克隆/推送
443TCP配置好域名和证书后,通过反向代理提供 HTTPS 服务
22TCP用于管理的主机 SSH——应与 Gitea 的 222 端口区分开,且仅允许密钥登录

按需调配规格

您需要哪种套餐

轻量级

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

适合独立开发者或少数用户,几十个仓库,无 CI。Gitea 空闲时内存占用约为 150-200 MB。

中等

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

适合小型团队、活跃的拉取请求(PR),以及一两个用于 CI 的 Gitea Actions runner。如需存放较大的发行版构件,请添加存储卷。

重度

独享服务器(或用于存放仓库的 Storage VPS)

适合大量并发用户、超大规模的 monorepo、高并发 CI,或大量使用 LFS 的媒体文件。独享 CPU 可以保证克隆/打包操作的流畅性;建议搭配 Storage 套餐来存放仓库/LFS 数据。

最佳地区: 选择隐私等级较高的机房位置——瑞士(CH)和冰岛(IS)为源代码提供最强的数据保护态势,荷兰(NL)、罗马尼亚(RO)、摩尔多瓦(MD)和卢森堡(LU)则是可靠的离岸备选方案。请选择离贡献者最近的地区以降低克隆/推送延迟,因为 git 的往返通信对延迟较为敏感。

全面加固安全

安全加固清单

  • 切勿将 3000 端口直接暴露在公网上——请在 Gitea 前面部署 TLS 反向代理(Caddy 自动 HTTPS 或 Nginx + certbot),并将 GITEA__server__ROOT_URL 设置为 https 域名,以确保克隆地址正确。
  • 创建好管理员账户后,立即设置 DISABLE_REGISTRATION=true(该 compose 文件中已包含此设置),防止任何人自行注册;之后可通过手动方式或管理面板邀请用户。
  • 将基于 SSH 的 Git 服务保持在 222 端口,主机自身的 sshd 使用另一个端口,两者都应仅允许密钥登录(PasswordAuthentication no);Gitea 会在内部自行管理 authorized_keys,请勿手动编辑该文件。
  • 为每个账户启用双因素认证(2FA),并强制管理员账户必须启用;将数据库密码从环境变量中移出,改为使用 Docker secret 或权限设置为 600 的 .env 文件保存。
  • 定期备份 ./gitea 目录(仓库、配置、LFS)以及 gitea 数据库的 pg_dump 导出文件,并将镜像固定在具体的版本标签(如 gitea/gitea:1.22)而非 latest,以便有计划地进行升级——在升级主版本之前请务必阅读发行说明。

问题

主机服务 Gitea — 常见问题

我可以在不使用额外服务的情况下运行 CI/CD 吗?

可以。Gitea 内置了 Actions 功能(与 GitHub Actions 兼容)。启用该功能后,注册一个 runner 容器(gitea/act_runner)连接到你的实例即可。若有实际的 CI 负载,建议使用中等或更高配置的套餐,以免构建任务挤占 Web 服务的资源。

应该选择 SQLite、MySQL 还是 PostgreSQL?

对于单个轻度用户,SQLite 完全够用,而且无需额外的数据库容器。若面向团队使用或有增长需求,请按照 compose 文件中的配置使用 PostgreSQL——它在并发处理方面表现更好,并且可以很方便地使用 pg_dump 进行备份。

如何将我的仓库从 GitHub/GitLab 迁移过来?

Gitea 内置的迁移工具可以通过 URL 导入仓库,包括 issue、PR、发行版和 wiki。在迁移表单中添加源平台的访问令牌,即可拉取私有仓库及其元数据。

这套方案能处理大文件(Git LFS)吗?

可以,LFS 是原生支持的,数据存储在 /data 目录下。如果你需要托管大型二进制文件或媒体资源,请将 ./gitea 放在 Storage VPS 的存储卷上,并预留足够的磁盘空间——LFS 对象的体积增长很快。

在无需 KYC 认证的主机上,我的代码能保持私密吗?

你的仓库完全存储在你所选择的离岸司法辖区内的 VPS 磁盘上,不会被镜像到任何第三方。请保持注册功能关闭,使用 HTTPS + SSH 密钥,启用双因素认证(2FA),并进行加密的异地备份,以确保完全掌控。

立即创建 Gitea
在接下来的 60 秒内。

不限流量带宽 · 包含 DDoS 防护 · 21 种加密货币 · 无需 KYC。