项目开发人员要求用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来完成线上环境的一键升级,回退版本。避免每次升级都要配合开发。