专栏首页Java架构师必看自建Git服务器系列——Gogs(极易搭建的轻量级自助Git服务)

自建Git服务器系列——Gogs(极易搭建的轻量级自助Git服务)

一.介绍

一般提到自建Git,很多人都会想到GitLab,但是,真正用过的人就知道GitLab对资源消耗那是相当厉害的,个人使用都建议4G以上的配置,要真正释放GitLab的全部功能甚至需要8G、16G,这个似乎是由于GitLab使用了Ruby on Rails(简称RoR)开发导致的,当然,一定程度上也是因为GitLab功能太多。

但是,很多情况下我们其实用不到这么多功能,对于个人来说,我们甚至只需要最基础的那一部分,能够push,能够pull,能够显示Commit History,能够展示diff,仅此而已。因此Gogs应运而生。

参见 https://github.com/gogits/gogs/blob/master/README_ZH.md

很容易能从名字看出来Gogs是以Golang开发的,由于其特性使得Gogs能够非常方便的跨平台,而且对配置要求相当低,你甚至能够使用树莓派来在你家中部署Gogs。

我接触Gogs是很早的时候了,那时候它才刚出现,如今有大量的团队都在使用Gogs,之前说的TT-RSS(Tiny Tiny RSS)就是其中之一,而且伴随着使用者的增多,各种配套的比如CI和项目管理类程序都也开始对Gogs提供支持,这也让其变得更加强大。

来看下Gogs的功能特性:

支持活动时间线 支持 SSH 以及 HTTP/HTTPS 协议 支持 SMTP、LDAP 和反向代理的用户认证 支持反向代理子路径 支持用户、组织和仓库管理系统 支持添加和删除仓库协作者 支持仓库和组织级别 Web 钩子(包括 Slack 和 Discord 集成) 支持仓库 Git 钩子和部署密钥 支持仓库工单(Issue)、合并请求(Pull Request)、Wiki 和保护分支 支持迁移和镜像仓库以及它的 Wiki 支持在线编辑仓库文件和 Wiki 支持自定义源的 Gravatar 和 Federated Avatar 支持 Jupyter Notebook 支持两步验证登录 支持邮件服务 支持后台管理面板 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(通过 MySQL 协议)数据库 支持多语言本地化(28 种语言)

你想要的几乎都有,是不是很想试试呢? 去Gogs的Demo看看吧 ——>传送门

这是通过Gogs镜像同步Github上的Gogs项目,这个功能能够非常方便为你收藏看到的有趣的项目,并且能够与官方Repo保持同步更新,当然你也能随时取消同步将其固定在这一时刻作为备份。

二.安装

好了,不说了,心动不如行动,赶紧安装一波

照例是先说环境要求:

数据库(选择以下一项): MySQL:版本 >= 5.5.3 (需使用INNODB引擎) PostgreSQL MSSQL TiDB(实验性支持,使用 MySQL 协议连接) 或者 什么都不安装 直接使用 SQLite3 需要注意: 您可以使用 etc/mysql.sql 来自动创建名为 gogs 的数据库。如果您选择手动创建,请务必将编码设置为 utf8mb4 git(bash): 服务端和客户端均需版本 >= 1.7.1 Windows 系统建议使用最新版 SSH 服务器: 如果您只使用 HTTP/HTTPS 的话请忽略此项 如果您选择在 Windows 系统使用内置 SSH 服务器,请确保添加 ssh-keygen 到您的 %PATH% 环境变量中 推荐 Windows 系统使用 Cygwin OpenSSH 或 Copssh

PS.测试后发现目前数据库这边有BUG,develop分支据说修复了,但是目前还没有release,所以我建议数据库使用MySQL5.7或者MariaDB10.2,当然你用非MySQL的也行。

Gogs我非常不建议使用包安装,这个是我自己体验后的感受,因为包安装是自动构建的,日常会出问题,而且安装源默认会在更新时覆盖你的配置文件,如果没备份就分分钟GG,所以还是请使用二进制安装,安装方便,升级也方便,全部手动也不怕搞出问题。

首先去找到最新的release的二进制文件地址: https://gogs.io/docs/installation/install_from_binary

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

#添加Git用户 groupadd git useradd git -g git -s /bin/false #更新Git #IUS源依赖EPEL源 yum install epel-release -y #CentOS6自带的Git只有1.7,我们需要更新的版本 rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpm #卸载老版本并安装新版 yum remove git -y yum install git2u -y #获取启动脚本 wget https://raw.githubusercontent.com/gogits/gogs/master/scripts/init/centos/gogs -O /etc/init.d/gogs chmod +x /etc/init.d/gogs #下载程序 cd /home/git/ wget https://dl.gogs.io/0.11.34/linux_amd64.tar.gz tar xzf linux_amd64.tar.gz rm -rf linux_amd64.tar.gz #创建日志文件,这个在启动脚本中要求必须存在 mkdir /home/git/gogs/log touch /home/git/gogs/log/gogs.log #修改所有者 chown -R git:git * #启动 service gogs start #添加开机启动 chkconfig --add gogs

我这边一开始是直接运行程序的,而没有通过启动脚本来,因为是测试,你们正常使用还是用启动脚本来运行,另外如果要方便看日志也可以参考后面一篇文章中的利用supervisor来管理程序的方法

访问http://IP:3000/ 就能进入安装流程

如果提示"数据库设置不正确:Error 1071: Specified key was too long; max key length is 767 bytes",请升级MySQL5.7或切换为其他数据库,这是个BUG,目前还在测试修复的阶段

参见Github issue页面——>传送门

这句提示完全没用,请忽略

如果只是个人使用的话用SQLite其实也还行,如果要备份或者迁移数据直接复制文件就行了

懒得更新MySQL5.7了,就先换SQLite,安装完成后就可以登录了

这个错误是你直接在命令行运行的,换成启动脚本就OK了,不用在意

一切OK

PS.附Gogs配置文件参数说明 https://gogs.io/docs/advanced/configuration_cheat_sheet

本文由来源 2,由 system_mush 整理编辑,其版权均为 2 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • javascript页面跳转常用代码

    这东东最难记,每次需要时都是重新到Google上搜,真是烦死了,这回整理一下贴到这。

    Java架构师必看
  • 《Spring实战》读书笔记-第3章 高级装配

    《Spring实战》是学习Spring框架的一本非常经典的书籍,之前阅读了这本书,只是在书本上写写画画,最近整理了一下《Sp...

    Java架构师必看
  • 《Spring实战》读书笔记-第2章 装配Bean

    在Spring中,对象无需自己查找或创建与其所关联的其他对象。相反,容器负责把需要相互协作的对象引用赋予各个对象。例如,一个订单管理组件需要信用卡认证组件,但它...

    Java架构师必看
  • 假装是饼多多的产品经理

    说实话,我并没有真正用过饼多多,只是有几次一个亲戚发过来让我帮他砍价,就进去帮他砍了一块多。

    ImportSource
  • Flash/Flex学习笔记(9):ActionScript3.0与Javascript的相互调用

    原理跟Silverlight中的几乎如出一辙(见Silverlight如何与JS相互调用): ActionScript3代码: btnCallJs.addEve...

    菩提树下的杨过
  • mac苹果电脑怎么查看本机IP与MAC地址

    在windows系统中与Mac系统中查看本机ip地址有些不同,那么在Mac系统中该如何查看本机的IP地址以及物理MAC地址呢?给您带来相关的查看方法,具体步骤如...

    MAC先森
  • 0478-如何在CDH5.16.1中安装CDSW1.4.2

    Cloudera在2018年11月29日发布了CDH5.16.1版本,5.16.1的新功能可以参考前一篇文章《0466-CDH5.16.1和CM5.16.1的新...

    Fayson
  • SpringBoot编写自定义的starter

    作者:Format 来源:http://fangjian0423.github.io/2016/11/16/springboot-custom-starter/...

    java达人
  • mfs挂载失去连接问题 原

    我在系统上部署了一个web应用,这个应用使用了mfs挂载使用静态资源,但是每次就突然进程没了,挂载点重新挂载又可以了。经查发现居然是因为我分派的内存太小,fpm...

    domain0
  • 0586-5.16.1-如何在CDH5.16.1中安装CDSW1.5

    Cloudera在2018年11月29日发布了CDH5.16.1版本,5.16.1的新功能可以参考前一篇文章《0466-CDH5.16.1和CM5.16.1的新...

    Fayson

扫码关注云+社区

领取腾讯云代金券