前言
因工作中使用git作为版本控制工具,需要对git的权限等做有效管理,故需要搭建一个自己的代码托管仓库。最初想选择gitolite,后来发现有另外一个开源项目Gitlab更好用,并且据说很多大型互联网公司也都搭建并使用gitlab进行代码托管,果断转向gitlab。
Gitlab版本管理
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
官方提供了gitlab搭建后的Demo,可以试用下看看。
安装GitLab CE Omnibus包
Gitlab提供3种安装方法:
Omnibus包
https://about.gitlab.com/downloads/(适合新手,安装简单方便)手动安装
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md(深入了解)docker镜像安装
https://github.com/sameersbn/docker-gitlab (不太了解)
安装步骤
下面就来介绍下Omnibus包 的安装方法:
进入官方文档,选择服务器系统及版本号,按要求一步步安装, 本人以ubuntu16.04为例:
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 bash
sudo apt-get install gitlab-ce
(注:此操作需要翻墙不过gitlab还是比较了解国内的情况,所以提供了清华镜像,可以通过清华镜像下载安装https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)修改 /etc/gitlab/gitlab.rb 中的 external_url
external_url=”your server ip”
(特别注意: 官方给的例子是external_url “your server ip”, 中间是空格不是”=”, 但我实际使用中,如果不用”=”号下一步会报错。 原因不明。 这块太坑了,为此我多折腾了好几个小时)/etc/gitlab/gitlab.rb 还有其他很多配置,(比如数据库,支持 MySQL 和 PostgreSQL ,默认是PostgreSQL)可自行参考文档设置。(在此均不设置)
sudo gitlab-ctl reconfigure (略等几分钟)
完成
打开浏览器登录 http://xxxx(external_url)
浏览器打开后会让重置root账户的密码,重置。 输入用户名 root 和密码 登录成功(管理员)。
PS: 这里又有个坑,官方文档说打开浏览器后,输入用户名root, 密码默认5iveL!fe后就可以直接登录。
但我输入网址后就必须重置密码,这点跟文档说法不一致, 导致我一度以为自己是不是哪里搞错了。
至此gitlab便搭建成功了。
注意: 如果要修改了/etc/gitlab/gitlab.rb中的配置,必须重新运行 sudo gitlab-ctl reconfigure才能使设置生效。