它来自于同样开源的gogs,是其一个分支,由于社区的开发贡献者与原gogs的开发者产生了意见上的分歧,社区开发者fork了gogs并不断迭代完善至今,其间还有很多有意思的事情,详情可以看这篇wolfogre.
为什么会有 Gitea
克隆一个现有的项目,然后改头换面、自立门户、重新发行,这在开源的世界上不算什么新鲜事。但这种情况的发生往往事出有因,比如原项目不维护了,原项目拒绝实现某些新特性,新项目针对特定用户群做了优化,等等等等。
但 Gogs 仍在维护,Gitea 也没有实现什么新功能,针对的用户群也是一模一样的,那为什么还会有 Gitea 呢?Gitea 的官方博客里给出了解释,翻译成中文如下:
Gitea 是一个开源社区驱动的 Gogs 克隆,后者是一个备受欢迎的 Git 自托管服务。我们是一个日益增长的群体——之前是 Gogs 的用户和贡献者,但发现了 Gogs 令人沮丧的“单一维护者”管理模式,所以决定作出努力,建立一个更加开放、更加高效的管理模式。
在此之前,我们尝试说服 Unknown 给社区中更多的人“写权限”。他理所当然地认为 Gogs 是自己的生物,不希望它在自己掌控之外生长。所以为了有效地让代码走向自由,重新克隆一份是必须的。
gogs是一个国人的产品,不得不说,确实是很优秀的个人作品,不过相对而言,我更喜欢gitea的UI风格和界面,具体的差异我暂时也还没有感受出来。
下面是Gitea的安装与使用
首先是要有一台可用的服务器。
这边我用的是宝塔面板,所以创建网站会比较轻松。用宝塔面板创建一个网站
然后用Xshell或其他类似软件链接服务器,并cd
定位到所要安装的文件夹。
这边我采用的是Binary Install,二进制安装。输入以下代码:
wget -O gitea https://dl.gitea.io/gitea/1.10.1/gitea-1.10.1-linux-amd64
chmod +x gitea
很快就会完成安装包的下载。
然后可以启动服务,测试站点的使用情况。使用以下命令:
./gitea web
然后就可以启动了。当然,你也可以在自己本地的Linux机器上安装。
当你选择在云服务器安装时,记得在阿里云/腾讯云上打开防火墙的3000端口,还有宝塔面板的3000端口。
当然你不会希望Gitea永远使用IP来访问,那么你就需要一个域名。解析过程不再赘述。直接修改ngnix的配置文件。
server
{
listen 80;
listen 443 ssl http2;
server_name yourdomain.com;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#如果你不需要https那么删除下面这一部分就可以了(删到SSL-END)
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate ;#--这里填你的ssl证书地址
ssl_certificate_key ;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#SSL-END
#重定向到Gitea
client_max_body_size 20m;
location / {
#默认的端口是3000
proxy_pass http://localhost:3000;
}
}
然后记得在gitea安装时配置好URL即可。
比如SSH地址如果你不更改那么就会默认为LocalHost,不太雅观,记得修改
还有就是如果你使用root用户启动的Gitea,那么ssh的默认前缀就会是root,例如这样:
[email protected]:tanknee/Xxxxx.git
十分的不友好,所以我建议新建一个git用户,然后再切换到git用户启动Gitea安装,就可以达到这种效果了:
[email protected]:tanknee/Xxxxx.git
useradd git
su -l git //切换用户
一种做法是将Gitea作为系统服务,开机自启动,另一种做法是用nohup,挂在后台。效果一致,但我觉得第一种相对会好一点。
nohup ./gitea web &
其中 &代表一直挂在后台。
从gitlab转投到gitea之后服务器的负载小了很多,效果明显。
还是很好的一款开源代码托管平台。