背景:这段时间在准备比赛,无论是几个人一起还是个人开发项目有git还是相当不错的,但是协同开发又苦于github繁琐的合作模式,而且还会有暴露自己代码的风险,所以想搭一个自己的git服务器。直接的git服务器虽然步骤简单,但是没有一个直观的界面来查看和管理,略有不便,想到前一个项目中用到了一个名叫gitblit的网站作为git服务器,应该是一个开源的git管理框架,查了一下果然是,开始动手搭建。
gitblit简介:
Gitblit是一个开源的软件,它基于纯Java堆栈,用于管理、查看和提供Git存储库。
他被设计用于想要托管集中式仓库的小型工作组。(翻译自Gitblit官网,英文水平实在有限,不过看介绍十分适合我们)
准备:
一台主机(我的是 Ubuntu 16.04系统的阿里云服务器)
系统中必须装有JDK7或JRE7及以上版本(官网最后一栏明确指出需要的Java运行环境,我的是JDK8)
SecureCRT(用于连接服务器执行指令,putty等其他可以同功能的软件也是可以的,当然如果是在本地的话就不需要了)
WinSCP(用于查看修改服务器中的文件,使用命令行中的vim也是可以的,不过个人感觉查看起来还是比较方便的,如果在本地的话也不需要了)
开始安装
1.创建目录并下载
mkdir /opt/gitblit cd /opt/gitblit
这时候下载gitblit:
wget http://dl.bintray.com/gitblit/releases/gitblit-1.8.0.tar.gz
这样就下载成功啦
如果有最新版强迫症的同学们(比如我)可以在截取网址中的 http://dl.bintray.com/gitblit/releases/ 这一部分使用网页打开查看一下最新版,然后更改后缀的 gitblit-x.y.z.tar.gz 中的对应xyz就好啦
可以看到最新版是1.8.0所以在这里就使用了gitblit-1.8.0.tar.gz
2.解压安装
ls tar -zxvf gitblit-1.8.0.tar.gz
结果如图所示(ls 可以看到我们刚才下载的文件)
3.修改默认设置
在解压之后,不同版本会有不一样的行为,我在使用1.6.2版本解压之后,解压后的文件是存放在当前的目录中的,但是在1.8.0版本中解压后会放在名为gitblit-1.8.0的文件夹中,在这里我们按照1.8.0版本的步骤操作,下载老版本的注意一下区别就好了。
进入gitblit-1.8.0中的data文件夹
在这里新旧版本也是有区别的,老版本只有一个gitblit.properties文件,修改配置的话要进去一个一个的查找很不方便,新版本在这里有了改进,把原来的gitblit.properties中的内容放到了default.properties中,自定义配置的话可以在gitblit.properties中直接添加。
然后我们来说一下比较重要的几个配置项。${baseFolder}代表gitblit所在的根目录。
git.repositoriesFolder = ${baseFolder}/git 配置仓库目录,用于放置创建的仓库,默认路径为${baseFolder}/git git.acceptedPushTransports = HTTP HTTPS SSH 可使用的传输协议,默认支持HTTP,HTTPS,SSH,还有另外一种为GIT web.siteName = gitblit 指定站点名称,此名称会作为网站页面标题显示 server.httpPort = 80 HTTP协议端口,默认为0,表示禁用此协议,为了安全性起见可禁用此协议 server.httpsPort = 8443 HTTPS协议端口,默认为8443,如果0,表示禁用此协议 server.certificateAlias = localhost 证书别名,该别名是一主机名,使用该别名后只能通过该主机名进行访问Web页面 server.storePassword = gitblit 服务端KeyStore密码,该密码在生成服务器证书时需要使用
大家可以在默认配置中查找一下这几项,看看当前版本的默认值是什么,不过懒一点的话可以直接在gitblit.properties中将上述的配置添加到最后一行
我只添加了三个自定配置,好像只有前两个与默认的不同。
4.启动服务
注意别忘了进入gitblit根目录
cd gitblit-1.8.0/
启动服务有两种方法:
第一种:
./install-service-ubuntu.sh service gitblit start
在这种方法中因为我使用的是ubuntu系统,所以./install-service-ubuntu.sh,如果你使用的是centos系统则应该使用./install-service-centos.sh
如果执行第一行指令时出现 sudo: unable to resolve host xxxx ,可以看这篇博文解决一下,不过只是警告并不影响执行
但是这种方法我并没有启动成功。如果看到这篇博文中所示的结果应该就比较稳了。
第二种:
我在尝试第一种方法不成功之后选择了第二种方法,手动启动:
java -jar gitblit.jar --baseFolder data
当你看到:
这时,基本上是启动成功了。
但是在这里我们需要注意一个问题,当我们关闭命令行窗口的时候,服务也会自动关闭,此时我们使用
nohup java -jar gitblit.jar --baseFolder data &
指令忽略所有挂断信号,并且将输出重定向到nohup.out文件中,最后的&可有可无,当你需要继续执行指令时就加上,如果不需要不管加不加直接关闭指令窗口就好了。
使用vim查看文件:
如果需要关闭进程则使用
ps -ef | grep gitblit
查看到如图结果后使用
kill -9 22617
指令结束进程。
5.查看结果
注意在外部访问时,要打开对应的端口:
我在设置时,使用了80和8443端口,需要把对应的两个端口打开。
直接输入服务器网址访问:
这样就成功了。
我们再尝试一下使用8443端口访问:
如果出现这样的结果,可能是由于浏览器的默认使用http协议进行访问,但是8443端口只允许https协议进行访问,所以我们在访问时手动在前边输入https://,这时可能会提示:
直接点击高级继续访问即可,毕竟是自己的网站,没有安全威胁。
进入后同样会看到相同的页面。
6.修改密码
成功后记得首先更改admin用户的密码
初识使用时 用户名为admin 密码也为admin:
修改密码:
至此我们的gitblit就部署完成了。
如有错误希望不吝指摘
参考资料: https://www.tuicool.com/articles/bQfyIj
http://blog.csdn.net/xtayfjpk/article/details/45669335
https://linux.cn/article-5559-1.html
http://www.cnblogs.com/shifu204/p/7441125.html