Gogs 是一款使用golang编写的轻量的、开源的、自助式git托管服务。其功能与 github 及 gitlab 比较相似,不过gogs的部署要比前者简单的多,而且其功能也比较轻量。它是用 Go 语言写的,能兼容各个系统。它能运行于 Windows,MAC,Linux,ARM 等。
简单的对比先几个git服务
代码审查(拉取请求)可以说是缺失的最重要的功能。 这是 Gogs 在 Github issues 里首要问题,Gogs的主要开发者正在尽力开发中。但总的来说,Gogs 是一个功能丰富的、私有的Git托管服务。
安装过程
1.首先我们要安装golang语言。由于一些不可抗的因素,golang的 官网 在国内访问十分不稳定。如果没有梯子,可以访问 golang中国 下载golang。同时golang中国也是go语言爱好者交流分享的一个好地方。
本地环境中,可以通过brew来安装golang,
$ brew install go
若安装过程出现问题,不妨先 brew upgrade
试试。
安装完毕之后,我们可以通过如下代码来测试一下是否安装成功,
$ go version
其输出类似如下,
$ go version go1.7rc1 darwin/amd64
可以看出安装的golang的版本及平台架构。
2.除了golang环境之外,gogs服务还需要数据库的支持。
gogs支持的数据库类型非常灵活,基本常见的主流数据库都支持。
你可以按照自己的习惯来选择mysql或者postgrsql。甚至你可以不安装关系型数据库,直接使用sqlite3或者TiDB。
首先需要安装mysql的源,
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
然后安装rpm包,
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
在安装这个rpm包后会得到两个yum的repo源,
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
最后,我们可以运行 yum install mysql-server
来安装mysql了。在安装之前,你会得到你需要安装一批软件包的提示,你只需要按下yes即可。
在安装完mysql之后,我们还需要创建一个数据库,将之取名为gogs,
CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON gogs.* TO ‘root’@‘localhost’;
FLUSH PRIVILEGES;
安装gogs
gogs提供多重方式进行安装,比较常用的有两种。一个是二进制安装,另一个是通过源代码安装。
笔者这里选择的是通过二进制方式来安装。即下载与服务器架构匹配的二进制包,然后解压即可用。
然后切换到解压得到的目录之后,直接运行 ./gogs web
即可在服务器上运行gogs服务了。
你可以直接运行 ./gogs -h
得到更多的命令行参数说明。
一般采用如下的方式运行gogs,
nohup gogs/gogs web > log/gogs_web.log 2>&1 &
gogs的配置
启动gogs服务之后,首次运行会让你进行相关的配置。主要分为3个配置项,一是数据库的配置,包括数据库地址及密码;二是服务的应用配置,包括域名,路径等等;三是可选邮件服务和管理员配置。
具体的配置项含义可参考官方的 配置文件手册 。