Gogs:可能是比Gitlab更好的选择

Gogs私服搭建 Gogs是一个轻量级的git服务(代码托管平台),基于Go语言开发,其设计和性能优化使得它适合于小型团队和个人开发者。它具有Web界面,可以让您方便地管理和浏览仓库、处理问题、进行代码审查和管理团队成员。 阅读详情

译者注:看到一篇介绍能简单自建git托管服务的项目—— Gogs ——的文章,感觉这个项目很棒,翻译给大家参考一下。
这个项目的四位主要开发者都是中国人,该项目今天蝉联 GitHub Go 语言 Trending 第一。(づ ̄3 ̄)づ莫名的自豪感油然而生。希望能有更多优秀的国产项目出现~

Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大。 但是,有没有能和Gitlab/Github媲美但操作更简单的项目呢?我认为 Gogs 是很好的选择。

简介

现在,GitHub已经成为首选的代码托管平台。 因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它。

同时,谷歌的代码托管项目准备关闭,你可以把项目转移到这里。

但如果你在写Android应用程序,或者正在创建下一个伟大的iOS游戏,或者不想让别人看到你的代码没,该怎么办?

你当然可以购买私人GitHub库,但你肯定更想把资金投资到更紧迫的事情上。

这就是 Gitlab 和 Gogs 这样的软件诞生的原因。

他们提供的服务和GitHub非常相似,不同的是,你可以把项目放在你自己的服务器上,甚至是自己的工作站上。

下面一起来进行更深入的了解。

Gitlab

Gitlab是一个强大的git服务,基本功能和对手GitHub一样。 这是一个成熟的项目和并且在不断更新。

clipboard.png

他们最近收购了Gitorius(另一个类似GitHub的服务),所以功能将有望得到扩展(查看有关收购的新闻剪辑)。

以前是手动安装,很耗时间,问题也很多。最近安装过程有所改善。

现在有 Linux DEB/RPM 的安装包可用(称为Omnibus),解决了所有的依赖问题,简化了安装过程。

升级是一个复杂的事情,尤其是从较早的版本升级到最新版,但也没那么复杂。

然而,你可以感受到很多东西是在后台执行的。 你可以运行 Sidekiq、Unicorn、Nginx、Ruby (包括 gems) 和 Gitlab本身。

自定义安装不是那么简单,有很多不确定因素,如果出了什么差错,要自己一个个排查。

输入二进制包

现在,我们有了Gogs。 你所要做的就是运行一个的二进制包。

它是用Go语言写的,能兼容各个系统。

它能运行于 Windows,MAC,Linux,ARM 等。

clipboard.png

安装时只需要把压缩包解压到选定的文件夹中。 就是这样。 升级也一样:只要解压压缩包即可。

这就是Go语言二进制开发的美,你可以轻松在多个平台下开发。

Gogs占用资源少,所以它很容易在系统资源上运行(它可以在Raspberry Pi运行)。

你可以用默认的配置运行,或做一些小调整。

默认的配置文件位于安装文件夹的/conf/app.ini,文档建议把自定义配置写到/custom/conf/app.ini,这样升级就不会覆盖配置。

有三个可自定义的东西:

  • 库的位置

    [repository]
    ROOT = !! 库的地址 !!
    
  • 数据库位置

    [database]
    PATH = !! 数据库地址 !!
    
  • 公钥

clipboard.png

注意:目前,你需要运行一个SSH服务器(OpenSSH也很好),这和gitlab相同。

比较

让我们比较一下这两个产品。 我将以GitHub作为参考。

特性GogsGitlabGithub
Dashboard & File BrowserYYY
Issue Tracking, Milestones & Commit keywordsYYY
Organizations supportNYY
WikiNYY
Code ReviewNYY
Code SnippetsNYY
Web HooksYYY
Git HooksY* Enterprise* Enterprise
LDAP LoginYYY
LDAP Group SyncN* Enterprise* Enterprise
Branded Login PageN* Enterprise* Enterprise
LanguageGoRubyRuby
PlatformCross-PlatformLinux* Virtual Machine
LicenseMITMITProprietary
Resource UsageLowMedium/HighMedium/High

代码审查(拉取请求)可以说是缺失的最重要的功能。 这是 Gogs 在Github issues 里首要问题,Gogs的主要开发者正在尽力开发中。

但总的来说,这是一个功能丰富的、私有的Git托管服务。

运行一个 Gogs docker

我以前描述我如何我的服务器环境docker化,所以我也会把gogs作为Docker容器来运行

让我们一步一步来做。

假设我有一个应用程序的文件在我的服务器根目录/home/kayak/apps,给每个作为Docker容器的应用创建子目录。

下载并解压最新版本gogs。

$ cd /home/kayak/apps
$ wget http://gogs.dn.qbox.me/gogs_v0.5.13_linux_amd64.zip
$ unzip gogs_v0.5.13_linux_amd64.zip
$ rm gogs_v0.5.13_linux_amd64.zip

自定义配置

$ cd gogs
$ mkdir -p custom/conf
$ cd custom/conf
$ nano app.ini
[repository]
ROOT = !! this is the location where you want to keep the repositories !!

[database]
PATH = !! this is the location of your database (sqlite3 by default) !!

注: 你也可以不把gogs作为docker容器,直接运行。

现在让我们创建dockerfile

$ cd /home/kayak/apps/gogs
$ nano Dockerfile

FROM ubuntu:14.04

ENV DEBIAN_FRONTEND noninteractive

RUN sed 's/main$/main universe multiverse/' -i /etc/apt/sources.list && \
    apt-get update && apt-mark hold initscripts && \
    apt-get install -y sudo openssh-server git && \
    apt-get clean

EXPOSE 22 3000

RUN addgroup --gid 501 kayak && adduser --uid 501 --gid 501 --disabled-password --gecos 'kayak' kayak && adduser kayak sudo

WORKDIR /home/kayak
ENV HOME /home/kayak

ENTRYPOINT ["/home/kayak/boot"]

dockerfile是基于最新的Ubuntu LTS版服务器(14.04)。

然后安装 sudo, openssh 和 git,暴露端口22(用于SSH)和3000(给gogs的Web界面)。

另外,我通常会创建一个用户(这里用 kayak),它具有与我的Max box用户相同的UID/GID,以防止访问权限问题。

最后,启动shell脚本运行。

$ touch boot
$ chmod +x boot
$ nano boot
#!/bin/bash

sudo -u kayak -H touch /home/kayak/.ssh/authorized_keys
chmod 700 /home/kayak/.ssh && chmod 600 /home/kayak/.ssh/authorized_keys

# start openssh server
mkdir /var/run/sshd
/usr/sbin/sshd -D &

exec sudo -u kayak /home/kayak/gogs web

这样就运行了ssh守护进程和gogs。现在是以kayak用户运行,这样比用默认的root用户好一些。

建立镜像

$ cd /home/kayak/apps/gogs
$ docker build --rm -t apertoire/gogs .

镜像建立好就可以运行了

$ docker run -d --name gogs \
-v /etc/localtime:/etc/localtime:ro \
-v /home/kayak/apps/gogs:/home/kayak \
-p 62723:22 \
-p 3000:3000 \
apertoire/gogs

可以在命令行查看运行情况。

clipboard.png

现在可以打开网页界面,它会显示一个安装页面(首次运行)。

clipboard.png

安装完成后,就搭建好一个功能丰富的Gogs了。

clipboard.png

总结

Gogs 是一个轻量级的、易于设置、跨平台的Git托管服务,不逊色于 Gitlab 和 GitHub。

虽然不比这二者成熟,但它有很大的潜力。

它是开源的,所以你可以帮助改善它。

我用Gogs取代Gitlab几个月了,感觉不错。

我创建42个库,感觉它的性能非常好。

我绝对推荐Gogs作为你的Git自托管服务。

gogs安装与说明(docker) 前言: 作为一个开发,少不了和git打交道,像github,gitee是很流行的git线上托管平台,而我们也搭建自己的git托管平台,有条件的可以使用gitlab,它对硬件有要求,像博主这种没条件用虚拟机的,推荐使用gogs。   Gogs 的是一个由 Go 语言开发的、可以简单、快速搭建自助 Git 服务。在宿主机上的安装可以参考官网:Installation - Gogs。   不过在宿主机上直接安装会麻烦一点,需要自行安装git工具,如果使用ssh还要安装ssh服务器,如果使用源码安装,还可能. 阅读详情

相关推荐

Centos7安装Gogs完整教程

本文章讲的是如何在Centos7下安装git服务器Gogs,本文参考了网络上的文章和官方文档。根据本文来操作可以完美安装Gogs,如果有其他问题或者看法,可以在评论区留下你的问题或看法。你的支持是我更新创作的动力!!!

山不见我,我自见山 3056

Gogs安装和部署教程-centos上

Gogs 是一款极易搭建的自助 Git 服务。Gogs安装和部署教程-centos上

helloxiaozhe的博客 7702

Gogs vs GitLab:轻量级Git仓库选型指南(含性能对比与配置建议)

本文深入对比了轻量级Git服务Gogs与功能全面的GitLab平台,从核心理念、资源占用、功能特性到部署运维进行全方位分析。针对不同团队规模与资源条件,提供了清晰的选型决策框架和场景化推荐,帮助技术负责人根据实际需求在Linux服务器上选择最合适的Git仓库解决方案。

opencv7vision的博客 333

git java 类似 gitlab_Gogs:可能是比Gitlab更好的选择

译者注:看到一篇介绍能简单自建git托管服务的项目—— Gogs ——的文章,感觉这个项目很棒,翻译给大家参考一下。这个项目的四位主要开发者都是中国人,该项目今天蝉联 GitHub Go 语言 Trending 第一。(づ ̄3 ̄)づ莫名的自豪感油然而生。希望能有更多优秀的国产项目出现~Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大。 但是,有没有能和Gitlab/Github媲...

weixin_39988779的博客 1055

PWM调光原理详解:为什么你的LED灯会闪烁?从硬件到软件的避坑指南

本文深入解析PWM调光原理,揭示LED灯闪烁的根本原因,并提供从硬件设计到软件算法的全面解决方案。通过分析人眼视觉暂留机制和PWM参数设置,帮助开发者避免频闪问题,提升照明质量。特别适合电子工程师和智能家居开发者参考。

weixin_29189363的博客 292

避坑指南:Qgis等时圈分析中ORS插件Key申请与参数设置的常见错误

本文详细解析了QGIS等时圈分析中ORS插件从API密钥申请到参数优化的全流程避坑指南。针对密钥激活、出行模式选择、时空参数设置等七个高频故障点,提供了实用的调试方案和优化技巧,帮助用户高效完成空间可达性分析。

weixin_42546508的博客 299

Git快速入门(07)比GitLab更好的选择-Gogs

Gitlab是企业git仓库最常用的私服,Gitlab是一个强大的git服务,基本功能和对手GitHub一样。 这是一个成熟的项目和并且在不断更新。安装过程也并不复杂,但是如果我们的目标是使用一个git代码托管服务,那么Gitlab相对来说也是有一些不足的: 1 Gitlab版本升级相对复杂一些,尤其是从较早的版本升级到最新版 2 很重!很重!有好几百兆大,启动时你可以看到到很多东西是在后台执行的。 例如 Sidekiq、Unicorn、Nginx、Ruby (包括 gems) 和 Gitlab本身。

Blues的专栏 4117

全新RGB-D及平面法线数据集DIODE

丰田工业大学联合芝加哥大学和北航发布全新RGB-D及平面法线数据集 DIODE (Dense Indoor and Outdoor DEpth)。

qq_43477338的博客 1539

使用Gogs轻松搭建可能比GitLab更好用的Git服务平台

前言 GitHub 已经成为首选的代码托管平台,因为它又很多很棒的功能,操作简单,几乎所有的开发者都喜欢它。但是搭建 GitLab 过程并没有想象中的简单,利用 Bitnami 当然也是一种偷懒的好选择。Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务,Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gog...

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 2125

微信小程序URL Link全解析:从生成原理到实战应用(附Java代码)

本文深入解析微信小程序URL Link的生成原理与实战应用。URL Link是微信官方提供的智能路由协议,通过中间页实现外部链接安全跳转至小程序指定页面。文章详细阐述了其权限模型、环境版本差异及跳转机制,并提供了包含令牌管理、异常处理和性能优化的健壮Java实现方案,助力开发者构建高可用的链接生成服务。

weixin_29327525的博客 1216

SAP预扣税配置实战:从BP创建到外部接口集成的完整流程

本文详细拆解了SAP S/4HANA中预扣税配置与集成的完整实战流程。内容涵盖从业务伙伴(BP)架构下的数据存储理解、后台基础配置,到针对批量处理场景,如何绕过标准BAPI,采用直接更新核心表LFBW的策略进行高效开发。最后,文章探讨了与外部接口集成的多种模式与数据流设计,为财务顾问和ABAP开发人员提供了一套清晰、可落地的解决方案。

weixin_29204749的博客 415

离谱!Gitlab将停止为中国区用户提供服务,还有哪些替代品可用?

最近在访问Gitlab官网的时候发现,对于中国区用户,会推荐用户迁移到极狐提供的Gitlab上去,如果你不想迁移,有什么好的开源替代品呢?今天给大家分享一款好用的开源替代品!

macrozheng的专栏 2298

IMA知识库:从0到1的架构设计与实践

本文探讨了AI时代知识库系统的架构设计与演进路径。通过分析知识入库、知识管理和知识应用三大核心业务流程,提出了应对数据多样性、处理标准化、流量洪峰等挑战的解决方案。重点介绍了基于统一数据格式的解耦设计、异步处理架构、服务拆分策略以及权限安全体系,构建了一个稳定、高效且可扩展的知识库系统。文章强调优秀架构需要持续演进,通过识别薄弱点不断优化,最终实现技术方案与业务需求的平衡。

lovehu6686的博客 1736

Github 36k+ Star Gogs vs GitLab- 自己搭建git仓库

参考文章: Document​www.macrozheng.com 比较方面 Gogs Gitlab github star 36k+ 22k+ Docker镜像大小 44MB 836MB 启动速度 很快,几秒 很慢,机器配置不好要10分钟 配置要求 很低,树莓派都可以 很高,吃内存,吃CPU 访问速度 够快 机器配置好也还可以 功能 功能较少 功能很丰富 ...

Hanko的专栏 516

fastbin attack快速入门

0x01 fastbin简介 Fastbin包含0x20~0x80大小bin的数组指针,用于快速分配小堆块。fastbin按照单链表结构进行组织,相同大小的bin在同一个链表中,fd指向下一个bin,采用LIFO(Last In First Out)机制。在fastbin中,堆块的inuse标志都为1,处于占用状态,防止chunk释放时进行合并,加快小堆块的分配。 正常fastbin的使用 通过这个简单的案例来了解fastbin的单链表结构,malloc和free的过程。 #include<stdio

abelxu 1571

SecOC专题之新鲜值TripCnt

本系列为一步步拆解新鲜值的分发及管理而撰写文章属于原创,根据自身开发经验及理解撰写,若有错误请指出Trip Counter是新鲜值中变化最慢的一个part,并且自增到最大值时,会从头开始翻转计数。Trip Counter需要收发双方都保存,由于其变化较慢,所以不会经常进行同步该值。这就要求开发过程中保证每次对该值的读写必须要正确。

qq_22969363的博客 1154

windows下安装gogs

Gitlab是一个很棒的Git托管服务,几乎像GitHub一样强大。 但是,Gitlab在windows下无法安装,除非安装虚拟机,很麻烦。 Gogs 是更好的选择。 1、下载gogs 下载地址:https://dl.gogs.io/ 选择mws的,表示提供内置 Windows 服务支持 2、直接解压 3、进入安装目录,运行命令.\gogs web 开启服务 4、浏览器输入http://loc...

文若书生的专栏 1058

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【git3】git+Gogs+webStorm的使用

Gogs:相比gitlab更轻量级,基于golang的搭建自助 Git 服务。使用Gogs轻松搭建可能比GitLab更好用的Git服务平台。 参考资料:http://blog.youkuaiyun.com/u010228448/article/details/71425551 转载于:https://www.cnblogs.com/smilexumu/p/7346203....

ansem0444的博客 184

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Git快速入门-比GitLab更好的选择-Gogs(转载)

———————————————— 版权声明:本文为优快云博主「郭艺宾」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/u011857851/article/details/108637290 ...

DSI技术组的博客 370

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Gogs敏感信息加密存储实战:AES-256-GCM与自动化部署方案

在软件开发和运维中,敏感信息管理是基础安全实践。通过对称加密原理,可以对配置文件中的密码、密钥等敏感数据进行加密存储,防止明文泄露风险。AES-256-GCM作为认证加密算法,不仅提供数据保密性,还能验证数据完整性,确保配置不被篡改。这种加密方案的技术价值在于实现安全性与易用性的平衡,无需修改应用代码即可无缝集成。在自建Git服务场景中,Gogs作为轻量级Git服务器,其配置文件常包含数据库密码、SMTP密钥等敏感信息。通过定制启动脚本结合AES-256-GCM加密,可以在Gogs启动时自动解密配置,实现敏

weixin_34082695的博客 360

GitLab私有化部署与核心功能实践:从零搭建到CI/CD自动化

版本控制系统是现代软件开发的基石,它通过记录代码变更历史、支持团队协作,成为项目管理的核心工具。其原理基于分布式存储与差异化管理,实现了代码的高效追踪与合并。在DevOps实践中,版本控制与持续集成/持续部署(CI/CD)紧密结合,自动化构建、测试与部署流程,显著提升交付效率与质量。GitLab作为一体化DevOps平台,将代码托管、CI/CD流水线、项目管理等能力深度集成,尤其适合需要私有化部署、数据自主可控的场景。通过配置SSH密钥实现安全认证,结合REST API与.gitlab-ci.yml配置文件

weixin_30265103的博客 376

gogs gitlab 私人代码仓库 git服务器 容灾 灾备 轻量 树莓派

gogs gitlab 私人代码仓库 git服务器 容灾 灾备 轻量 树莓派

global_coding的博客 876
上一篇: Web以及网络基础(图解http笔记01)
下一篇: 任务协作管理工具 Trello 使用简介
Watkin Lee
博客等级 码龄10年 18粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值