① 如何在mac下远程搭建git服务器
方案一 基于SSH直接搭建
Git支持的协议主要是四种:
本地: 需要文件共享系统,权限不好控制
HTTP:速度慢
SSH:同时支持读写操作,不支持匿名的读取(Git默认协议)
GIT:最快
从搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。
在使用Github的时候,会利用rsa.pub公钥/私钥的方式,这样在服务端拥有用户的公钥(*.pub)之后就可以,跨过繁琐的口令,直接认证提交了,而服务端也会根据不同的用户身份,对其权限有着更加灵活的管理。因此也采用这种方式。
服务端
为了使远程库访问更加直观,先在服务器上创建一个名为git的账户,这样以后clone的时候就如下面的格式了:
git clone git@server:some.git
创建新的用户,创建repo等目录
$sudo adser git
$su git
$cd ~
$mkdir repos
在HOME下的。ssh目录,如果没有则创建,创建一个authorized_keys文件,这个文件就是用来管理所有git用户的公钥的,也就是这里面的用户对于项目有着R+W的权限。
客户端
对于每一个客户端,需要生成一对密钥和公钥,如果是Github用户,那么。ssh目录下,一定有id_rsa.pub和id_rsa两个文件,其中第一个是系统生成的公钥,另一个是自己要保存好的密钥。如果没有的话,可以在终端执行:ssh-keygen来生成,完成后,将自己的公钥提交给管理员,这就是一个注册的行为。
完成
最后一步,管理员将团队成员的公钥添加到authorized_keys中,比如将同学susie加入:
$ cat susie.pub 》 authorized_keys
至此,大家可以通过git@server:repos/some.git来访问公共的版本库了。
问题
安全问题,成员可以登录git用户的shell,细节权限如分支等不好控制
管理麻烦,新建repo,或者增加成员比较麻烦,尤其是修改的时候
方案二 使用Gitolite服务
Gitolite 也是基于SSH协议构建的方便管理git repo的应用,可以通过其源码安装。
安装
安装按照官方给定的文档就可以轻易的实现:
$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub
如果执行最后一条命令的时候,gitolite不识别,则可以通过下面两种方式解决:
将gitolite添加到PATH里面
通过$HOME/bin/gitolite setup -pk YourName.pub 执行
至此,gitolite在服务端,搭建完毕,会发现此时HOME目录下增加了一个文件projects.list和一个目录repositories,后者就是我们的版本仓库了,每当新建repo的时候,就会在其中创建。
使用
是时候说一下gitolite的管理模式了,他会创建一个gitolite-admin的repo,管理员就是通过像这个repo提交配置文件而实现对git服务器的控制的。
首先,将这个repo导入到我们的workspace:在此之前,需要配置本地的ssh,gitolite要求管理员的本地密钥和其注册公钥的名字一致,比如安装的时候指定 -pk后面为 admin.pub 则管理员本地需要由admin对应的私钥。我们可以通过~/.ssh/config来进行配置(注:有些系统可以用conf,Mac OSX 下无效,只能用config)。
host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin
这样,当访问gitolite的时候就会自动根据配置文件执行,配置完成后可以根据下面的命令,将gitolite-admin转移到本地。
git clone gitolite:gitolite-admin.git
克隆完成后,可以发现,gitolite-admin下面有两个目录,其中conf保存配置文件,可以通过编辑里面的gitolite.conf文件,管理git服务器,keydir目录保存用户的公钥pub文件。
当讲修改后的repo 提交的时候,gitolite就会自动的应用这些配置,管理过程就方便了很多。
配置规则
打开gitolite.conf文件可以看到其中的示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:
repo foo
RW+ = alice
RW = bob
R = carol
上面的配置文件就是新建了一个repo foo,并且添加了三位项目成员,每一个人的权限不同。提交push后,管理便生效了。
可视化
可能会需要一个web界面来管理这些项目,目前知道的有三种方式:
git源码中自带的组件,cgi脚本实现,使用gitolite服务
gitlab开源框架,基于ROR,新版本不再使用gitolite服务
FB开源PHP框架 phabricator,功能高端上档次
② 新人刚接触gitlab。求问怎么使用浏览器访问GitLab,网址是什么
用浏览器访问GitLab具体有3个步骤。
1、打开浏览器,在搜索栏里输入“GitLab”,如下图所示。
③ gitlab重新加载报错
在本版本的gitlab中,在/opt/gitlab*中找不到uninstall文件,无法通过该方法卸载gitlab
经过摸索,可通过以下方法彻底卸载gitlab
sudo gitlab-ctl stopsudo gitlab-ctl uninstallsudo gitlab-ctl cleansesudo rm -rf /opt/gitlab1234
之后通过reboot命令重启系统即可
其中,可通过sudo gitlab-ctl help来获取相关命令
sudo gitlab-ctl uninstall,关于其的说明是
Kill all processes and uninstall the process supervisor (data will be preserved).
但在实际操作中,只通过uninstall无法彻底卸载gitlab
安装方法
bitnami的下载链接https://bitnami.com/stack/gitlab/installer中只提供了虚拟机版本及云服务器版本,本人没找到.run的安装文件,于是只能通过官方的方法安装。
本人是在amazon的云服务器上进行安装,由于Ram只有1GB,不符合gitlab的最低运行要求,若直接安装,会使得服务器卡顿不堪,难以使用,且gitlab也无法正常运行,进入gitlab的服务网页,会提示
502 Whoops, GitLab is taking too much time to respond:
无法使用,于是得先配置虚拟内存
另外,在服务器刚启动时,也会返回这个提示,是因为gitlab系统还没跑起来,稍等片刻即可
sudo dd if=/dev/zero of=/swapfile bs=1024 count=2048ksudo mkswap /swapfilesudo swapon /swapfilesudo vim /etc/fstab
++/swapfile none swap defaults 0 012345
++后面的内容是添加到fstab文件中的内容
此处配置的虚拟内存(交换文件)是2GB,gitlab最低的运行内存要求是2GB,读者们可以根据自己的硬盘情况和内存情况进行试验
由于新版gitlab占用内存变大,系统默认的在内存占用超过40%时启用swap不太合适,现象就是通过putty连接服务器过慢,打开gitlab的网页过慢等,影响到使用
于是可以把该阈值调整为50%。
方法是修改/etc/sysctl.conf文件
sudo vim /etc/sysctl.conf1
找到
vm.swappiness=601
将60,改为50
若找不到,则在文件最后一行添加上即可
vm.swappiness=60的意思是,当内存占用超过40%时启用swap
经测试,在本测试机上若按网上通常说的,把该阈值改为90%,是会出现访问慢的问题,读者需要根据自己的机器情况进行相关的调整
此外,gitlab占用80端口提供网页服务,若需要与其他web服务器同时运行,需要进一步的设置
进入官方安装向导https://about.gitlab.com/downloads/
选择系统平台
根据提示输入终端命令
终端命令如下:
- sudo apt-get install curl openssh-server ca-certificates postfix
- curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo apt-get install gitlab-cesudo gitlab-ctl reconfigure1234
域名(ip)配置
- cd /etc/gitlabsudo vim gitlab.rb
- /external_url123
- sudo postfix flush #立即发送队列里的所有邮件sudo postqueue -p #显示队列里的邮件列表sudo postsuper -d ALLsudo postsuper -d MessageID #删除特定ID的邮件sudo postfix reload #重新加载配置文件echo "This is the content" | mail -s "Mail Subject" target_address
- #echo后的双引号内接邮件内容,"Mail Subject"双引号内是主题的名称,target_address处填写目的邮箱地址12345678
本人使用amazon的云服务器,下载速度有十几MB/s,无需担心网速的问题,安装过程及其快速,gitlab是使用nginx作Web服务器,其中配置有redis等服务
初次通过网页登录gitlab,选择login,将提示修改初始密码,修改过后,可使用root作为用户名以及刚修改的密码来登录gitlab
配置方法(ubuntu)
把external_url项修改为自己的域名或者是ip地址
/var/log/mail.log``/var/log/mail.err里面分别有日志和错误原因,内容复杂,比较难看清楚
配置文件只有一个:/etc/postfix/main.cfg
但其中的内容基本不用改,我改了好像也没什么影响
而对发件人有影响的是/etc/hostname,其中放着本机的名称,修改它可使得测试时的发件人改变
在本机上,若hostname是ip-xxx-xx-xx-xxx,发件人地址则为[email protected],若为其他,则发件人地址为’ubuntu@$hostname’,需要重启才能生效,其中ubuntu是服务器的登录用户名
无论如何,测试邮件都可发送,只是时间长短的问题,可查看邮件队列里的邮件,以及目标邮件的垃圾箱和被拦截邮件列表
④ 迅雷链接转为普通链接
迅雷链接转为普通链接,可以用转换工具来实现,比如迅雷在线转换工具。
迅雷使用先进的超线程技术基于网格原理,能够将存在于第三方服务器和计算机上的数据文件进行有效整合,通过这种先进的超线程技术,用户能够以更快的速度从第三方服务器和计算机获取所需的数据文件。这种超线程技术还具有互联网下载负载均衡功能,在不降低用户体验的前提下,迅雷网络可以对服务器资源进行均衡,有效降低了服务器负载。
⑤ 怎么使用浏览器访问GitLab,网址是什么
用浏览器访问GitLab具体有3个步骤。
1、打开浏览器,在搜索栏里输入“GitLab”,如下图所示。
⑥ 有人用国内的代码托管服务吗哪个体验比较好
随着互联网的高速发展,进入互联网行业的人越来越多,而且随着开源共享的风气越来越好,因此很多人都会将自己的一些成果上传到网站上与其他人共享,在共享的同时,也可以得到其他人的反馈意见,因此开源可以促进我们一起进步。
在互联网上有专门的网站可以帮助我们来管理共享这些信息,对于我们程序员来说,能够获取到源码对我们的收益很大,其中比较大型的的网站有GitHub,码云等,而且现在阿里,腾讯,网络,华为等都有自己的代码托管仓库。
GitHub代码托管服务平台,现在已经被微软收购,但是GitHub中一包含了全世界很多优秀的开源项目,我们可以从GitHub获取到很多很多优秀的开源项目来进行学习,当然我们也可以将自己的项目上传上去与他人分享。
GitHub中的代码几乎涵盖了互联网所有的行业,所以在GitHub上我们基本上都可以找到关于自己想要的内容。
GitHub最开始并没有免费的私有仓库,但被微软收购之后,个人用户可以创建私有仓库,并且不限制个数,只是私有仓库同时协作工作者只能有三个人,但这个也很大的方便了我们的使用。
Gitee(码云)是我们国内的一个代码托管平台,由于GitHub属于国外的网站,因此我们国内用户访问的时候,经常会很慢,很影响体验效果,但是Gitee属于我们国内自己的网站,因此不存在访问速度慢的问题。
Gitee中也包含了很多的优秀项目,由于是国内网站,下载速度也会很的块,Gitee中由于大多都是国人共享的项目,因此很多都是中文说明,对我们来说也超级友好。
Gitee中也可以创建免费不限个数的私有仓库,如果想要创建一些私有代码库,Gitee是一个不错的选择,主要原因也在于他的访问速度。
除了GitHub和Gitee之外,阿里,腾讯,网络,华为等企业也给我们提供了一些代码管理平台,但这些主要面向群体是企业,对于个人来说,Gitee和GitHub是一个相对比较好的选择。
除了使用互联网中的代码托管平台,我们也可以自己搭建一台私有的Git服务器,将代码保存在我们自己的服务器上面。
搭建私有代码托管服务器这里介绍几种:
1. 使用git搭建,因为不管GitHub还是Gitee等其他代码托管平台基本上都是基于Git进行开发的,因此我们可以直接自己使用Git来搭建一台自己的代码服务器
2. Gitlab是一款比较大型的管理平台,除了可以对代码进行管理之外,也可以有持续交付等高级功能,Gitlab提供社区版本来方便我们个人的搭建。
3. Gogs,一个开源的代码托管项目,使用go进行编写,相比Gitlab而言,Gogs很的轻量,整个项目也很的小,安装起来也很方便,因此很适合我们个人的使用。
⑦ GitLab搭建个人(或公司)版本控制系统
说明:Git,Github,GitLab三者关系。
Git - 是一款自由和开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(svn是集中化的版本控制系统)。
GitHub - 是一个面向开源及私有软件项目的托管平台(也就一个网站),提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等。它可以托管各种git库,并提供一个web界面。被戏称为“全世界最大的同性交流社区”。
GitLab - 基于Git的项目管理软件。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
当然啦国内开源中国出的“码云”,第一次听得人还以为是“马云”。我酱紫。它跟Github功能差不多,都能建立公有和私有的仓库。不过嘛感觉有点封闭,社区没有Github热闹。
有的人就说啦,我完全可以在Github或者GitLab上做远端代码仓库,为啥还要倒腾GitLab自建代码托管系统?就一个字: “代码安全性”(公司保密规定)。 对于公司来说,GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色:
一、自建代码托管系统都需要做些什么工作?
1. 选择开源软件
Git 大家族的 GitLab ,它提供了完善的用户权限管理,除了涵盖 Git 所有的功能,同时又提供方便的后台管理。分别有CE(社区版)、EE(企业版)、OM(RPM 包完整版)三个版本,目前市面上开发者们的普遍选择是使用 CE 版的源码,成本较低且相对方便。
2. 硬件设施方面
如果是对于中小型企业来讲,自建机房一般成本较高,所以除非是大型集团企业。现在市面上存在太多的云服务器厂商,平均价格多在 5000元/年以上,都是不错的选择。
可能遇到的坑:
3.由于个人眼界以及信息不对称,目前大部分公司都是在公司局域网内自行用GitLab搭建代码托管系统。部署Gitlab 是对服务器有配置要求的建议是CPU两核,内存4G以上。个人经验,勿喷啦。
二、搭建过程(这里仅是作者接触的,其实还有很多更高级的盘法)
Gitlab的服务构成
1.搭建方法分为:传统方式安装GitLab和Docker安装(推荐)。
2.传统安装过程(平台使用centos7安装)
安装和配置必要的依赖项:
安装Postfix以发送通知邮件:
在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
添加GitLab镜像源并安装gitlab服务器:
注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口。
重置并启动GitLab:
访问 GitLab页面:如果没有域名,直接输入服务器ip和指定端口进行访问
获取/修改超级管理员root的密码:
最后我们使用默认的账号:root 和刚刚设置好的密码12345678进行登录。
后面的步骤配置SSH key,git Bash的global config等初始化设置跟GitHub一样。可是还有一点就是“汉化”。(英文不好的小伙伴)但是有一定风险,后面我打开报502错误。有两种方法:用git比对出英文与中文的补丁,将英文打补丁。第二是直接下载中文版,替换英文。
3.Docker安装(推荐)
(1)配置docker镜像
直接从 docker hub 获取的话速度非常慢,所以需要配置一个镜像。我使用的是 cloud.io提供的加速器,速度很快。
(2)获取 GitLab 镜像
下载完成后,查看镜像列表
(3)启动容器
3个--publish指定容器与主机的端口映射,分别是 http、https、ssh
3个--volume指定数据卷的映射,分别是 gitlab 的 配置、日志、数据
(4)配置外部访问 URL
修改 gitlab 配置文件:
找到 external_url 这一项修改为自己服务器的访问地址:
保存后,重启容器
(5)访问
初次访问时,gitlab 要求我们重置管理员密码,修改完成后登录。默认用户root。
当然以上为个人实验,公司里面大部分为CTO等大佬已经搭建完毕,我们主要是折腾。
最后推荐个人用很顺手的工具: SourceTree (可视化界面的Git),当然啦要想成为大牛或者装13也好,还是从Git Bash里敲命令行。
⑧ 如何在ubuntu server 14.04下安装gitlab中文版
gitlab是基于RubyonRails的,安装和配置非常麻烦,不过有傻瓜安装包,https://about.gitlab.com/downloads/,或者,https://bitnami.com/stack/gitlab/installer。但是这两个包都是英文界面的,gitlab把界面提示写在每一个rb文件里了,所以,要用中文版的不能像redmine那样设定一下就行了。
幸好,还是有无私的大侠把gitlab给汉化了:https://larryli.cn/gitlab,代码地址:https://gitlab.com/larryli/gitlab。
所以本文要做的事情是,不安装傻瓜包,从源码安装gitlab。
gitlab官方有一个说明文档:http://doc.gitlab.com/ce/install/installation.html,本文基本按照这个文档来的。所不同的是,本文用的是apache,不是nginx。
安装步骤有:
1.依赖包
2.ruby
3.用户创建
4.数据库初始化
5.redis
6.gitlab源码
7.apache
本文可能会用到VPN连接,在命令行下创建VPN连接的方法如下:
sudoapt-getinstallpptp-linux
sudopptpsetup--createVPN名称--server服务器地址--username用户名--password密码[--encrypt]--start
以上命令会创建一个设备,如果没有其他的拨号设备,这个设备会是ppp0,用ifconfig可以看到,“--encrypt”选项可选,因为有的服务器不支持,会提示,创建时带上“--start”选项可以看到连接的情况。
pptpsetup创建的VPN连接重启后会失效,如果想在不重启的情况下删除VPN连接:
sudopptpsetup--deleteVPN名称
创建VPN连接后还需要使能,并且添加到路由列表:
sudoponVPN名称
sudorouteadddefaultdevppp0
禁用VPN连接的方法是:
sudopoffVPN名称
下面开始正文:
1.依赖包
我装的是ubuntuserver14.04,安装的时候可以选是否安装LAMP(Linux+Apache+Mysql+PHP),如果没装,可以用下面的命令装:
sudotaskselinstalllamp-server
安装的时候会提示输入MySQL的root密码,下面要用。
接下来是依赖关系:
sudoapt-getinstallflexbisonrubybuild-essentialzlib1g-devlibyaml-devlibssl-devlibgdbm-devlibreadline-devlibncurses5-devlibffi-devcurlopenssh-serverredis-servercheckinstalllibxml2-devlibxslt-devlibcurl4-openssl-devlibicu-devlogrotatepython-docutilspkg-configcmakelibkrb5-devnodejsgit-core
注意:这里面装了ruby,应该是1.9.1版本的,gitlab需要2.0以上的ruby,但是安装2.0以上的ruby需要低版本的ruby,所以我们先装上,一会儿卸掉。另外,ubuntu14.04的软件库里有ruby2.0,但是实测不能用,所以还是从源码装ruby吧。
2.ruby
下载,编译,安装(安装前删掉ruby1.9.1):
curl-L--progresshttp://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz|tarxz
cdruby-2.1.5
./configure--prefix=/usr--disable-install-rdoc
make
sudoapt-getautoremoveruby
sudomakeinstall
然后安装bundler:
sudogeminstallbundler--no-ri--no-rdoc
3.用户创建
为gitlab创建一个git用户:
sudoadser--disabled-login--gecos'GitLab'git
4.数据库初始化
官方指南用的是PostgreSQL,不过官方也有MySQL的说明:
http://doc.gitlab.com/ce/install/database_mysql.html
sudoapt-getinstall-ymysql-servermysql-clientlibmysqlclient-dev
mysql-uroot-p
输入MySQL的root密码登陆,然后:
mysql>CREATEUSER'git'@'localhost'IDENTIFIEDBY'$password';
记得把上面这句的"$password"换成实际的密码,然后:
mysql>SETstorage_engine=INNODB;
mysql>CREATEDATABASEIFNOTEXISTS`gitlabhq_proction`DEFAULTCHARACTERSET`utf8`COLLATE`utf8_unicode_ci`;
mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,LOCKTABLESON`gitlabhq_proction`.*TO'git'@'localhost';
mysql>q
5.Redis
Redis貌似是用来存key的数据库吧,不知道,反正按步骤安装:
sudoapt-getinstallredis-server
sudocp/etc/redis/redis.conf/etc/redis/redis.conf.orig
sed's/^port.*/port0/'/etc/redis/redis.conf.orig|sudotee/etc/redis/redis.conf
echo'unixsocket/var/run/redis/redis.sock'|sudotee-a/etc/redis/redis.conf
echo'unixsocketperm770'|sudotee-a/etc/redis/redis.conf
sudoserviceredis-serverrestart
sudousermod-aGredisgit
6.gitlab源码
gitlab源码默认是安装在/home/git/gitlab,如果要更改,请参照官方手册。获取中文版源码的过程如下:
cd/home/git
sudo-ugit-Hgitclonehttps://gitlab.com/larryli/gitlab.git
不知道是因为GFW还是什么,gitclone这个版本库可慢可慢了,我用了VPN,速度会快点。
gitclone完以后可以checkout你想要的版本,在本文编写的时间(2015年4月22日),可以:
sudo-ugit-Hgitcheckout7-7-zh
然后配置源码
cd/home/git/gitlab
sudo-ugit-Hcpconfig/gitlab.yml.exampleconfig/gitlab.yml
sudochown-Rgitlog/
sudochown-Rgittmp/
sudochmod-Ru+rwX,go-wlog/
sudochmod-Ru+rwXtmp/
sudo-ugit-Hmkdir/home/git/gitlab-satellites
sudochmo+rwx,g=rx,o-rwx/home/git/gitlab-satellites
sudochmod-Ru+rwXtmp/pids/
sudochmod-Ru+rwXtmp/sockets/
sudochmod-Ru+rwXpublic/uploads
sudo-ugit-Hcpconfig/unicorn.rb.exampleconfig/unicorn.rb
sudo-ugit-Hcpconfig/initializers/rack_attack.rb.exampleconfig/initializers/rack_attack.rb
sudo-ugit-Hgitconfig--globaluser.name"GitLab"
sudo-ugit-Hgitconfig--globaluser.email"[email protected]"
sudo-ugit-Hgitconfig--globalcore.autocrlfinput
sudo-ugit-Hcpconfig/resque.yml.exampleconfig/resque.yml
当然,你可以把[email protected]改成你的email;上面的那些yml文件里面的配置基本都不用更改;然后,配置数据库用户名和密码:
sudo-ugitcpconfig/database.yml.mysqlconfig/database.yml
sudo-ugit-Heditorconfig/database.yml
sudo-ugit-Hchmodo-rwxconfig/database.yml
然后,安装gems:
sudo-ugit-Hbundleinstall--deployment--
这一步必须使用VPN,因为万恶的GFW屏蔽了rubygems.org,所以会提示connectionresetbypeer之类的,这部时间也会比较久,如果你的机器是多核的,也可以加上和make相同-jN参数,N等于核数。
(2015年5月2日追加)
发现淘宝做了个rubygrems.org的国内镜像,http://ruby.taobao.org/,可以参照上面的内容设置,加快gems安装速度。
再接下来安装gitlabshell:
sudo-ugit-Hbundleexecrakegitlab:shell:install[v2.6.0]REDIS_URL=unix:/var/run/redis/redis.sockRAILS_ENV=proction
sudo-ugit-Heditor/home/git/gitlab-shell/config.yml
把gitlab的url改成http://localhost/或者你的域名。
在接下来初始化数据库:
sudo-ugit-Hbundleexecrakegitlab:setupRAILS_ENV=proction
加入启动项:
sudocplib/support/init.d/gitlab/etc/init.d/gitlab
sudoupdate-rc.dgitlabdefaults21
初始化日志:
sudocplib/support/logrotate/gitlab/etc/logrotate.d/gitlab
检查应用状态:
sudo-ugit-Hbundleexecrakegitlab:env:infoRAILS_ENV=proction
编译附件:
sudo-ugit-Hbundleexecrakeassets:precompileRAILS_ENV=proction
启动gitlab服务:
sudoservicegitlabstart
7.apache
下载apache的配置文件:https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/apache/gitlab-apache2.4.conf
将其中的“ProxyPassReverse
http://gitlab.example.com/”改成“ProxyPassReverse
http://localhost/”或者你的域名,将其中的“/var/log/httpd/logs/”改为“/var/log/apache2/”。
用命令来说:
wgethttps://gitlab.com/gitlab-org/gitlab-recipes/raw/master/web-server/apache/gitlab-apache2.4.conf
mvgitlab-apache2.4.conf001-gitlab.conf
editor001-gitlab.conf(进行上述修改)
sudocp001-gitlab.conf/etc/apache2/sites-available
cd/etc/apache2/sites-enabled
sudorm000-default.conf
sudoln-s../sites-available/001-gitlab.conf001-gitlab.conf
另外,还需要使能代理模块以实现反向代理功能,不然会提示“ProxyPassReverse”无效之类的。
cd/etc/apache2/mods-enabled
sudoln-s../mods-available/proxy.confproxy.conf
sudoln-s../mods-available/proxy.loadproxy.load
sudoln-s../mods-available/proxy_connect.loadproxy_connect.load
sudoln-s../mods-available/proxy_http.loadproxy_http.load
sudoln-s../mods-available/rewrite.loadrewrite.load
重启apache:
sudoserviceapache2restart
然后,检查下配置是否正确:
sudo-ugit-Hbundleexecrakegitlab:checkRAILS_ENV=proction
如果都是绿色的结果,那就可以访问了。登陆用户名:root,初始密码:5iveL!fe
最后配置一下邮件,修改/home/git/gitlab/config/gitlab.yml,里面的“email_from:”为一个有效的email地址;修改/home/git/gitlab/config/environments/proction.rb,里面的“config.action_mailer.delivery_method=”为“:smtp”;最后:
cd/home/git/gitlab/config/initializers
sudo-ugit-Hcpsmtp_settings.rb.samplesmtp_settings.rb
然后把文件的里的内容修改正确了,再重启一下gitlab服务就行了:
sudoservicegitlabrestart
⑨ 为什么自建的本地gitlab服务器打开很慢
就需要使用ssh-keygen上传公钥,使用非对称加密传输。下面讲述如何上传你的ssh公钥... 3.1.2保存sshkey到gitlab 在面板上依次点击Profile Settings – SSH Keys – Add SSH K
⑩ 如何在mac上使用git连接私有的gitlab服务器
首先要 ssh远程登陆工具比secureCRT等
案 基于SSH直接搭建
Git支持协议主要四种:
本: 需要文件共享系统权限控制
HTTP:速度慢
SSH:同支持读写操作支持匿名读取(Git默认协议)
GIT:快
搭建难易程度特点综合筛选合适ssh并且部服务器基本都ssh服务所省少麻烦基本思路给每ssh帐号家通用户名口令访问显选择做些余并且于repo权限难管理
使用Github候利用rsa.pub公钥/私钥式服务端拥用户公钥(*.pub)跨繁琐口令直接认证提交服务端根据同用户身份其权限着更加灵管理我采用种式
服务端
使远程库访问更加直观先服务器创建名git账户clone候面格式:
git clone git@server:some.git
创建新用户创建repo等目录
$sudo adser git
$su git
$cd ~
$mkdir repos
HOME.ssh目录没则创建创建authorized_keys文件文件用管理所git用户公钥面用户于项目着R+W权限
客户端
于每客户端我需要密钥公钥Github用户.ssh目录定id_rsa.pubid_rsa两文件其第系统公钥另自要保存密钥没终端执行:ssh-keygen完自公钥提交给管理员注册行
完
步管理员团队员公钥添加authorized_keys比同susie加入:
$ cat susie.pub >> authorized_keys
至家通git@server:repos/some.git访问公共版本库
问题
安全问题员登录git用户shell,细节权限支等控制
管理麻烦新建repo,或者增加员比较麻烦尤其修改候
案二 使用Gitolite服务
Gitolite 基于SSH协议构建便管理git repo应用通其源码安装.
安装
安装按照官给定文档轻易实现:
$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub
执行条命令候gitolite识别则通面两种式解决:
gitolite添加PATH面
通$HOME/bin/gitolite setup -pk YourName.pub 执行
至gitolite服务端搭建完毕发现HOME目录增加文件projects.list目录repositories,者我版本仓库每新建repo候其创建
使用
候说gitolite管理模式创建gitolite-adminrepo管理员通像repo提交配置文件实现git服务器控制
首先repo导入我workspace:前需要配置本ssh,gitolite要求管理员本密钥其注册公钥名字致比我安装候指定 -pk面 admin.pub 则管理员本需要由admin应私钥我通~/.ssh/config进行配置(注:些系统用confMac OSX 效能用config).
host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin
我访问gitolite候自根据配置文件执行配置完根据面命令gitolite-admin转移本
git clone gitolite:gitolite-admin.git
克隆完发现gitolite-admin面两目录其conf保存配置文件我通编辑面gitolite.conf文件管理git服务器keydir目录保存用户公钥pub文件
我讲修改repo 提交候gitolite自应用些配置管理程便
配置规则
打gitolite.conf文件看其示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:
repo foo
RW+ = alice
RW = bob
R = carol
面配置文件新建repo foo并且添加三位项目员每权限同提交push管理便效
视化
我能需要web界面管理些项目我目前知道三种式:
git源码自带组件cgi脚本实现使用gitolite服务
gitlab源框架基于ROR新版本再使用gitolite服务
FB源PHP框架 phabricator功能高端档