运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务



运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

扫二维码关注,获取更多技术分享

为了方便随时随地的开发,以及团队化合作开发,一个好的版本管理工具是非常重要的。比较常用的版本管理工具有svn和git这是很多公司的选择,关于如何搭建自己公司的svn以及实现代码部署请看我之前的博客《Linux/centos下搭建svn服务来管理版本》。SVN的使用中有大部分人吐槽,说没有Git好用等等,其实SVN有着强大的权限管理,对于大的项目团队来说还是挺不错的。
既然很多人是Git派的那我今天要给大家分享如何搭建git服务来进行版本管理吧,其实Git服务的搭建是非常非常简单的,大家可以再百度搜搜,而我今天主要要分享的是使用gogs进行界面化的Git操作。
Gogs是什么 相信看我的这篇博客的朋友一定使用过github,那么我们在github能干什么呢?创建仓库,加入别人的项目,创建组织,处理合并请求,写项目文档,提交issue,管理项目开发团队,使用webhook部署代码等。但是在企业中因为代码的保密性和安全性即时github有私有仓库很多公司的非开源项目也不会选择github,而是希望在自己的服务器中搭建git服务。那么能不能在自己私有的环境中搭建一个github呢?答案是肯定的,而且选择也比较多。比较著名的有gitlab,gogs。gitlab比较早,也比较庞大。而今天我们要说的是使用go开发的gogs。
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

Gogs安装前准备 准备工作也是非常容易的,在这儿因为gogs是使用go来开发的,那么当然我们的git服务器上需要安装go环境,其实这个过程是非常非常简单的。
下载go安装包
国内下载的地址是:https://www.golangtc.com/download
根据自己的系统来跳转正确的版本,因为我是centos所以选择 go1.9.2.linux-amd64.tar.gz
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

或者直接使用此链接下载,如果你是ubuntu桌面版或其他的桌面版linux:
https://www.golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
解压压缩包
然后使用此命令解压go就行了。其中/home/git/local是我想把go防止的位置。你想放置在其他位置也是没有问题的。
tar -C /home/git/local -xzf go1.9.2.linux-amd64.tar.gz
将go路径加入到环境变量
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

当然这个对于对linux比较熟悉的人是很简单的。打开.bashrc把刚刚解压的go目录和bin加入到环境变量中。
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

运行go version 如果出现了版本信息就说明成功了可以进行下一步操作,否则检查错误的地方重新来。
Gogs下载安装及部署 使用go get来获取gogs包
因为gogs是go开发的程序包所以可以使用go get来从github获取。
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

使用 go get -u github.com/gogits/gogs
就可以将gogs下载到go目录下的src目录中。
构建gogs应用
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

这是go将go程序构建为可执行程序的过程。必须使用go build。在这儿大家要注意一点:必须将目录切换到gogs目录下
运行gogs
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

这儿操作也比较简单,使用./gogs web来运行gogs。只有出现下边绿色的部分表示运行成功了否则就是有错误。其中需要注意最后一行 Listen:http://0.0.0.0:3000这个表示该服务器的3000端口被监听。如果我们的服务器是一台线上服务器那么久需要找到线上服务器的公网ip地址。如果是本地的当然在浏览器输入127.0.0.1:3000就可以访问。如果是线上的就把0.0.0.0换成服务器公网ip地址访问。
可视化配置gogs
在浏览器使用以上说明的ip和端口访问后会出现一个web界面,我们重点说明下部分配置项。
数据库配置 因为gogs将操作中的数据写入数据库所以我们先得配置数据库,在此之前希望大家已经准备好mysql或其他数据库服务器,有给gogs用的数据库服务器地址,数据库,账号密码。
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

基本信息的配置 【运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务】运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

基本信息的配置也是比较明确的。在这儿大家要注意的是应用url。因为我们不可能一直拿ip来请求,不好记。那么如果你后期要使用域名,那么在这儿需要填写你自己的域名,当然如果填写了自己的域名后期要解析到该服务器的ip地址。
可选设置 运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

邮件服务配置主要是gogs对于一些操作发送邮件时使用,163等邮箱都提供了SMTP服务,相关的地址和账号大家都可以查看相关邮箱的帮助文档
管理员账号设置 运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

这儿需要注意了,你所添加的是系统管理员账号。一定要填写自己熟悉的或者容易记的账号密码。
自定义域名nginx反向代理 运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

注意了还是要强调一定要将你的server_name解析到该服务器上
最终效果 访问 git.sikukeji.com(参考自己配置)
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

添加进程守护 因为gogs使用go来处理网络请求,所以要求gogs服务一直处于挂起状态。我们刚刚是在命令行中使用./gogs web来启动服务的,只要命令行关闭那么gogs服务也随之关闭,那么我们需要一个静默的进程守护。
运维|CentOS上搭建git服务以及界面化管理_centos下gogs+nginx+mysql实现私有git服务
文章图片

    推荐阅读