不知道大家平时源代码是放哪里的,我了解的是一般用户放到github,国内好多用户选择coding和码云,但是github本来就慢,尤其是被微软收购了以后就更慢了,而且私有仓库收费有点贵。国内常用的就是coding 和码云,coding还可以,码云私有项目开发人员不能超过5个这个限制也很恶心,也收费,交那个会员费,都可以自己买服务器搭建一个私有的git服务器了。
首选方案就是私有化本地搭建一个gitlab服务,但是说实话,这个适合大型团队,个人开发者不适合用,理由是:难安装,依赖太多,如果用的话,建议用docker运行,非常省事。但是gitlab真的是太重了,要求服务器要有4G内存,服务器的成本是硬伤。
Gogs 和 Gitea,gitea 是gogs的一个分支衍生出来的,并且是gitea是由社区驱动开发的,所以更新比较频繁,当然gitea和gogs都是开源的,个人推荐使用gitea。
Gitea介绍
Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。
功能特性
支持活动时间线
支持 SSH 以及 HTTP/HTTPS 协议
支持 SMTP、LDAP 和反向代理的用户认证
支持反向代理子路径
支持用户、组织和仓库管理系统
支持添加和删除仓库协作者
支持仓库和组织级别 Web 钩子(包括 Slack 集成)
支持仓库 Git 钩子和部署密钥
支持仓库工单(Issue)、合并请求(Pull Request)以及 Wiki
支持迁移和镜像仓库以及它的 Wiki
支持在线编辑仓库文件和 Wiki
支持自定义源的 Gravatar 和 Federated Avatar
支持邮件服务
支持后台管理面板
支持 MySQL、PostgreSQL、SQLite3, MSSQL 和 TiDB(实验性支持) 数据库
支持多语言本地化(21 种语言)
系统要求
最低的系统硬件要求为一个廉价的树莓派
如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
可以看出性价比极高,适合个人和小团队使用,而且有中文文档。
搭建gitea服务
个人推荐使用docker运行,理由是安装省事方便,不影响宿主机。
新建gitea-dcoker.yml,利用docker-compose启动.
version: "3"
services:
server:
container_name: gitea
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- /opt/gitea/data:/data
ports:
- "3000:3000"
- "22:22"
这里一定要注意,如果你的ssh端口没有改过的话。默认是22,这样会有冲突,我是把sshd的端口修改成26了,所以这块才能用22。
然后运行命令,启动gitea服务
docker-compose -f gitea-docker.yml up -d
配置NGINX(没有域名的掉过这一步)
如果你配置域名了的话,可以用nginx代理一下,反向代理到3000端口。我这里是默认使用转到443端口,强制使用https,https的证书可以阿里云申请一个免费的。
server {
listen 80;
server_name gitea.aiprose.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
这里要注意,如果你要通过http提交数据比较大的时候,这种配置是提交不上去的,需要配置请求参数最大,或者通过ssh提交
配置Gitea
如果配置了域名的话,直接打开域名就可以访问了,没有域名的话,浏览器访问 ip:3000就可以了,看到如下的界面就表示你已经成功了。
点击登录或者注册,或让你初始化设置,这里数据库可以选择,我选择的是mysql,如果你的电脑内存不足运行不起来,可以试试sqlite。如果使用docker的话注意数据库的ip设置。
如果你配置了域名,就看着这个,结合自己的实际情况填写,没有域名的直接填写ip+端口,也可以。
如果这里选择设置管理员账户的话,会新建一个管理员,如果这里没有新建,那么你第一个注册的用户就是管理员,因为admin保留,用户名不能使用admin。
如果后面还想改配置,因为我挂载了卷,所以直接去修改,然后重启一下就修改过来了。
验证码也是在配置里设置开启的。
主题颜色可以在个人信息里修改。
如果之前用的其他的仓库,这里可以直接把原来仓库的代码直接迁移过来。
这是最后的页面,是不看起来高大尚,因为是用GO写的,所以很省内存,运行速度也很快,如果你是在内网的话,快的飞起,我这里是6MB的带宽,所以很飞快,当然你们也可以把代码放到我的这个仓库里,可以自由的创建组织。
组织下面可以创建团队,可以用项目区分或者前后端技术区分
这是我们公司现在使用的一个内网的仓库,是按照项目划分团队的。