自建Git服务器

news2024/12/25 2:22:41

Gitea - Git with a cup of tea是一个国外团队基于国内一位大牛写的gogs开源项目(Go语言开发)二次开发的轻量Git社区,其稳定性非常好,而且是非常轻量级在个人亲测在1核1G的centos7主机上1个月不重启依然稳定运行,引用gogs官网的说法:”一个廉价的树莓派的配置足以满足 Gogs 的最低系统硬件要求。有些用户甚至还将 Gogs 运行在 NAS 设备上“。而且它支持几十个国家语言,横跨linux和windows等多平台,支持自定义界面皮肤模板。文档全面完美支持简体中文。但是新手安装可能会比较折腾所以花了几天时间针对宝塔面板写了这个第三方插件。

应用名称:GiteaForBt

价格:免费试用

作者:偻儸小卒 [爱折腾的小码农]

功能介绍:Gitea是一款支持多国语言的轻量级开源Git社区,内存需求512M以上均可完美运行

支持版本:Centos7 (64位系统),Ubuntu 16.04 (64位系统)[18.04未测] [32位也是支持的由于市面上基本都是64位系统了所以也没做过多测试]

安装方法:升级到最新的内测版本。在第三方插件里安装

使用教程:1.更新到最新测试版宝塔,选择第三方插件找到GiteaForBt点击购买安装.

作为可以自己部署的 Git 托管服务器方案,Gitea 与 GitLab 有很多相似之处:有着和 GitHub 相似的仓库界面,一样有着基本的 Git Server 功能,一样同时支持 http(s) 与 ssh,一样支持 Issue 和 Pull requests……

Gitea 是完全开源免费的项目,而 GitLab 有着开源并免费的版本 GitLab CE,也有付费并有闭源功能的 GitLab EE。它们也都提供了由各自的官方托管版网站,你可以前往 gitea.com 与 gitlab.com 体验它们的用法。

这些最基础的东西双方都很相似,只看双方提供的功能对比表很难感受出它们有多大差别,但在实际部署它们后,你可以很直观地感受到它们骨子里就是不同的,它们之间的区别就和 com.sun.net.httpserver 和 Spring 全家桶一样,是单一功能的库与一个生态的区别。

Gitea 是一个功能较为单一的 Git 托管服务器,所有功能都围绕着 Git 托管而来,而且给出了较高的可定制性。在部署 Gitea 的时候,我很明确自己的目的是实现 Git 托管功能,部署后我再根据自己的需求去组合其他工具来满足我的工作流。

GitLab 则是一个大而全的解决方案整合,将 Git 托管、持续集成/部署等功能做在了一起,试图解决你的所有需求。在我部署它之后,我需要探索它的功能,学习它的工作流,适应它来完成我的工作。

资源占用

作为 Git 托管服务器使用时,Gitea 资源占用明显要低得多。

静态硬盘占用上,Gitea 核心是一个 100 MiB 上下的可执行文件,外加上作为必要依赖的 Git(如果内置 SQLite 不够的话也需要单独部署一个 MySQL 或者 PostgreSQL 做数据库),而 GitLab 光 Docker image 大小就 GiB 级了……不用我多说,截一下 GitLab 的日志文件夹就知道这玩意有多重量级了:

$ ls ./gitlab/logs
alertmanager     gitlab-kas    gitlab-workhorse  nginx              prometheus   redis           sshd
gitaly           gitlab-rails  grafana           postgres-exporter  puma         redis-exporter
gitlab-exporter  gitlab-shell  logrotate         postgresql         reconfigure  sidekiq

我断断续续跑了两天,这日志就快 200MiB 了……

内存方面,我这里 Gitea 日常占用内存通常在几百 MiB 浮动,而 GitLab 的 Docker 容器目前内存占用是 14GiB。

GitLab CPU 占用率(相对于一个核心计算)日常待机在 35% 上下,而 Gitea 通常是 0.2% 左右。(这些都是日常无负载状态下的情况,如果有机会的话我试试进一步比较,现在正在停用 GItea,懒得折腾了。)

网站配置

Gitea 大部分配置都要通过修改 app.ini 并重启 Gitea 服务器来应用,后台管理面板基本没有可修改的配置,不能进行配置热修改。

GitLab 部分网络相关的配置(域名,端口,代理,邮箱等)需要修改 gitlab.rb 并重启 GitLab,剩下的大多选项都是在管理员面板里通过 Web UI 进行热修改并及时生效。

对于要稳定运行的 Git 托管服务器来说,Gitea 每次修改配置后想要生效都要离线一段时间,好在 Gitea 启动很快,我这里从启动到能正常访问大概只要 10 秒钟(数据库跑在另一个容器里,没有计算它的启动时间),而 GitLab 启动一次要一分多钟,但由于 GitLab 大部分配置都是热修改,除了最开始部署时需要修改配置,运行中基本没有重启的需求。

想要自定义页面布局在 GitLab 上非常困难,除了首页内容可以通过管理面板修改外,剩下的地方似乎都无法用常规手段修改。Gitea 放开了很多 tmpl 文件可配置,我想要给站点每个页面底部添加一条链接,自己提供一个 extra_links_footer.tmpl 就能完成,但在 GitLab 我是没有找到什么好办法去实现。(似乎能改 /var/opt/gitlab 里的东西来修改布局,但我改了这个文件夹里的一些配置后再重启后,我修改的地方都被还原了,有空再做进一步的探索。)

另外有一点就是,Gitea 内几乎所有链接都在使用基于 ROOT_URL 的绝对链接,所以基本绑死在这个 ROOT_URL 上,配置好后基本没办法用多个域名访问同一个 Gitea。准备使用内网穿透的用户要注意一下这个问题,很多内网穿透服务分配给用户的都是非标准端口,如果想在内外网都能良好访问自己的 Gitea 服务器,最好让 Gitea 内网的端口与公网端口一致,不然很多麻烦事情。

GitLab 会检测你用来访问 GitHub 所用的域名,而且很多地方都会根据这个更改显示,不会因为用不同于 external_url 的地址访问而出现问题,这方面问题会比 Gitea 少很多。 (注意一下,如果你在 external_url 中写了带端口号的地址,GitLab 的侦听端口也会跟着变更。不想改侦听端口的话记着覆盖 nginx['listen_port'] 设置)

隐私保护

隐私保护方面我觉得是 Gitea 最值得诟病的问题,也是我转而投向 GitLab 的主因。

Gitea 的一些功能需要 GitHub TOKEN 实现(譬如从 GitHub 导入私有项目等),GitHub TOKEN 作为用户隐私,本身应该受到良好保护,但我在实际使用过程中发现,目前版本(v1.16.4)的 Gitea 有严重的安全问题:

当用户正在进行使用 GitHub TOKEN 访问 GitHub 仓库的任务时,包含了 GitHub TOKEN 的 URL 直接明文出现在管理后台中,管理员可以轻松的从后台看到这些隐私信息:

这应该开发者考虑不周造成的问题,相对而言能明显感受到 GitLab 要更关心用户的隐私保护问题,涉及到隐私信息时都高度敏感,在不修改服务器本身的情况下,管理员也无法触及它们。(当然在管理员能接触到 GitLab 服务器的情况下,依然可以通过篡改服务器来窃取用户隐私,所以对第三方托管的服务器并不能无保留的信任。)

https://cloud.tencent.com/developer/article/1982626

https://zhuanlan.zhihu.com/p/486410391

https://www.pianshen.com/article/25531478511/

https://www.daniao.org/8383.html

https://xeylon.com/docker/438.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt怎么去玩?解析各种用途和强大的功能

关于chatgpt怎么玩?他的一些原理以及玩法,相信大家都是挺好奇的吧,毕竟这个新的人工智能和以往我们玩过的,是完全不一样的,它具备更多的可玩性,而且具备有一定的学习能力,这就造就了它的强大&am…

记一次IDE的Docker插件实战(Dockfile篇)

IDEA下使用Docker插件制作镜像、推送及运行 前言 本部分主要根据IDEA的Docker插件实战(Dockerfile篇)_程序员欣宸的博客-CSDN博客_idea编写dockerfile一文所述内容进行实践,并对其中遇到的问题进行解答,从而串接多个知识点。 如何编写Dockfile 在Int…

【elasticsearch】elasticsearch es读写原理

一、前言: 今天来学习下 es 的写入原理。 Elasticsearch底层使用Lucene来实现doc的读写操作: Luence 存在的问题: 没有并发设计 lucene只是一个搜索引擎库,并没有涉及到分布式相关的设计,因此要想使用Lucene来处理海量…

「可信计算」与软件行为学

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alli…

亮个相吧小宝贝儿,五款压箱底的软件

今天要给大家推荐5款压箱底的宝贝软件了,百度搜索一下就能找到下载链接了。 1.开源浏览器——Firefox Firefox是一个自由的,开放源码的浏览器,适用于 Windows, Linux 和 MacOS X平台,Mozilla Firefox官方版体积小速度快&#xf…

【项目】Vue3+TS CMS 登录模块搭建

💭💭 ✨:Vue3 TS   💟:东非不开森的主页   💜: keep going💜💜   🌸: 如有错误或不足之处,希望可以指正,非常感谢😉   Vue3TS一、…

微服务面试题:熔断和降级有什么区别?

文章目录引言1.概念不同1.1 熔断概念1.2 降级概念2.熔断器模型3.种状态之间的转换关系4.熔断策略5.熔断和降级的关系6.降级方式6.1、熔断降级(不可用)6.2、超时降级6.3、限流降级7.题外话8.总结引言 熔断和降级都是系统自我保护的一种机制,但…

进阶C语言 第四章-------《自定义类型》 (结构体、枚举、联合)知识点+完整思维导图+深入细节+通俗易懂+基本练习题+建议收藏

绪论 书接上回,通过上章的一些函数,我们可以让我们对于一些数值的调整有很大的帮助,本章自定义类型在C语言中同样也有着非常重要的地位,相信只要认真的阅读了本章,一定会对你有很大的帮助。 所以安全带系好&#xff0c…

使用Cmake从源码编译Lua

前置要求:电脑已经设置好了Cmake能够使用 首先下载Lua源码,文件后缀是tar.gz 各版本可以从这里找到:Lua - Version history 解压下载文件至所需目录,文件内容如下图: 解压即可。 在解压的文件夹(本例是lua…

使用PyTorch-LSTM进行单变量时间序列预测的示例教程

时间序列是指在一段时间内发生的任何可量化的度量或事件。尽管这听起来微不足道,但几乎任何东西都可以被认为是时间序列。一个月里你每小时的平均心率,一年里一只股票的日收盘价,一年里某个城市每周发生的交通事故数。在任何一段时间段内记录…

Python控制本地浏览器并获取网页数据

1、前言 在自动化办公中,我们经常需要利用爬虫技能去批量获取网页的数据,但是有时候我们在利用爬虫的时候,会遇到一个问题,就是登录的时候要携带参数,不如账号、密码、其他的加密信息 就好比我现在公司,好…

JSP 质量管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

一、源码特点 JSP 质量管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为SQLServer2008&#xff0c…

狂飙Linux平台,软件部署大全

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

图形的面积与周长计算程序-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

【案例4-7】图形的面积与周长计算程序 欢迎点赞关注收藏 【案例介绍】 案例描述 长方形和圆形都属于几何图形,都有周长和面积,并且它们都有自己的周长和面积计算公式。使用抽象类的知识设计一个程序,可以计算不同图形的面积和周长。 运行…

Redis服务器配置

服务器基础配置服务器端设定 设置服务器以守护进程的方式运行daemonize yes|no 绑定主机地址bind 127.0.0.1 设置服务器端口号port 6379 设置数据库数量databases 16日志配置 设置服务器以指定日志记录级别loglevel debug|verbose|notice|warning开发期 debug 线上no…

【蓝桥杯PythonB组备赛】【Acwing周赛】第91场非常详细的过程思路分析理解分享Python解

好难哈哈哈我依旧只做对了第一题,第二题在比赛结束后才做出来…… 不过没关系每天努力一点啦~ 分享一下个人做的解析,供大家参考,一起努力哇! 目录 A AcWing 4861. 构造数列 1.题目描述 2.思路分析 3.代码实现 B Ac…

从每刻到金蝶云星空通过接口配置打通数据

对接源平台:每刻刻报销是每刻科技旗下的产品,是国内领先的企业差旅及费用管理云平台,为事前差旅预订,事后报销的全流程费用管控服务。每刻报销融合人工智能云计算、移动互联网大数据等先进技术,融合财务共享和信用管理的理念&…

SPDK应用框架

SPDK应用框架SPDK应用框架1)对CPU core和线程的管理2)线程间的高效通信3)I/O的处理模型及数据路径的无锁化机制SPDK用户态块设备层1.内核通用块层2.SPDK用户态通用块层SPDK架构解析3.通用块层的管理4.逻辑卷1)内核LVM2&#xff09…

企业级信息系统开发学习笔记1.2 初探Spring——利用组件注解符精简Spring配置文件

文章目录零、本讲学习目标一、课程引入二、打开项目【SpringDemo2021】三、利用组件注解符精简Spring配置文件1、创建net.hw.spring.lesson02包2、将lesson01子包的四个类拷贝到lesson02子包3、修改杀龙任务类 - SlayDragonQuest4、修改救美任务类 - RescueDamselQuest5、修改勇…

2022爱分析·事务型关系数据库市场厂商评估报告:万里数据库

目录 1. 研究范围定义 2. 事务型关系数据库市场定义 3. 厂商评估:万里数据库 4. 入选证书 1. 研究范围定义 在国内数字化转型以及信创建设持续推进的大背景下,众多厂商入局国内数据库市场,为企业提供了面向多种应用场景的数据库&am…