使用Gogs搭建自己的Git服务
发布于 3 年前 作者 blackmatch 3206 次浏览 来自 分享

什么是Gogs

Gogs是一款极易搭建的自助Git服务。作为程序员,可能对Github已经非常熟悉了,我们经常会把自己的代码提交到Github。非付费用户在Github的代码是公开的,任何人都可以看到你提交的代码。有时候我们不想让别人看到自己提交的代码,或者只是想让我们授权的人访问自己的代码,通常会有一下几种方式:

  • 成为付费用户(不限平台),创建私有仓库。
  • 选择拥有一定数量免费私有仓库的平台,比如:Bitbucket等。
  • 自己搭建完全免费的Git服务,比如:Gitlab等。

Gogs属于最后一种方式,这是一个开源项目,核心代码使用Go语言编写,UI使用的是Semantic-UI。<span data-type=“color” style=“color:rgba(0, 0, 0, 0.87)”><span data-type=“background” style=“background-color:rgb(255, 255, 255)”>Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。Go目前支持29种语言,简体中文是必须的。</span></span>

Gogs的使用场景

Gogs适合中小团队使用,工作流和大部分的Git服务类似,可以创建组织、仓库和工单(issue),也可以把其他平台的仓库迁移过来。总的来说,Gog能满足中小团队大部分的Git工作流需求。

为什么推荐Gogs

其实现在已经有很多类似的产品了,而且也都是免费的,有些甚至不用自己搭建,打开网页就能用,比如:Gitlab、码云等。我推荐Gogs只要是因为:

  • 完全开源,遵循MIT协议。
  • 核心代码使用Go语言编写(个人喜好)。
  • 官方完美支持中文。
  • 极易搭建。
  • 极简风格。

如何搭建

官方提供了5种搭建方式,分别是:

  • 二进制安装
  • 源码安装
  • 包管理安装
  • 采用Docker部署
  • 通过Vagrant安装

Gogs需要将一部分数据保存到数据库中,所以需要数据库支持,可以使用以下几种数据库:

  • MySQL:版本 >= 5.7
  • PostgreSQL
  • MSSQL
  • TiDB(实验性支持,使用 MySQL 协议连接)
  • 或者 什么都不安装 直接使用 SQLite3

根据官方文档的安装步骤一步一步搭建即可。但是,偷懒是程序员的必备技能之一啊!其实,搭建就分两部分:Gogs主程序和数据库。Gogs主程序官方提供了Docker镜像,数据库也能找到对应的Docker镜像,于是自然而然就能想到Docker三剑客之一的Docker Compose。大家可以使用我写的一个docker-compose.yml文件(数据库使用的是MySQL),地址是:https://github.com/blackmatch/gogs-docker-compose,几分钟就能轻松搭建好。

一些截图

从官网搬来几张截图供大家欣赏:

image.png | left | 747x561

image.png | left | 747x561

image.png | left | 747x560

更多信息

官网:https://gogs.io/ 官方体验网站:https://try.gogs.io/

19 回复

Gogs 太垃圾了,唯一的优势就是国人开发的,对小白用户友好写。

对于几十G的仓库超级慢,而且不稳定。用了一个月,最终还是换到了 gitlab。

@justjavac 多谢大佬提醒,我也是刚开始搭建来玩几天,感觉还不错。看来还是gitlab大法好。

@justjavac 占用内存低这个不是优势么?毕竟不是所有人都能随便就有一台4G起步的机器😂 From Noder

gitlab大法好, 朋友用过gogs, 不行的.

@lizheming 20块钱的饭和2毛钱的屎,你吃哪个

@justjavac 你这比喻。。。。20块钱的就是饭,2毛钱的就叫屎了么?我表示呵呵。。。。gogs 我已经用了一年多了,运行良好,日常我的操作都能满足,webhook爽的不要不要的。gogs 不能说好,和 Gitlab 在功能上是没法比,但是也没你说的那么差,有对应的需求市场。就和我当然知道宝马车更好,但是我穷我真的买不起一样的,我肯定是挑我能承担得起的东西买。

完全没有兴趣啊

@lizheming 你应该不缺这点小钱吧 (手动狗头。。。

gogs 用了一个多月,给我的感觉就是一坨屎

@justjavac 比起 jjc 大佬来说,我是真穷[哭]~

nodejs社区,go也入驻了😂

@tomoya92 一个工具而已。

@lizheming

喷子总是无处不在的,不讲需求,不讲条件,就把别人的工作定义成了屎,gogs再不完善,也是作者辛苦开发出来贡献给社区的,有些人觉得不完善可以改进意见。gitlab就一点毛病都没有?700多M的东西和一个十几M的东西比肯定更完善,但同时也是更复杂,又有多少人动不动就要碰到几十G的仓库?

个人用户,小团队够用了。

@justjavac 主要存在哪些问题?

@tomoya92 go 入驻 node 社区,正说明了 node 社区的开放。我曾经在 go 的群里面提了一句 nodejs,结果被群主踢出了群。而那个群主正是 gogs 的作者,无闻(unknow)。可笑的在此之前我还给无闻打赏过。

讲真自己搭建这种不知道哪天就不维护的基础设施是很有风险的,你总要考虑之后的事情:比如灾备、扩容,不如花点小钱弄个靠谱的服务来得实在。如果是自己在家里搞着玩当我没说,反正企业是不敢用。真要像模像样组一个工作室,那就得考虑你用的服务的质量。如果只是个人项目,我想Gitlab已经足够。

gogs, drone, rancher, nats, casbin go开发的项目有很多我还是挺喜欢

多年前用过gogs,比较轻快,但是遗憾没有集成的CICD,最后还是用gitlab

@nullcc 小团队没必要搞那么复杂,我们公司花4万块组了个服务器用了2年多,连备份都没有,我提了好几次都被无视了。等哪天硬盘坏了再说。哈哈哈

回到顶部