Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务。
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
本篇记录了在内网简单搭建gogs系统的过程,本链接为内网域名请勿点击。
二、安装过程
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文件中进行修改,可以参考这里。我这里主要修改了
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认证配置
在授权认证管理-添加新的源: