一、Git、GitHub、GitLab的区别

Git是版本控制系统,Github是在线的基于Git的代码托管服务。

GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,只有付费账户可以创建私有的代码仓库。

Gitlab解决了这个问题, 可以在上面创建免费的私人repo。

官方安装介绍:https://www.gitlab.com.cn/installation/

说明一下,官网提供GitLab的两种版本:gitlab-ee版本(企业版)和gitlab-ce版本(社区版),社区版是免费的。

二、GitLab Server搭建

官方说明:https://docs.gitlab.com.cn/ce/install/requirements.html#cpu,安装GitLab的硬件需求

我用的是2G内存的腾讯云服务器,自己添加了4G的swap,感觉勉强能用

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

yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python   # 10.x以后开始依赖 policycoreutils-python,之前的版本不需要安装

# 启动 postfix

systemctl start postfix

启动时遇到错误:/usr/sbin/postconf: fatal: parameter inet_interfaces: no local interface found for ::1

解决方法参考自博客:https://www.cnblogs.com/byfboke/p/9843069.html

启动成功时如下图所示:

# 加入开机启动

systemctl enable postfix

(2)安装GitLab:

在GitLab官网:https://about.gitlab.com/install/,点击下面的链接,访问清华大学开源软件镜像站:

根据下面的说明,配置gitlab-ce的yum源:

用yum安装时,可以看到是最新版本的gitlab-ce

下面是安装成功的界面:

查看GitLab的版本号:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

(3)GitLab的配置:

GitLab的配置文件 /etc/gitlab/gitlab.rb, 编辑如下:

vim /etc/gitlab/gitlab.rb

external_url 'http://gitlab.example.com'这一行中的gitlab.example.com字符串替换成你自己服务器的域名或者IP地址,然后进行编译配置。

使用 gitlab-ctl reconfigure 命令自动配置,并安装数据库,初始化信息。(第一次使用配置时间较长,耐心等待)

gitlab-ctl reconfigure

。。。中间输出信息省略。。。

初始化配置成功,如下图所示:

使用 gitlab-ctl start 命令启动gitlab服务,如下图所示:

free -h 命令查看gitlab启动后的内存使用情况

下面的截图是安装GitLab前的内存使用情况:

这是启动GitLab后的内存使用情况:

这时在浏览器输入服务器的域名或者IP地址,访问自己搭建的GitLab

这里需要注意:GitLab启动可能需要几分钟的时间,我刚启动后,在浏览器访问出现如下图所示的“502”,稍等片刻,再次访问就好了,要是没好,请检查内存是否够用,相关服务是否都在运行等问题。

还需要注意一点:GitLab默认使用8080端口,要是启动GitLab时8080端口已经被其他程序使用,访问时也会一直显示“502”。

要是更改GitLab的端口:在/etc/gitlab/gitlab.rb 中做出如下修改

unicorn['port'] = 端口号

再执行命令

gitlab-ctl reconfigure

gitlab-ctl start

成功访问到的页面:

能访问到说明GitLab安装成功!

(4)设置邮箱,修改配置文件,添加SMTP邮件功能

官方说明:https://docs.gitlab.com.cn/omnibus/settings/smtp.html#testing-the-smtp-configuration

gitlab-ctl stop   # 停止GitLab

vim /etc/gitlab/gitlab.rb   # 进入GitLab的配置文件

需要修改下面的两处配置,默认如下图所示:

修改后的截图:(我用的SMTP服务器是网易的)

配置完后,重新执行下面的命令:

gitlab-ctl reconfigure

gitlab-ctl start

GitLab启动起来后,可以用Rails控制台验证邮件是否能发送成功。 在GitLab服务器上,执行 gitlab-rails console 命令进入控制台。 然后在控制台提示符后输入下面的命令发送一封测试邮件:

Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

注意:执行 gitlab-rails console 命令后可能需要等待一下,才会出来 irb(main):001:0>

如下图所示,说明配置成功!

在浏览器中输入服务器的域名或者IP地址 ,访问到如下界面,然后修改默认密码,单击 “Change your password” 按钮。

账号默认为root,密码是刚修改的。

登录成功的界面:

创建用户:

相关命令:

允许 GitLab 开机自启动:

systemctl enable gitlab-runsvdir

查看是否为开机自启动:

systemctl is-enabled gitlab-runsvdir

禁止 GitLab 开机自启动:

systemctl disable gitlab-runsvdir

本文参考自文章:https://www.centos.bz/2018/05/gitlab搭建与基本使用/

云服务器CentOS7.4下搭建GitLab的更多相关文章

  1. 阿里云服务器centos7环境下安装xampp后,mysql有进程,但是却没有监听3306端口

    配置阿里云服务器centos7中xampp环境时出现了一种情况: 在centos中可以使用命令进入mysql 修改后也可以远程用phpmyadmin连接mysql 但是用navicat却无法连接 先修 ...

  2. centOS7.2下 搭建gitlab使用git为团队管理代码

    最近更换了阿里云服务器  使用centOS7.2,目前配置1核2G,搭建gitlab有点吃力,另外如果1核1g就不要搭建了,推荐配置是2核4G以上 下面来简单记录整个搭建过程 注意: 本次实验OS为c ...

  3. Linux服务器centos7系统下搭建Jenkins

    Jenkins是什么? Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建.部署.自动化, 满足任何项目的需要. 所以现在是越来越多的公司都在使用Jenkins做持续 ...

  4. Centos7安装部署搭建gitlab平台、汉化

    Centos7安装部署搭建gitlab平台.汉化 安装环境要求:内存不要小于4G,否则后期web界面可能会报错 一.准备工作 1.1 查看系统版本 首先查询系统版本,下载Gitlab的对应版本 [ro ...

  5. 部署Flask项目到腾讯云服务器CentOS7

    部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...

  6. CentOS7.5 下搭建SFTP

    CentOS7.5 下搭建SFTP Linux 创建用户组 groupadd sftp 创建用户test useradd -G sftp -s /sbin/nologin test -s 禁止用户ss ...

  7. 阿里云Linux(Centos7)下搭建SVN服务器

    1,使用yum安装SVN yum -y install subversion 安装完成之后,验证安装结果 svn help 2,新建仓库目录 在/usr/soft目录下面创建一个svn目录,用来作为s ...

  8. Centos7使用docker搭建gitlab服务器

    了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...

  9. 【SVN】CentOS7.0下搭建SVN服务器

    SVN服务器搭建 最近接手了天赋吉运的SVN项目管理,那么学会搭建SVN服务器就成为了必须的技能.这篇文章就来讲一讲在CentOS7.0下如何搭建SVN服务器 1,下载安装SVN版本 yum inst ...

随机推荐

  1. (记录问题)1.Canvas.drawArc()方法的问题

    先看看异常: 一眼看去就知道说的是方法找不到错误 后面发现是系统版本过低,4.0的系统找不到5.0后添加的方法报的错. 修改后完美解决

  2. linux用户态和内核态理解

    1.特权级         Intel x86架构的cpu一共有0-4四个特权级,0级最高,3级最低,硬件上在执行每条指令时都会对指令所具有的特权级做相应的检查.硬件已经提供了一套特权级使用的相关机制 ...

  3. “无法从节点xx检索exectask的版本” 原因分析

    客户有一套部署在Window 2008 R2 sp环境下的12.1.0.2 RAC环境,该RAC基于策略管理.因为业务需要,现在需要更换部分设备——踢出两台2路的服务器(节点名称分别为racnode2 ...

  4. Ubuntu搭建交叉编译开发环境

    在Linux驱动开发过程中,往往需要搭建交叉编译开发环境,其中,最重要的环节就是安装交叉编译工具链,本文介绍如何在Ubuntu下搭建交叉编译开发环境. 1.官网下载交叉编译工具链 链接如下: http ...

  5. Nginx为什么可以支持高并发

    Nginx是由一个俄罗斯人专门为解决高并发而开发的 nginx 采用的是多进程+epoll,能实现高并发,其可以支持的并发上限大概是同时支持5W个连接 1 多进程 nginx 在启动后,会有一个 ma ...

  6. iframe高度自适应的方法

    第一种:iframe内容未知,高度可预测 这个时候,我们可以给它添加一个默认的CSS的min-height值,然后同时使用JavaScript改变高度.常用的兼容代码有: // document.do ...

  7. Java生产消费者模型——代码解析

    我们将生产者.消费者.库存.和调用线程的主函数分别写进四个类中,通过抢夺非线程安全的数据集合来直观的表达在进行生产消费者模型的过程中可能出现的问题与解决办法. 我们假设有一个生产者,两个消费者来共同抢 ...

  8. 嵌入式02 STM32 实验08 外部中断

    一.中断 由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理事件的一个程序.该程序执行完成后,CPU接着执行被暂停的程序.这个过程称为中断.(我正在捉泥鳅,但是我妈喊我回家吃饭,我必须回家 ...

  9. nohup 日志按天输出

    输出日志在当前目录: nohup java -jar ace-auth.jar >> nohup`date +%Y-%m-%d`.out 2>&1 & 指定日志目录输 ...

  10. python 跨目录访问文件

    1.同级.同目录的文件之间的访问 有这样一个目录结构 假如,in_A.py 这个文件想调用 hello_world.py 中的函数怎么办呢? --->>>  import 只需在 i ...