项目开发人员要求用git做版本控制,之前使用的svn+ssh,发现gogs相对简单好用,所以学习搭建Gogs。

什么是Gogs

gogs
Gogs 是一款极易搭建的自助 Git 服务。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
服务器环境

IDC机房dell服务器,系统为centos6.8
安装Gogs所需的其他环境

这里需要安装的依赖有git,MySQL

1.安装git

yum -y install git

2.安装MySQL

使用lnmp包安装数据库或手动安装(mysql5.7二进制安装教程

4.进入MySQL

mysql -u root -p

这里如果已经安装过MySQL,用之前的密码登录就好。

5.创建gogs数据库

//登录 MySQL 创建一个新用户 gogs,并将数据库 gogs的所有权限都赋予该用户。这里gogs@1234是密码

SET GLOBAL storage_engine = 'InnoDB';CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;GRANT ALL PRIVILEGES ON gogs.* TO ‘gogs’@‘localhost’ IDENTIFIED BY 'gogs@1234'; FLUSH PRIVILEGES;exit;

为Gogs创建单独的用户

sudo adduser git

下载安装Gogs

首先安装解压的工具

su git //这里是切换git用户
cd ~ //返回根目录
wget   //下载安装包 
tar -zxvf gogs_0.11.86_linux_amd64.tar.gz  //解压安装包

1.修改Gogs service配置文件

vim /home/git/gogs/scripts/init/centos/gogs

NAME=gogs
GOGS_HOME=/home/git/gogs  ##根据自己的路径配置
GOGS_PATH=${GOGS_HOME}/$NAME
GOGS_USER=git  ##根据自己的账户配置
SERVICENAME="Gogs"
LOCKFILE=/var/lock/subsys/gogs
LOGPATH=${GOGS_HOME}/log
LOGFILE=${LOGPATH}/gogs.log
RETVAL=0

//说明:
//1.如果是创建的git用户 则目录修改为/home/git/gogs.对应的USER修改为git

2.切换回root用户

su root

3.复制到/etc/init.d/

cp /home/git/gogs/scripts/init/centos/gogs /etc/init.d/

4.赋予权限

chmod +x /etc/init.d/gogs

5.复制service(centos 7系统可以使用这种方式)

cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

手动启动Gogs

cd /home/git/gogs/./gogs web

这个时候就是见证奇迹的时刻了
打开浏览器配置Gogs
http://ip:3000/install
这里ip就是服务器的ip地址
首次配置结束,访问 http://ip:3000 就能看到Gogs了。
首次配置后,会产生配置文件,在 /home/git/gogs/coustom/conf/app.ini
需要修改配置在里面可以修改(官网配置文件介绍)

vi /home/git/gogs/custom/conf/app.ini

APP_NAME = 公司名称或项目名称
RUN_USER = git
RUN_MODE = prod

[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs   ##数据库名称
USER = gogs  ##数据库用户
PASSWD = gogs@1234   ##数据库密码
SSL_MODE = disable
PATH = data/gogs.db

[repository]
ROOT = /data/gogs-repositories  ##配置git库存储位置
FORCE_PRIVATE = true
MAX_CREATION_LIMIT = 1

[server]
DOMAIN = x.x.x.x  ##域名或服务器IP
HTTP_PORT = 55633  ##服务监听端口
ROOT_URL = http://x.x.x.x:55633
DISABLE_SSH = false
SSH_PORT = 52345  ##ssh端口
START_SSH_SERVER = true  ##是否开始ssh服务
OFFLINE_MODE = true

[mailer]
ENABLED = true
HOST = 邮箱服务器地址
FROM = 邮箱账号
USER = 邮箱账号
PASSWD = 邮箱密码

[service]
REGISTER_EMAIL_CONFIRM = true
ENABLE_NOTIFY_MAIL = true  
#显示注册按钮
#SHOW_REGISTRATION_BUTTON = true 
#关闭禁止注册
#DISABLE_REGISTRATION = false
#开启禁止注册
DISABLE_REGISTRATION = true
ENABLE_CAPTCHA = false
#登录才可以随意浏览
REQUIRE_SIGNIN_VIEW = true

[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE = console, file
LEVEL = Info
ROOT_PATH = /home/git/gogs/log

[admin]
DISABLE_REGULAR_ORG_CREATION = true

[security]
INSTALL_LOCK = true
SECRET_KEY = Qsy28JI7fZTyO8N

[repository.upload]
ENABLED = true
TEMP_PATH = /home/git/gogs/files
MAX_FILES = 10
FILE_MAX_SIZE= 50


安装一切顺利,打开浏览器输入 ip:3000/install 打不开

原因:
1.可能3000端口被占用,gogs未启动,解决方法查看端口,看看能不能杀掉进程,方法自行百度, gogs安装默认3000端口,安装完成后可以在配置文件内更改,这里我的端口改为55633了。
2.服务器防火墙,解决方法:关闭防火墙。

搭建完成gogs后,即私有git库,可以考虑搭建jenkins来完成线上环境的一键升级,回退版本。避免每次升级都要配合开发。