Linux系统下GitLab如何搭建
小樊
39
2026-01-03 04:26:51
Linux下搭建 GitLab 实操指南
一 环境准备与资源建议
- 操作系统:选择受支持的 Ubuntu/Debian 或 CentOS/RHEL 等主流发行版,确保能访问互联网与包管理器源。
- 硬件建议:至少 2 核 CPU、4 GB 内存(生产环境推荐 8 GB+)、20 GB+ 磁盘,并预留后续增长空间。
- 基础依赖:安装 curl、openssh-server、ca-certificates、tzdata、perl;邮件可选安装 Postfix。
- 网络与域名:准备可解析的 域名 或服务器 IP,并规划 HTTP/80、HTTPS/443 访问策略。
二 安装步骤 Ubuntu 或 Debian
- 更新索引并安装依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
- 添加 GitLab 官方仓库并安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install -y gitlab-ce
- 首次配置与启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 访问与初始化
浏览器访问 http://服务器IP或域名,按向导设置 管理员密码 后登录。
三 安装步骤 CentOS 或 RHEL
- 安装依赖(含邮件组件 Postfix)
sudo yum install -y curl policycoreutils openssh-server postfix
sudo systemctl enable --now postfix
- 添加 GitLab 官方仓库并安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install -y gitlab-ce
- 首次配置与启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 访问与初始化
浏览器访问 http://服务器IP或域名,按向导设置 管理员密码 后登录。
四 关键配置与运维要点
- 核心配置文件与生效方式
编辑 /etc/gitlab/gitlab.rb,设置例如 external_url ‘http://your-domain-or-ip’;每次修改后执行 sudo gitlab-ctl reconfigure 使配置生效。
- 防火墙放行
Ubuntu/Debian(UFW):sudo ufw allow ‘Nginx Full’;CentOS/RHEL(firewalld):sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload。
- 邮件通知(SMTP 示例)
在 /etc/gitlab/gitlab.rb 中启用并填写:
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.example.com”
gitlab_rails[‘smtp_port’] = 587
gitlab_rails[‘smtp_user_name’] = “your_email@example.com”
gitlab_rails[‘smtp_password’] = “your_password”
gitlab_rails[‘smtp_domain’] = “example.com”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] = false
执行:sudo gitlab-ctl reconfigure。
- HTTPS 与证书
方案 A(Certbot + Nginx 插件):sudo certbot --nginx -d your_domain.com,按提示自动配置证书与自动续期。
方案 B(手动指定证书路径):在 gitlab.rb 中设置
nginx[‘redirect_http_to_https’] = true
nginx[‘ssl_certificate’] = “/etc/letsencrypt/live/your_domain.com/fullchain.pem”
nginx[‘ssl_certificate_key’] = “/etc/letsencrypt/live/your_domain.com/privkey.pem”
执行:sudo gitlab-ctl reconfigure。
- 备份与恢复
备份:sudo gitlab-backup create(生成时间戳备份于 /var/opt/gitlab/backups)。
恢复:先停写服务(可选:sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq),再执行
sudo gitlab-backup restore BACKUP=timestamp_of_backup
恢复后启动服务:sudo gitlab-ctl start。
- 常用运维命令
启动/停止/重启/状态/重载:sudo gitlab-ctl {start|stop|restart|status|reconfigure}。
五 验证与常见问题
- 安装验证
访问 http://服务器IP或域名,完成管理员初始化后,创建 项目/用户,尝试 git clone / git push 验证功能正常。
- 忘记管理员密码
进入控制台:sudo gitlab-rails console
执行:
user = User.where(id: 1).first
user.password = ‘NewStrongPassword123!’
user.password_confirmation = ‘NewStrongPassword123!’
user.save!
退出并重启服务(如需要):sudo gitlab-ctl restart。
- 运行缓慢或资源不足
确认至少 4 GB 内存(生产建议 8 GB+),并优化存储与备份策略;必要时考虑更高规格实例或横向扩展方案。