前言
为什么要介绍GitBlit来搭建git服务器呢?由于之前介绍过一篇搭建本地cocoapods库,可是如果是基于github的话仍然是公开的,当然你可以花钱买私有仓库(repository)权限。或者选用其他具有免费私有git服务网站,但对于无法访问公网的一些公司,搭建一个自己的或者公司,企业内部的小型git服务中心还是挺不错的。废话少说,下面就简短介绍基本搭建方法。
<h2 id="1">基础配置<h2>
推荐查看官方设置文档,和查看default.properties文件注释说明。
-
打开
data
文件夹下的default.properties配置http/https服务端口号,服务密码等#设置为0时及关闭对应服务 #当配置好https后推荐关闭http服务-安全是很重要的O(∩_∩)O~~ server.httpPort = 19991 server.httpsPort = 9119 #这个是ssl的加密的密码(不能输入 "#") server.storePassword = gitblit #单次提交最大尺寸默认8k,你觉得上传图片有保障吗? git.packedGitLimit = 20m #git库的文件存放目录 git.repositoriesFolder = [你想要存放文件的路径]
当初在这里默默被坑,最后发现这个密码最多只能设置7位,超过就报错.原因:是缺少一个JCE文件导致密码被限制长度,当初刷一下就过去了根本不会看那么细啊,有木有同样踩坑的(๑•ᴗ•๑)。(当然下载安装后就解除限制了)
jce.png
ps:本地单项目处理大文件无法上传
其实很简单,在项目的.git/config里加入:
threads = 1 00
deltaCacheSize = 256m
packSizeLimit = 180m
windowMemory = 128m
packedGitLimit = 1000m
packedGitWindowSize = 1000m
(当然你也可以配置LFS-Gitblit是支持lfs功能的) -
打开服务后,进入https://localhost:9119(用自己配置的端口)观察效果
$ java -jar gitblit.jar --baseFolder data $ ./gitblit.sh
-
如果第二步收到Safari阻拦只需要选择信任证书即可
到这里我们自己的git控制中心就OK了但如果仔细看了运行java -jar gitblit.jar --baseFolder data
时会有相关的证书等ssl设置。但是默认设置你放心吗?
接下来继续了解有关ssl的设置
<h2 id="2">SSL配置<h2>
-
安装data/certs/caKeyStore.p12根证书然后执行
#打开证书配置GUI $ java -cp gitblit.jar com.gitblit.authority.Launcher --baseFolder data
or
$ ./authority.sh
GUI.png
- 点击红色按钮新建https服务端证书(自己创建的主机名默认为localhost,局域网下其他电脑是无法访问的,这是由于证书验证主机名hostname无法通过localhost匹配对应域名的原因),此时主机名改为你电脑的ip,或一个公网ip、域名达到外界可以访问
-
重新打开服务后,进入https://192.168.x.xxx:9119(用自己配置的端口)观察效果
$ java -jar gitblit.jar --baseFolder data
-
选择用户创建对应的客户端证书
配置SSHKey实现免密码克隆
-
查看git 用户基本配置(用户名,邮箱)
git config --lis
-
若1中没有显示全局用户名与邮箱则需要手动设置
git config --global user.name "username" git config --global user.email "mail@gmail.com"
-
创建sshKey文件(要不要评论/备注都没关系)
#带评论创建 ssh-keygen -t rsa -C "mail@gmail.com" #不带评论创建 ssh-keygen -t rsa
输入命令后依次会有三次交互:
- 生成文件的名字---必须为空
- 生成文件的密码---为空
- 确认密码--为空
/Users/lqx/.ssh/id_rsa
前往
/Users/lqx/.ssh/id_rsa
该目录下的*.pub(公钥)文件,复制全部内容到gitbli用户中心的SSHKey下保存,OK,以后你就可以通过
git clone ssh@admin/Path/*.git
免密clone了。。
基于Tomcat Gitblit.war快捷配置
由于我有一个tomcat所以采用的这种方式,在manangerAPP中配置war文件就OK了,其他配置都一样(SSL部分不需要,取决于tomcat配置)
ps:这里不做赘述可以,有需求可以联系我。
网友评论