gitlab是仿github的代码托管平台软件,非常适合搭建私人代码管理平台。国内的开源中国(http://www.oschina.net)的代码管理平台便是基于gitlab搭建。

gitlab的官方网站是 https://gitlab.com,提供社区版(开源、免费)、企业版和云平台。免费开源的社区版可以支持10000个代码仓库,企业版提供更多功能和高级特性,但是需要额外付费。对个人和中小规模内部使用,社区版已经完全足够。

下面是在CentOS上安装和配置gitlab的全过程:

  1. 安装

    yum install postfix  
    chkconfig postfix on  
    wget https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.9.2_omnibus-1.el6.x86_64.rpm  
    rpm -i gitlab-7.9.2_omnibus-1.el6.x86_64.rpm
    

    请将上述链接中的版本号改成最新版本(gitlab毫无疑问的版本帝,三天一小更,五天一大更…)

  2. 配置 gitlab的主要配置文件为 /etc/gitlab/gitlab.rc,最重要的配置项为最开始的external_url。此项配置是外网访问的url,向用户发送邮件中附带的链接,点击之后需要调整服务器。

    gitlab内置nginx软件,以提供web平台访问。为了不影响服务器上的其他站点,也可以使用系统的nginx,这就要将gitlab内置的nginx禁用掉。在文件中配置以下行:

    nginx['enable'] = false

    这样,gitlab不会启动自带的nginx。为了支持web平台的访问,需要配置nginx以实现对gitlab的支持。 将 /opt/gitlab/embedded/service/gitlab-rails/lib/support/nginx 文件拷贝到 /etc/nginx/conf.d 下,改名为 gitlab.conf。对文件中的监听套接字更改如下:

    upstream gitlab {
        server unix:/var/opt/gitlab/gitlab-rails/sockets/gitlab.socket fail_timeout=0;
    }
    

    接着将root指令的位置更改为:

    root  /opt/gitlab/embedded/service/gitlab-rails/public;
    

    另外由于gitlab的web资源默认用户是gitlab-www,为了让nginx的进程能访问资源,可将nginx的进程用户添加到gitlab-www用户组:

    usermod -G gitlab-www apache
    

    将上述命令中的apache改成nginx的当前运行用户。 完成上述操作后,使用gitlab-ctl完成最终配置并启动:

    gitlab-ctl reconfigure
    gitlab-ctl start
    

  3. 访问web平台 打开gitlab服务器所在地址,应该出现如下类似界面:

gitlab  

使用初始的root用户登陆,默认密码为 5iveL!fe。首次进入需要更改密码,然后接下来是正常使用了。