本文记录笔者的第一次 GitLab 部署和配置的经历。
1. 准备工作
一台云服务器,我使用的是阿里云 ECS,配置为:
- Ubuntu 18.04 x64
- CPU Core 2
- RAM 4GB
ECS 能够直接访问互联网。
2. 安装 GitLab
访问 TUNA - GitLab 页面,按不同操作系统的类型进行安装即可。下面将以 Ubuntu 18.04 为例:
1# 首先信任 GitLab 的 GPG 公钥
2curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
3
4# 将 `deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu bionic main` 写入以下文件中
5vim /etc/apt/sources.list.d/gitlab-ce.list
6
7# 安装 gitlab-ce
8sudo apt-get update
9sudo apt-get install gitlab-ce
3. 邮箱配置
阿里云默认封锁端口 25,我尝试使用 postfix 和 mailutils 并没有发送出邮件
所以下面将会使用 gitlab 的 smtp 配置网易邮箱
3.1 网易邮箱申请授权码
我们可以专门申请一个新的网易邮箱,用于 GitLab 发送邮件使用。
在网易邮箱的 设置 - POP3/SMTP/IMAP
中,开启 IMAP/SMTP服务
,我们可以得到一个用于第三方客户端登录的授权密码。
3.2 GitLab 邮箱配置
修改 /etc/gitlab/gitlab.rb
文件:
1# 在文件中搜索 smtp 可定位到如下配置部分
2# 修改并添加配置项目如下所示
3gitlab_rails['smtp_enable'] = true
4gitlab_rails['smtp_address'] = "smtp.163.com"
5gitlab_rails['smtp_port'] = 465
6gitlab_rails['smtp_user_name'] = "邮箱账户@163.com"
7gitlab_rails['smtp_password'] = "邮箱授权密码"
8gitlab_rails['smtp_domain'] = "163.com"
9gitlab_rails['smtp_authentication'] = "login"
10gitlab_rails['smtp_enable_starttls_auto'] = true
11gitlab_rails['smtp_tls'] = true
12gitlab_rails['gitlab_email_from'] = "邮箱账户@163.com"
13user['git_user_email'] = "邮箱账户@163.com"
重新配置并启动:
1gitlab-ctl stop
2gitlab-ctl reconfigure
3gitlab-ctl start
测试邮件是否能发送成功(注意检查垃圾箱):
1gitlab-rails console
2......
3> Notify.test_email('目标邮箱地址@address.com', '邮件标题', '邮件内容').deliver_now
3.3 GitLab 其他配置
1# /etc/gitlab/gitlab.rb
2# 设置为云主机 ip 地址 + 想要启动服务的端口号
3external_url 'http://39.107.44.33:8090'
同样需要 reconfigure
后生效。
4. 优化 GitLab 的 CPU 占用
毕竟云服务器的配置并不算很好,在 top
面板经常看到 GitLab 占用 CPU 比较高,所以在 /etc/gitlab/gitlab.rb
中再修改一些配置项:
1gitlab_rails['time_zone'] = 'Asia/Shanghai'
2unicorn['worker_processes'] = 2
3unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
4unicorn['worker_memory_limit_max'] = "250 * 1 << 20"
5postgresql['shared_buffers'] = "128MB"
6postgresql['max_worker_processes'] = 2
7sidekiq['max_concurrency'] = 10
8sidekiq['min_concurrency'] = nil
9prometheus_monitoring['enable'] = false
同样需要 reconfigure
后生效。
5. 登录 GitLab
初次访问 GitLab(external_url
指定的地址)会要求设置管理员账号密码。
在管理员的管理面板可以设置要求用户注册时需要邮件确认:
参考资料
版权声明:本文遵循 CC BY-SA 4.0 版权协议,转载请附上原文出处链接和本声明。
Copyright statement: This article follows the CC BY-SA 4.0 copyright agreement. For reprinting, please attach the original source link and this statement.