Git私服搭建之Gitlab
1 环境说明
- gitlab官网:https://about.gitlab.com/
- 服务器:CentOS 7
- Gitlab版本:v11.6.0社区版(注:ce为社区版,ee为企业版)
- Nginx版本:nginx/1.14.2
- Redis版本:3.2.12
- 邮箱账号:微软Outlook邮箱
2 安装和配置依赖
官方配置文档:https://about.gitlab.com/install/#centos-7
2.1 安装相关依赖
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
2.2 安装邮件服务postfix
#安装邮件服务postfix
sudo yum install postfix
#设置开机启动
sudo systemctl enable postfix
#启动postfix
sudo systemctl start postfix
2.3 添加GitLab包存储库
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2.4 配置域名并安装
sudo EXTERNAL_URL="<自己的域名>" yum install -y gitlab-ce
3 配置nginx
Gitlab自带有nginx模块,但是我们有自己的nginx,所以需要单独配置nginx,如果决定使用Gitlab自带的nginx,此步聚可以忽略。
官方配置文档:https://docs.gitlab.com/omnibus/settings/nginx.html#using-a-non-bundled-web-server
3.1 进入编辑模式
vi /etc/gitlab/gitlab.rb
3.2 禁用内置Nginx
nginx['enable'] = false
3.3 添加外部nginx支持
#添加nginx所使用的用户到gitlab
web_server['external_users'] = ['nginx']
#将nginx加入信任列表
gitlab_rails['trusted_proxies'] = [ '127.0.0.1/80' ]
3.4 配置nginx
转到https://gitlab.com/gitlab-org/gitlab-recipes/tree/master/web-server选择合适的配置文件,并加入nginx的conf.d目录中,修改域名。
3.5 重启nginx
nginx -s stop
nginx
4 配置redis
Gitlab自带有redis模块,但是我们有自己的redis,所以需要单独配置redis,如果决定使用Gitlab自带的redis,此步聚可以忽略。
#禁用内置redis
redis['enable'] = false
#配置redis
gitlab_rails['redis_host'] = "127.0.0.1"
gitlab_rails['redis_port'] = 6379
gitlab_rails['redis_password'] = "123456"
gitlab_rails['redis_database'] = 0
gitlab_rails['redis_socket'] = '/tmp/redis.sock'
5 配置SMTP邮件服务
这里以微软Outlook邮箱为例,需提前注册好Office365邮箱并找到SMTP信息。
官方配置文档:https://docs.gitlab.com/omnibus/settings/smtp.html#smtp-settings
5.1 配置SMTP
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.office365.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "username@yourdomain.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'username@yourdomain.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'
gitlab_rails['gitlab_email_reply_to'] = 'username@yourdomain.com'
5.2 测试SMTP配置
执行以下命令进入Rails控制台,时间可能会略微有点长,耐心等一会儿
gitlab-rails console
在Rails控制台下执行以下命令,成功后登录邮箱查看结果
Notify.test_email('<你的邮箱地址>', 'Message Subject', 'Message Body').deliver_now
6 配置MySQL
Gitlab内置PostgreSQL,我有自己独立的MySQL数据库,所以偿试配置了一下,但是没有成功,这里不再记录。
官方配置文档:https://docs.gitlab.com/ee/install/database_mysql.html
7 汉化
网上有很多关于汉化的文档,但是本人偿试了很多次,汉化后会有个别地方仍然是英文,而主要问题在于汉化后有部分功能无法使用了,所以就取消了汉化,这里也不再记录汉化过程,不过在本文下方有切换到简体中文的方式。
8 配置Gitlab
- 打开上面设置好的域名,需要在域名提供商提前解析;
- 设置超级管理员账户密码;
- 登录Gitlab,默认用户名为root;
- 点击用户头像下方“Settings - Profile - Main settings - Preferred language”,选择简体中文,刷新;
- 其它设置,如禁用注册,添加用户组及用户,新建项目等。