1. 简介
GitLab是一个基于Git的在线代码仓库管理工具,可以方便地进行代码管理、版本控制、代码评审等工作,常用于团队协作、开源项目维护等场景。
2. 准备工作
2.1 系统要求
在开始搭建之前,需要确保服务器的操作系统为Ubuntu或CentOS,并且已经安装了必要的依赖项:curl、openssh-server、ca-certificates、和postfix。
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates postfix
2.2 域名配置
如果需要通过域名访问GitLab,需要为其配置DNS记录,并确保域名解析正确。
如果只是本地测试,可以将GitLab地址加入hosts文件中:
sudo nano /etc/hosts
在hosts文件中添加以下一行,将`your-gitlab-domain-name`替换为你想使用的域名:
127.0.0.1 your-gitlab-domain-name
2.3 安装GitLab
下载并安装GitLab Community Edition(CE):
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
3. 配置GitLab
3.1 管理账户
初始管理员账户为`root`,密码可以在GitLab配置文件`/etc/gitlab/gitlab.rb`中修改:
sudo nano /etc/gitlab/gitlab.rb
找到并修改以下两行代码:
## GitLab settings
gitlab_rails['initial_root_password'] = 'your-new-password'
修改完成后,执行以下命令使修改生效:
sudo gitlab-ctl reconfigure
3.2 邮件配置
为了让GitLab发送邮件通知,需要配置邮件服务器信息。这里以使用Gmail SMTP为例。
编辑GitLab配置文件:
sudo nano /etc/gitlab/gitlab.rb
找到以下几行代码:
## GitLab email server settings
# gitlab_rails['smtp_enable'] = true
# gitlab_rails['smtp_address'] = "smtp.server"
# gitlab_rails['smtp_port'] = 465
# gitlab_rails['smtp_user_name'] = "smtp user"
# gitlab_rails['smtp_password'] = "smtp password"
# gitlab_rails['smtp_domain'] = "example.com"
# gitlab_rails['smtp_authentication'] = "login"
# gitlab_rails['smtp_enable_starttls_auto'] = true
# gitlab_rails['smtp_tls'] = false
# gitlab_rails['smtp_openssl_verify_mode'] = 'none'
取消第二行代码的注释,并通过Gmail SMTP进行配置,修改后代码如下:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-gmail-account@gmail.com"
gitlab_rails['smtp_password'] = "your-gmail-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
修改完成后,执行以下命令使修改生效:
sudo gitlab-ctl reconfigure
3.3 HTTPS配置
在Apache或Nginx中配置反向代理,并申请证书,启用SSL。
以Nginx为例,安装Nginx及Let's Encrypt:
sudo apt-get install -y nginx python3-certbot-nginx
运行以下命令配置SSL:
sudo certbot --nginx -d your-gitlab-domain-name
配置完成后,执行以下命令使Nginx生效:
sudo systemctl reload nginx
然后,编辑GitLab配置文件:
sudo nano /etc/gitlab/gitlab.rb
找到以下常规设置:
## GitLab settings
external_url 'http://your-gitlab-domain-name/'
将其修改为:
## GitLab settings
external_url 'https://your-gitlab-domain-name/'
修改完成后,执行以下命令使修改生效:
sudo gitlab-ctl reconfigure
4. 测试GitLab
在浏览器中输入`https://your-gitlab-domain-name/`,可以看到GitLab的登录界面。
使用初始管理员账户`root`和修改后的密码登录,在`Admin Area -> Settings`中可以查看GitLab的详细配置。