外观
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:roSSH 端口映射到 2222 是为了避开 NAS 自身的 SSH(22 端口)。克隆仓库时地址要带上这个端口。
首次访问会进入安装向导。安装完成后立刻关闭开放注册,否则任何能访问到的人都能注册账号。
数据与备份
/data 目录包含仓库、数据库、配置和用户数据,全部在这一个目录里,备份相对简单。但注意:
- 默认使用 SQLite 数据库,备份前停止容器更可靠。
- Gitea 自带 dump 命令可以生成完整备份包,比直接复制目录更规范。
仓库本身就是分布式备份
Git 的特性是每个克隆都是完整副本。重要项目在你的电脑上有克隆,等于自动多了一份副本——但这不能替代对 issue、Wiki 和配置的备份。
用它管理容器配置
推荐的做法:把所有 compose 文件放进一个仓库,每次改动都提交。好处很实际——某个服务改坏了,能立刻看到改了什么并回滚;换机器时把仓库克隆下来就能重建全部服务。
注意不要把密码和密钥提交进去。 用环境变量文件(.env)存放敏感信息,并在 .gitignore 中排除它。
已知坑
- 仓库里有大文件时,磁盘占用增长很快,Git 会保留所有历史版本。
- 升级跨大版本前先备份,并阅读版本说明。
- 对外提供服务时前面加 HTTPS 反向代理。