搭建gitlab服务

服务器快速搭建gitlab方法

能够参考gitlab中文社区的教材html

中文网:https://www.gitlab.com.cn/ins...nginx

文档:https://gitlab.com/gitlab-org...git

1.什么是gitlab版本管理

太过官方的解释,随便百度一下一堆。。。我也Google一下。。web

GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可经过Web界面进行访问公开的或者私人项目。它拥有与Github相似的功能,可以浏览源代码,管理缺陷和注释。能够管理团队对仓库的访问,它很是易于浏览提交过的版本并提供一个文件历史库。团队成员能够利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片断收集功能能够轻松实现代码复用,便于往后有须要的时候进行查找。redis

其实我感受最简单暴力的理解就是:Gitlab 就是以网站的形式将 Git 服务端可视化;apache

2.gitlab的安装

其实gitlab能够很复杂也能够很简单:centos

第一种方法:

说白了其实gitlab就是一个web端,打散后其实也是由(nginx,gitaly,redis,gitlab-workhorse...)等这些东西构成;因此你能够一个个组装一个个编译安装;这样你也能够深刻去了解gitlab,同时也能够达到最简化(将没必要要的东西去掉)bash

第二种方法:

rpm 安装。。。官方和社区都有提供。。服务器

若是你是爱折腾的小伙伴,那你能够尝试第一种途径。。途中你会发现各类挑战,各类问题。。而后你一一努力解决,从中获取巨大的成就感。。最后放弃了,仍是以为 用rpm安装算了。。。(我就是这样!!O(∩_∩)O哈哈~)。。。ssh

下面主要是第二种的安装介绍:

我用的是 centos7 的环境

1.安装并配置必要的依赖关系

若是你想使用 Postfix 发送邮件,请在安装过程当中根据提示选择 'Internet Site'。 你也能够用 Sendmail 或者 配置一个自定义的 SMTP 服务 并 把它做为一个 SMTP 服务器。

在 CentOS 系统上,下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。

sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2. 添加 GitLab 镜像源并安装
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

若是你不太习惯使用命令管道的方式安装镜像仓库,你能够在这里找到 完整的安装脚本 或者 选择系统对应的安装包 使用下面的命令手动安装。

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-XXX.rpm
rpm -i gitlab-ce-XXX.rpm

我就是用这种。。。

3. 配置并启动 GitLab
sudo gitlab-ctl reconfigure
4.经过域名能够访问

第一次访问 GitLab,系统会重定向 url 到重置密码的页面,你须要输入初始化管理员帐号的密码。 设置完成后,系统会重定向到登陆界面,你就可使用刚才输入的密码登陆系统了。

系统默认的管理员帐号为 root, 登陆系统后,你能够修改管理员帐号为本身喜欢的帐号

2.端口冲突问题

装好后,你会发现一个问题;gitlab 实际上是个web;他自带了个nginx;若是你自己也是一台服务器的话,上面也会装有 apache 或者 nginx 等;那么端口就冲突了;

以上的状况解决方案也有连个:(我就想到这两个)

第一种:
禁用 gitlab 自带的 nginx,使用咱们本身安装的 nginx。。。(然而我不太建议小白用这个方法;)
第二种:
更改gitlab自带nginx的默认端口,域名加端口访问就好;固然若是你是有强迫症的朋友(我就是不要输入端口),也不是没有办法。你能够在你的服务器上配置代理服务器;

我用的就是第二种方法(我服务器上用的是nginx):

1.修改 gitlab 配置

官方安装方式下,配置文件是/etc/gitlab/gitlab.rb

- gitlab nginx 端口监听修改
        nginx['listen_port'] = 端口号
- gitlab 的域名
        external_url '域名'

修改完毕后重置下gitlab:

gitlab-ctrl reconfigure

2.添加 nginx 代理服务器配置

upstream  git{
    # 域名对应 gitlab配置中的 external_url
    # 端口对应 gitlab 配置中的 nginx['listen_port']
    server  域名:端口;
}


server{
    listen 80;
    # 此域名是提供给最终用户的访问地址
    server_name 域名;

    location / {
        # 这个大小的设置很是重要,若是 git 版本库里面有大文件,设置的过小,文件push 会失败,根据状况调整
        client_max_body_size 50m;

        proxy_redirect off;
        #如下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺乏
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 gitlab 内置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}
相关文章
相关标签/搜索