如何快速地搭建GitLab环境

1. 简介

GitLab是一个基于Git的在线代码仓库管理工具,可以方便地进行代码管理、版本控制、代码评审等工作,常用于团队协作、开源项目维护等场景。

2. 准备工作

2.1 系统要求

在开始搭建之前,需要确保服务器的操作系统为Ubuntu或CentOS,并且已经安装了必要的依赖项:curl、openssh-server、ca-certificates、和postfix。

sudo apt-get update

sudo apt-get install -y curl openssh-server ca-certificates postfix

2.2 域名配置

如果需要通过域名访问GitLab,需要为其配置DNS记录,并确保域名解析正确。

如果只是本地测试,可以将GitLab地址加入hosts文件中:

sudo nano /etc/hosts

在hosts文件中添加以下一行,将`your-gitlab-domain-name`替换为你想使用的域名:

127.0.0.1       your-gitlab-domain-name

2.3 安装GitLab

下载并安装GitLab Community Edition(CE):

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

sudo apt-get install gitlab-ce

3. 配置GitLab

3.1 管理账户

初始管理员账户为`root`,密码可以在GitLab配置文件`/etc/gitlab/gitlab.rb`中修改:

sudo nano /etc/gitlab/gitlab.rb

找到并修改以下两行代码:

## GitLab settings

gitlab_rails['initial_root_password'] = 'your-new-password'

修改完成后,执行以下命令使修改生效:

sudo gitlab-ctl reconfigure

3.2 邮件配置

为了让GitLab发送邮件通知,需要配置邮件服务器信息。这里以使用Gmail SMTP为例。

编辑GitLab配置文件:

sudo nano /etc/gitlab/gitlab.rb

找到以下几行代码:

## GitLab email server settings

# gitlab_rails['smtp_enable'] = true

# gitlab_rails['smtp_address'] = "smtp.server"

# gitlab_rails['smtp_port'] = 465

# gitlab_rails['smtp_user_name'] = "smtp user"

# gitlab_rails['smtp_password'] = "smtp password"

# gitlab_rails['smtp_domain'] = "example.com"

# gitlab_rails['smtp_authentication'] = "login"

# gitlab_rails['smtp_enable_starttls_auto'] = true

# gitlab_rails['smtp_tls'] = false

# gitlab_rails['smtp_openssl_verify_mode'] = 'none'

取消第二行代码的注释,并通过Gmail SMTP进行配置,修改后代码如下:

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.gmail.com"

gitlab_rails['smtp_port'] = 587

gitlab_rails['smtp_user_name'] = "your-gmail-account@gmail.com"

gitlab_rails['smtp_password'] = "your-gmail-password"

gitlab_rails['smtp_domain'] = "smtp.gmail.com"

gitlab_rails['smtp_authentication'] = "plain"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = false

gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

修改完成后,执行以下命令使修改生效:

sudo gitlab-ctl reconfigure

3.3 HTTPS配置

在Apache或Nginx中配置反向代理,并申请证书,启用SSL。

以Nginx为例,安装Nginx及Let's Encrypt:

sudo apt-get install -y nginx python3-certbot-nginx

运行以下命令配置SSL:

sudo certbot --nginx -d your-gitlab-domain-name

配置完成后,执行以下命令使Nginx生效:

sudo systemctl reload nginx

然后,编辑GitLab配置文件:

sudo nano /etc/gitlab/gitlab.rb

找到以下常规设置:

## GitLab settings

external_url 'http://your-gitlab-domain-name/'

将其修改为:

## GitLab settings

external_url 'https://your-gitlab-domain-name/'

修改完成后,执行以下命令使修改生效:

sudo gitlab-ctl reconfigure

4. 测试GitLab

在浏览器中输入`https://your-gitlab-domain-name/`,可以看到GitLab的登录界面。

使用初始管理员账户`root`和修改后的密码登录,在`Admin Area -> Settings`中可以查看GitLab的详细配置。

参考链接

GitLab官网

GitLab官方安装文档

在Ubuntu18.04上使用Let's Encrypt保护Nginx

在Ubuntu上使用Postfix和Gmail SMTP发送邮件