对于个人开发者和小型团队来说,在NAS上自建代码托管服务是提升开发效率的重要手段。Gitea作为一款轻量级、高性能的Git托管工具,资源占用极低,即使是在低功耗NAS上也能流畅运行。本文将详细介绍如何在NAS上部署Gitea,并配置完整的CI/CD流水线。

一、Gitea在NAS上的Docker部署与初始配置
Gitea的Docker部署极为简便,一个docker-compose.yml文件即可搞定所有配置。标准的Gitea部署包含两个服务:Gitea主容器和PostgreSQL(或MySQL/MariaDB)数据库容器。Gitea官方推荐使用PostgreSQL,因为其对Git操作中的事务处理有更好的性能表现。
Compose文件中,Gitea容器暴露两个端口:22端口用于SSH协议的Git操作,3000端口用于HTTP/HTTPS的Web管理界面。持久化配置方面,将/data目录映射到NAS存储上,这个目录包含了Gitea的配置文件、仓库存储、数据库和日志等所有数据。建议创建一个专用于代码托管的共享文件夹(如/volume1/gitea_data),分配独立的存储配额。
部署完成后,通过http://NAS_IP:3000访问Gitea的首次运行配置页面。填写站点标题、服务器域名和SSH服务域名后,进入管理员账号创建界面。建议创建一个独立的管理员账号(如admin),而不是使用默认的root,以提高安全性。
二、Gitea的团队协作与项目管理实战
Gitea的功能远不止代码托管,它还集成了完整的项目管理工具。创建新仓库时,Gitea支持从GitHub、GitLab、Bitbucket等主流平台导入现有仓库,也可以选择仓库模板快速初始化。每个仓库都自带Issues问题跟踪、Pull Request代码审查、Wiki文档、发布管理和项目看板等功能模块。
团队协作方面,Gitea支持组织(Organization)管理。创建一个组织后,可以在其中建立多个团队,并为每个团队设置不同的仓库权限。权限分为:读取(只能查看和克隆仓库)、写入(可以推送代码)、管理员(完全控制仓库)和所有者(管理组织和团队本身)。这种细粒度的权限控制非常适合小型开发团队,让不同角色的成员各司其职。
Gitea的Pull Request工作流是提升代码质量的关键。当开发者提交PR后,团队成员可以在线审查代码变更,逐行添加评论和建议。PR要求至少一个批准后才能合并,这强制执行了代码审查制度。Gitea还支持在PR中运行自动化检查,通过Webhook触发外部CI系统执行构建和测试,检查结果直接显示在PR页面上。
三、GitHub Actions兼容的CI/CD流水线配置
Gitea 1.20版本引入了Gitea Actions功能,它兼容GitHub Actions的语法和工作流定义格式。这意味着你可以直接复用GitHub上大量的Actions工作流模板,而无需学习新的DSL语言。
启用Gitea Actions需要在服务器端配置Act Runner。Act Runner是Gitea的CI/CD执行器,它可以注册到Gitea实例上并监听工作流事件。Act Runner支持Docker模式,每个CI任务都在独立的Docker容器中运行,保证环境隔离和可重复性。
一个简单的Gitea Actions工作流示例:当开发者推送代码到main分支时,自动触发构建和测试。在仓库根目录创建.gitea/workflows/build.yml文件,定义触发器、环境变量和作业步骤。作业可以在Ubuntu、Windows或自定义的Docker容器中运行,每个步骤执行一个Shell命令或Action。
对于前端项目,典型的工作流包括:安装依赖(npm ci)、运行代码格式化检查(npm run lint)、执行单元测试(npm test)、构建生产版本(npm run build)。对于后端项目,还需要包括编译、运行集成测试和构建Docker镜像的步骤。


评论(0)