我的博客: 菱歌's Blog | 听见美好
笔记原文地址:Gitlab CE的部署
许多小团队都有自建Gitlab的需求,我们这里使用免费的Gitlab CE(Community Edition)就可以了。官方的Omnibus部署已经很简单了,而且该有的配置都有,适合小团队使用,推荐!
Omnibus安装
完全按照官方指导进行,由于我是CentOS7系统,运行命令
安装一些依赖
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
添加Gitlab的源并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://xxxxx" yum install -y gitlab-ce
这里推荐一个清华大学的TUNA镜像,在阿里云上速度由原来的100kb/s能到10MB/S+
Tips
同时,最新版本的Gitlab对配置要求越来越高,低配置的服务器可以安装Gitlab 10
,这个版本亲测在1Core + 2GB
的极低端服务器上也能跑起来,不过同时在线用户数量就不好说了,建议至少这个配置*2。
sudo EXTERNAL_URL="http://xxxxx" yum install -y gitlab-ce-10.1.4-ce.0.el7
HTTPS配置
证书生成
我使用的是阿里云提供的免费证书,可以在阿里云域名的控制面板下找到。
阿里云免费证书
也可以使用诸如Let's Encrypt的方案
阿里云生成的证书是*.pem
和*.key
的密钥对,需要将pem密钥转换为crt格式:
openssl x509 -outform PEM -in gitlab.pem -out gitlab.crt
然后使用scp
命令将证书上传到服务器
scp -r ./ssl root@xxxxx:/etc/gitlab/ssl
为了安全起见在服务器上将该目录修改权限为700
chmod -R 700 /etc/gitlab/ssl
Gitlab配置修改
对/etc/gitlab/gitlab.rb
进行修改。
external_url 'http://xxxxx'
external_url 'https://xxxxxx'
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/xxxx.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/xxxx.key"
重启Gitlab
gitlab-ctl restart
gitlab-ctl reconfigure
邮箱配置
编辑配置文件vim /etc/gitlab/gitlab.rb
,添加
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xxxxx'
gitlab_rails['gitlab_email_display_name'] = 'xxxx Gitlab'
上面这一段各种邮箱都是相同的配置。
我使用的是阿里云的企业邮箱,需要使用不同邮箱的可以看配置列表
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@xxxxx"
gitlab_rails['smtp_password'] = "xxxxx"
gitlab_rails['smtp_domain'] = "xxxxx"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
配置完成后需要reconfigure
,可以通过命令测试是否已经配置好
gitlab-rails console
Notify.test_email('xxxxx@xxx.com', '邮件标题', '邮件正文').deliver_now
最终效果
输出http://domain
会自动跳转到https://domain
:
网友评论