跳转到内容

Gitea:自建 Git 仓库

一个轻量的代码托管服务,界面和功能接近常见的公开平台。除了放代码,它也很适合管理你的 compose 文件、配置和笔记——任何值得记录变更历史的东西。

适合谁

  • 有不想放到公开平台的私有项目。
  • 想给 NAS 上的所有容器配置做版本管理。

部署

yaml
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
    ports:
      - "3000:3000"
      - "2222:22"
    volumes:
      - /vol1/docker/gitea/data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

SSH 端口映射到 2222 是为了避开 NAS 自身的 SSH(22 端口)。克隆仓库时地址要带上这个端口。

首次访问会进入安装向导。安装完成后立刻关闭开放注册,否则任何能访问到的人都能注册账号。

数据与备份

/data 目录包含仓库、数据库、配置和用户数据,全部在这一个目录里,备份相对简单。但注意:

  • 默认使用 SQLite 数据库,备份前停止容器更可靠。
  • Gitea 自带 dump 命令可以生成完整备份包,比直接复制目录更规范。

仓库本身就是分布式备份

Git 的特性是每个克隆都是完整副本。重要项目在你的电脑上有克隆,等于自动多了一份副本——但这不能替代对 issue、Wiki 和配置的备份。

用它管理容器配置

推荐的做法:把所有 compose 文件放进一个仓库,每次改动都提交。好处很实际——某个服务改坏了,能立刻看到改了什么并回滚;换机器时把仓库克隆下来就能重建全部服务。

注意不要把密码和密钥提交进去。 用环境变量文件(.env)存放敏感信息,并在 .gitignore 中排除它。

已知坑

  • 仓库里有大文件时,磁盘占用增长很快,Git 会保留所有历史版本。
  • 升级跨大版本前先备份,并阅读版本说明。
  • 对外提供服务时前面加 HTTPS 反向代理。

参考资料

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。