Gitea 群晖 Container Manager 部署文档
适用环境:群晖 DSM,Container Manager(Docker)部署,局域网内网Git代码仓库。 Gitea是自托管Git代码托管服务,用于保存代码版本历史,台式机本地多硬盘代码项目,通过Git命令推送备份至NAS。
1. 前置准备
- 在File Station创建项目目录
- 新建目录:
/volumeX/docker/gitea - 自动生成子目录:
data(存放仓库代码、配置、数据库)将
volumeX替换为NAS实际存储卷编号
- 新建目录:
- 目录权限说明
Gitea容器默认使用UID=1000、GID=1000运行。新建文件夹后,在文件夹属性中,给
docker用户组读写权限,避免权限报错。 - 端口规划
- 网页访问端口:
3000 - Git SSH端口:
2222(不与群晖本身22端口冲突)
- 网页访问端口:
2. docker-compose.yml
新建docker-compose.yml文件,完整内容:
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- USER_UID=1000
- USER_GID=1000
volumes:
- ./data:/data
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
networks:
- gitea_net
networks:
gitea_net:
说明:内置SQLite数据库,无需额外Postgres容器,轻量部署,适合个人代码仓库使用。如需大容量多用户场景,可替换为外置Postgres。
3. Container Manager部署操作步骤
- 打开群晖「Container Manager」→「项目」→「创建」
- 项目名称填写:
gitea - 来源选择:上传compose文件,选中上面保存好的
docker-compose.yml - 下一步,确认配置,勾选「自动启动」
- 完成创建,等待镜像拉取并启动容器。
4. 网页初始化配置
- 浏览器局域网访问地址:
http://NAS内网IP:3000 - 首次打开自动进入安装页面,核心配置项:
- 数据库类型:SQLite3(默认,无需修改)
- 站点名称:自定义,例如
NAS代码仓库 - 站点URL:
http://NAS内网IP:3000 - 管理员账号:填写自定义用户名、管理员密码(记录好)
- 拉到页面最底部,点击「立即安装Gitea」
- 安装完成自动跳转登录页面,使用管理员账号密码登录。
5. 台式机本地代码推送(多硬盘项目管理)
原理:台式机本地硬盘为工作区,Gitea(NAS)存放远端版本仓库;一个代码项目对应Gitea一个仓库,多硬盘项目互相独立。
5.1 在Gitea网页新建仓库
- 登录Gitea → 右上角加号 → 新建仓库
- 填写仓库名称,勾选「初始化仓库」,创建。
- 创建完成页面会展示仓库地址,示例:
http://NAS内网IP:3000/你的用户名/项目名.git
5.2 台式电脑Git操作(Windows)
前提:台式机安装Git工具,打开Git Bash,进入本地代码文件夹(D盘/E盘/不同硬盘均可)
# 项目首次初始化(仅第一次执行)
git init
git add .
git commit -m "项目初始提交"
# 关联NAS上Gitea远端仓库,替换为你的仓库地址
git remote add origin http://NAS内网IP:3000/你的用户名/项目名.git
# 推送代码到NAS Gitea
git push -u origin main
5.3 日常代码修改后备份推送
git add .
git commit -m "本次修改备注"
git push
git push:把本地修改快照上传备份到NAS的Gitea远端仓库,保存完整版本历史。git pull:从NAS拉取远端最新代码到本地电脑。
6. 备份与维护
6.1 数据备份
Gitea全部仓库代码、账号配置、数据库保存在挂载目录 /volumeX/docker/gitea/data。
定期备份整个data目录,NAS硬盘损坏时,复制该目录+相同compose配置,即可完整恢复所有代码仓库。
6.2 版本升级
Container Manager项目页面,重新拉取最新镜像,重启项目,自动完成Gitea升级,数据不会丢失。
7. 常见问题排查
- 网页打不开,容器反复重启
- 检查
/volumeX/docker/gitea/data文件夹权限,确保UID=1000用户读写权限。 - 查看容器日志,确认目录权限报错。
- 检查
- 台式机git push推送失败
- 确认台式机可以访问NAS内网3000端口;
- 核对Gitea仓库地址、账号密码。
- SSH克隆仓库
使用SSH地址克隆时,端口使用
2222,示例:git@NAS内网IP:2222:用户名/仓库.git - 忘记管理员密码
进入Gitea容器终端,执行命令重置管理员密码
gitea admin user change-password --username 管理员用户名 --password 新密码
8. 使用说明(重点)
- Gitea不会自动扫描台式机硬盘文件,修改代码后必须手动执行git push,才会备份版本到NAS。
- 项目隔离:台式机不同硬盘、不同文件夹内的代码,在Gitea分别创建独立仓库,不要多个项目放入同一个仓库,避免版本混乱。
- 不建议将虚拟机镜像、压缩包等大二进制文件存入Git仓库,Git适合管理源码文本文件。