公司的项目管理决定使用 Gitlab,于是从闲置的机器中找出一台进行部署,记录一下过程。

安装依赖

闲置的机器是一台托管在贵州电信的 CentOS 6 64bit 机器,直接安装所需依赖:

sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh

接着安装 Postfix 用于将来邮件的发送,当然如果你打算将来使用 SMTP 发信,可以跳过这一步:

sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on

安装 Gitlab

由于用来安装 Gitlab 的机器在国内,连接官方源的速度很慢,因此我决定使用清华大学的源来进行安装。

创建 /etc/yum.repos.d/gitlab-ee.repo,内容为:

[gitlab-ee]
name=gitlab-ee
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

再执行:

sudo yum makecache
sudo yum install gitlab-ee

配置 Gitlab

我们需要为我们的 Gitlab 设置一个域名访问地址,打开 /etc/gitlab/gitlab.rb 并找到 external_url,修改为你想要设置的域名地址,如:

external_url 'http://git.dearroy.com'

修改完成之后,初始化 Gitlab,使配置文件生效:

sudo gitlab-ctl reconfigure

接着打开浏览器访问设置的域名地址,第一次登陆时系统会要求你设置密码,设置完之后使用用户名 root 和你设置的密码登录 Gitlab。

给 Gitlab 装上 Let's Encrypt SSL

Gitlab 内置整合了 Let's Encrypt 的申请和续期,因此只需要打开 /etc/gitlab/gitlab.rb

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['foo@email.com'] # 可选项
external_url 'https://git.dearroy.com' # 改成你自己的域名
nginx['redirect_http_to_https'] = true

进行如上修改之后保存退出,并执行:

gitlab-ctl reconfigure

对 HTTPS 端口放行:

lokkit -s https