一、Gogs介绍
Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
更多介绍请查看:https://gogs.io/docs/intro
二、安装过程
1. 安装git
sudo apt-get install git
2.创建用户
sudo adduser git
....
su git
cd ~
密码:qwe
3.下载最新版gogs
wget https://dl.gogs.io/gogs_v0.8.10_linux_amd64.zip
unzip ./gogs_v0.8.10_linux_amd64.zip
4.运行gogs
./gogs web
然后打开浏览器,http://服务器IP:3000/,默认就进入安装配置界面,进行简单的配置。
三、配置和运行
1.后台运行
如果要在后台以service模式运行,先将/home/git/gogs/scripts/init/debian/gogs文件拷贝到/etc/init.d/目录下,切换回原来的用户Ctrl+d,并增加运行权限sudo chmod +x /etc/init.d/gogs,并将文件做对应修改如下:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Go Git Service"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/home/git/gogs #这个根据自己的目录修改
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=git #如果运行gogs不是用的这个用户,修改对应用户
以后可以使用
/etc/init.d/gogs start|restart|stop|status
进行gogs应用各种操作了。
2.自定义配置
第一次打开应用可以进行web界面的配置,之后的修改要在/home/git/gogs/custom/conf/app.ini文件中进行修改,可以参考https://gogs.io/docs/advanced/configuration_cheat_sheet。我这里主要修改了
APP_NAME = 云铜代码管理平台-Git-Gogs
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = sqlite3
HOST = 127.0.0.1:3306
NAME = gogs
USER = root
PASSWD =
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /home/git/gogs-repositories
[server]
#修改了域名,说是生成git默认使用的ssh协议地址用的
DOMAIN = git.yncic.com
HTTP_PORT = 3000
#修改了应用目录,这个是生成git库url连接用的
ROOT_URL = http://git.yncic.com/
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false
[mailer]
ENABLED = false
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
#激活了AVATAR头像的本地缓存,AVATAR头像默认被墙
ENABLE_CACHE_AVATAR = true
[picture]
#修改了GRAVATAR从多说缓存取照片
GRAVATAR_SOURCE = duoshuo
DISABLE_GRAVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
[security]
INSTALL_LOCK = true
SECRET_KEY = D6Lo2U0eDD4w2PL
3.反向代理
为了绑定域名,需要做反向代理,但是由于安装在之前用binami redmine搭建的issue管理系统的那台服务器上,因此使用了bitnami提供的apache2做了反向代理,在/opt/redmine-2.3.1-0/apache2/conf/httpd.conf文件最后添加:
<VirtualHost *:80>
ServerAdmin webmaster@domain.tld
ServerName git.yncic.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
这个还有点问题,添加这个完后原来的应用也跳到了gogs,最后在后面又加了一段,问题才解决,但是也不知道为什么:以下内容已经删除
<VirtualHost *:80>
ServerAdmin webmaster@domain.tld
ServerName qa.yncic.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
问题已经解决:将/opt/redmine-2.3.1-0/apps/redmine/conf/redmine.conf更改为如下内容,即将之前的“默认目录设置”改为“虚拟主机设置”运行并绑定域名即可两个应用通过不同域名分别访问:
<VirtualHost *:80>
DocumentRoot "/opt/redmine-2.3.1-0/apps/redmine/htdocs/public/"
ServerName qa.yncic.com
ServerAlias qa.yncic.com
</VirtualHost>
4.LDAP认证配置
在授权认证管理-添加新的源: