公司内部搭建git服务器
前言
因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的。所以找了个跟gitHub很相似,但是又免费的gitLab。现在将搭建gitLab过程记录一下留作参考。
正文
gitLab介绍
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
依赖组件:ruby 1.9.3+,MySQL,git,redis, Sidekiq。
最低配置CPU 1G,RAM 1G+swap可以支持100用户。
先连接SSH
首先要确定ubuntu上安装并且启动了ssh服务,然后还要确保linux系统上的防火墙要关闭,win8的防火墙可以正常开启SSH(仿真终端工具有PUTTY,SecureCRT 以及Fterm等)可以google下载的了.
步骤:
1, 有人说首先要在Virtual Network Editor做NAT的端口映射,其实是不需要的;
1 |
ps -e|grep ssh |
如果结果中只有ssh-agent,那说明ssh-server还没有启动,一般ubuntu是默认安装ssh的,要是没有安装,可以通过
1 |
sudo apt-get install openssh-server |
安装ssh服务
1 |
sudo /etc/init.d/ssh start |
启动ssh服务
初始化root密码
ubuntn刚安装时候root还没有密码,设置一个,使用命令
1 |
sudo passwd |

安装gitlib整合包
官方有安装包与脚本下载,官方安装指南。同样GITHUB上有个社区非官方的安装指南。
但这儿里推荐bitnami下载打包安装版本 https://bitnami.com/stack/gitlab/installer,省去很多时间。他们也提供相关WIKI
以ubuntu为演示环境,来安装这个包,切换到root账户, 在终端运行:
如果没有权限,先授权账号:
1 |
chmod 777 bitnami-gitlab-8.5.7-0-linux-x64-installer.run |
然后切换root用户执行:
1 |
./bitnami-gitlab-8.5.7-0-linux-x64-installer.run |
执行后就会弹出图形化界面,一步步确认就行,如下图





启动命令
第一次安装好了就默认启动了gitlab,如果要手动启动的话有两种办法
1.找到安装好的路径/opt/gitlab-8.5.7-0
需要root权限执行命令:
1 |
sudo ./ctlscript.sh start |

登陆系统
启动后,就可以访问系统页面了,这里先通过ifconfig命令获取当前的ip地址
我的是192.168.153.128,于是就可以在外面window系统浏览器访问
http://192.168.153.128/users/sign_in

使用我之前配置的git登陆,我之前安装的时候配置的管理员账号是git,密码12345678,
这里我登陆后发现跳转到404页面,把地址http://192.168.153.128/users/sign_in
后面的users/sign_in删掉回车就行,就去后界面如下:


创建项目前的设置
如果你是自己一个人玩就直接创建项目即可,因为我这边是给团队使用的,所以需要创建一下用户组,以及添加组成员,配置权限等,下面来介绍这些配置
配置服务器邮件
添加人员或者自己注册的时候需要发邮件激活,所以要先配置服务器,我在bitnami提供的wiki里面找到了办法,原文如下:
How to configure the email settings of GitLab?
You can configure the SMTP settings during the installation process. If you are using the Virtual Machine or AMI, you can configure it manually. For example, these are the options to configure it using a GMail account:
/opt/bitnami/apps/gitlab/htdocs/config/environments/production.rb
1
2
3
4
5
6
7
8
9
10
11
12 config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :plain,
:user_name => "your_account@gmail.com",
:,password => "your_password",
:enable_starttls_auto => true
}
简单的说就是修改/opt/bitnami/apps/gitlab/htdocs/config/environments/production.rb文件,里面的内容,address,domain,user_name,password这几个配置成你自己的邮箱,记得你的邮箱必须要支持smtp。port端口我默认也是587,不需要修改。
配置好了邮箱,就要测试一下,我们在http://192.168.153.128/users/sign_in 首页,注册一个额用户,然后我收到邮件激活,然后就可以登陆系统了。


可以看到,非管理员登陆右上角就没有Admin Area功能
创建小组,添加组内成员
让组内成员自己注册账号激活后,我们就准备创建小组了,创建小组是为了方便管理,创建项目的时候直接指定小组,这样小组内的成员都可以看到项目




新增项目
小组创建好了就可以新增一个项目了,这里创建的时候选择edw这个创建好的小组,并且项目宣称private私有项目。这样只有小组内的成员可以下载这个项目



配置SSH key
这里切换到tengj用户登陆,发现已经有了springmvctouchbaidu项目

但是要下载到本地还需要配置SSH key,复制我们本地\.ssh\id_rsa.pub的内容黏贴到下面图中指定的即可。

远程下载项目
这里模拟tengj下载远程项目,在这之前我已经用管理员账号把项目传上去了,如图

指定一个目录存放该项目,执行git clone命令:
1 |
$ git clone git@192.168.153.128:edw/springmvctouchbaidu.git |
搞定,下载下来了。
配置权限
前面文章也说过,一般一个实际项目中master用来版本发布,一般不在这个分支上开发,所以除了git管理员用户可以提交代码到master外,其他组成员只能push代码到dev这个分支。
比如我添加tengj用户的时候选择的是Developer角色,只要在Protected Branches中这个勾不够上就行了。这样开发人员就无法push代码到master分支上。

下面模拟一下tengj用户提交代码:

总结
ok,花了三天时间终于搞定了,截图还是蛮累人的哈哈,算是比较详细的记录了我这次安装gitlab的过程,个人感觉比网络上的文章调理清晰多了。一开始查资料快累死了。希望对你有所帮助。
原文: http://tengj.top/2016/03/29/git6gitlab/ 作者: 嘟嘟MD
公司内部搭建git服务器的更多相关文章
- 最新搭建GIT服务器仓库
新开了一个项目,现在需要将代码放在公司GIT服务器上面.所以这里需要了一些问题..记录一下.因为原来公司这边的服务器的git用户都是创建好的.这里没有创建.需要的可以看看:http://www.cnb ...
- 在CentOS搭建Git服务器 转
在CentOS搭建Git服务器 来自 :http://www.jianshu.com/p/69ea5ded3ede 前言 我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了.公 ...
- 搭建Git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- 如何在服务器上搭建git服务器
参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770 ...
- 自定义Git之搭建Git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想 ...
- 轻松搭建Git服务器(Ubuntu)
搭建Git服务器 在远程仓库节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业 ...
- Ubuntu16 搭建Git 服务器
刚入职一个月左右,昨晚公司给培训了SVN和Git的使用.之前在研究生期间,和导师做项目就一直使用git做版本管理.想起研究生有一段时间,git总出错(秘钥都不好使了,只有某个机器生成的rsa key ...
- Windows 使用 Gogs 搭建 Git 服务器(转)
Windows 使用 Gogs 搭建 Git 服务器 随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在wind ...
随机推荐
- 使用C++11实现完美资源管理
1.资源管理包括内存管理.文件句柄等等需要进行打开(申请).关闭(释放)操作的过程 2.VS2010使用的C++规范,严格说来不是C++11,而是C++0x,但是一脉相承的 一:管理数组 相较于aut ...
- html 页面清浏览器缓存
<meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv=" ...
- 【Leetcode】【Medium】Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes' values. For example:Given binary tr ...
- 安装或删除Skype for business server组件的时候,报错"错误: 找不到 SQL 服务"
安装或删除Skype for business server组件的时候,到了安装所有并置数据库的时候,报错“错误: 找不到 SQL 服务.确保计算机 skype.centos.com 中安装了 SQL ...
- 设计模式:观察者(Observer)模式
设计模式:观察者(Observer)模式 一.前言 观察者模式其实最好的名称应该是“发布订阅”模式,和我们现在大数据之中的发布订阅方式比较类似,但是也有区别的地方,在上一个设计模式,我们学习的是仲 ...
- base64编码加密图片和展示图片
base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一.base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于 网络传输.由于这些二进制字符在传输协议中属于控制字符, ...
- yii2框架安装运行init.bat报错php.exe不是内部或外部命令
在安装yii2框架的时候,遇到一个很纠结的问题.就是当我把安装包下载下来之后,在公司的电脑安装可以正常,当我回家用自己的电脑安装就报错,提示 php.exe 不是内部或外部命令,也不是可运行的程序.这 ...
- 32位 64位 获得进程peb的方法
基于上一篇文章,大概了解了peb的获取方法,但是那个方法只能获得当前进程的PEB,不能获得其他的进程的PEB.根据那个思想,获得其他进程PEB则需要注入,得到进程信息,然后进程间通信,将信息返回来,经 ...
- posix进程间的通信
1.无名管道 1.1管道是Linux支持的最初Unix IPC形式之一,具有以下特点: 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道: 只能用于父子进程或者兄弟进程之间( ...
- 理解Underscore中的uniq函数
uniq函数,是Underscore中的一个数组去重函数,给它传递一个数组,它将会返回该数组的去重副本. 1 ES6版本去重 在ES6版本中,引入了一个新的数据结构——set,这是一种类似数组的数据结 ...