如何在Ubuntu 18.04 LTS上安装和配置Gitlab CE
Gitlab是基于Web和开源Git-Repository Manager。
它是用Ruby编写的,拥有丰富的功能,包括代码审查,监控,CI/CD(持续集成和部署),Wiki,问题跟踪以及许多其他功能。
直到2012年,Gitlab,并在麻省理工学院许可下分发了完全自由和开源软件。
2013年7月,该计划分为两个版本:Gitlab社区版(CE)和Gitlab企业版(EE)。
2014年2月,Gitlab采取了开放核心的商业模式。
正如预期的那样,Gitlab EE在CE版本中有一些不存在的高级功能。
但是,GE版本仍然积极开发并支持。
在Ubuntu 18.04 LTS上安装Gitlab CE
系统要求
建议使用2核心CPU,可以支持最多500个用户
至少8 GB的内存
服务器上可用2GB交换
首先,在启动Gitlab安装之前更新系统存储库。 sudo apt-get update
安装和配置所需的依赖项: sudo apt-get install curl openssh-server ca-certificates
Gitlab需要能够向用户发送电子邮件。
因此,我们应该安装和配置电子邮件服务,如Postfix,或者我们可以使用像AWS SES,MailChimp等等外部电子邮件服务。
在此示例中,我们将使用Postfx。
安装Postfix。 sudo apt-get install postfix
在Postfix安装期间,它会询问邮件服务器配置类型。
选择"Internet Site",然后单击"确定"。
然后它将提示输入"系统邮件名称"。
这应该是我们服务器的服务器主机名或者DNS名称。
其中我们使用"gitlab.theitroad.com"。
输入服务器配置的相应名称,然后按OK。
PostFix安装启动服务后: sudo systemctl start postfix
在SystemBoot上启用服务: sudo systemctl enable postfix
安装gitlab.
添加Gitlab包存储库: curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
然后安装Gitlab社区版: sudo apt-get install gitlab-ce
安装可能需要一些时间才能完成。
然后,我们将获得以下输出。
修改防火墙规则
允许HTTP和HTTPS: sudo ufw allow http
sudo ufw allow https
检查防火墙状态,它将显示打开的端口: sudo ufw status
使用SSL配置Gitlab URL
在我们访问Gitlab之前,我们需要使用域名配置它。
但在添加此域名之前,我们需要使用所需的配置(具有服务器公共IP的记录)配置DNS服务器。
因此,请继续并修改Gitlab配置文件 sudo /etc/gitlab/gitlab.rb
查找"External_URL"字段并添加域名URL.
然后寻找"letsencrypt"并取消注释该行。
将其设置为"真实"。
如果我们需要,我们也可以启用"Letsencrypt ['contact_emails']"section。
取消注释行并添加电子邮件地址。
保存并关闭文件。
在这种修改之后,我们需要重新配置Gitlab。
所以运行以下命令来做到这一点。 sudo gitlab-ctl reconfigure
它将重新配置Gitlab并配置免费SSL证书。
使用Web浏览器并执行Gitlab URL并按Enter键。 https://gitlab.theitroad.com
用域名替换"gitlab.theitroad.com":当我们首次浏览Gitlab Web界面时,它会向管理帐户询问新密码。
输入新密码,然后单击"更改密码"。
之后,它将重定向到登录页面。
用户名将是"root",密码将是我们已设置的密码。
登录帐户后,我们将看到"欢迎"页面。
SMTP设置
如果需要修改SMTP设置,请修改"gitlab.rb"文件。 sudo vim /etc/gitlab/gitlab.rb
对于LocalHost上的SMTP,我们需要修改以下配置:
gitlab_rails['smtp_enable'] = true; gitlab_rails['smtp_address'] = 'localhost'; gitlab_rails['smtp_port'] = 25; gitlab_rails['smtp_domain'] = 'localhost'; gitlab_rails['smtp_tls'] = false; gitlab_rails['smtp_openssl_verify_mode'] = 'none' gitlab_rails['smtp_enable_starttls_auto'] = false gitlab_rails['smtp_ssl'] = false gitlab_rails['smtp_force_ssl'] = false