GitHub固然强大,但对于企业内网、家庭实验室或有隐私需求的开发者来说,自建Git代码托管平台更加安全可控。Gitea是目前最受欢迎的轻量级自托管Git平台,单个Go二进制文件即可运行,资源占用极低。本文将详细介绍2026年在家庭服务器或VPS上部署Gitea的完整流程。

一、Gitea的优势与选型对比

在自托管Git平台领域,主要有GitLab、Gitea、Forgejo、Gogs等选择。对于个人和小团队而言,Gitea是最佳的平衡点:

资源占用极低:Gitea空载状态下内存占用约50-80MB,即便是最低配的VPS(1核512MB)也能流畅运行。GitLab则至少需要4GB内存。

功能完整:Gitea支持Issue跟踪、Wiki、CI/CD(通过Gitea Actions,兼容GitHub Actions语法)、代码审查、Release管理、组织和团队权限等企业级功能。

部署简单:单个二进制文件或一条Docker命令即可启动,无复杂依赖。

需要注意的是,Forgejo是Gitea的一个社区分支,在治理和功能方面有所不同。2024年后两个项目的功能差异逐渐扩大,Forgejo的联合宇宙(Federation)功能更加完善,如需ActivityPub支持可考虑Forgejo。

二、Docker Compose一键部署Gitea

推荐使用Docker Compose部署,便于管理和升级。创建docker-compose.yml文件:

version: "3"
networks:
  gitea:
    external: false
services:
  server:
    image: gitea/gitea:latest
    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=gitea_password
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea-data:/data
      - /etc/timezone:/etc/timezone:ro
    ports:
      - "3000:3000"
      - "222:22"
  db:
    image: postgres:16
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea_password
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres-data:/var/lib/postgresql/data

执行docker compose up -d后,访问http://服务器IP:3000完成初始化向导即可。

三、进阶配置:Nginx反代与Gitea Actions

为了让Gitea通过域名访问并开启HTTPS,需要配置Nginx反向代理。在/etc/nginx/conf.d/gitea.conf中添加:

server {
  listen 443 ssl;
  server_name git.yourdomain.com;
  ssl_certificate /etc/letsencrypt/live/git.yourdomain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/git.yourdomain.com/privkey.pem;
  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
  }
}

Gitea Actions是Gitea内置的CI/CD系统,配置文件格式与GitHub Actions完全兼容,可将大量现有的GitHub Actions工作流直接迁移到自建平台。只需在仓库中创建.gitea/workflows/ci.yml文件,并部署一个act_runner即可启用自动化流水线。

对于希望脱离云端平台控制、保护代码资产安全的开发者来说,Gitea是目前最成熟、最易维护的自托管选择。结合定期备份(gitea dump命令)和异地同步,可以构建一套可靠的私有代码管理体系。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。