在软件开发中,版本控制是核心环节,GitLab 不仅是一个强大的 Git 服务器,还集成了 CI/CD、项目管理等功能,自建 GitLab 服务器可提升代码安全性、定制化能力和团队协作效率,本文将详细指导您从零搭建 GitLab 服务器,涵盖安装、配置、维护全流程。
准备工作
1 系统要求
- 操作系统:Ubuntu 20.04/22.04 LTS(推荐)或 CentOS 7+。
- 硬件配置:
- 最低配置:2 核 CPU、4GB 内存(适用于小型团队)。
- 推荐配置:4 核 CPU、8GB 内存、50GB 存储(支持 CI/CD 等高级功能)。
- 网络环境:
- 公网 IP 或域名(可选 HTTPS 证书)。
- 开放端口:
80
(HTTP)、443
(HTTPS)、22
(SSH)。
2 环境依赖
确保系统已更新:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian sudo yum update -y # CentOS
安装 GitLab 服务
1 添加官方仓库
Ubuntu/Debian:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
CentOS/RHEL:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
2 安装 GitLab-CE
执行安装命令(替换 your-domain
为实际域名或 IP):
sudo EXTERNAL_URL="http://your-domain.com" apt install gitlab-ce # Ubuntu sudo EXTERNAL_URL="http://your-domain.com" yum install gitlab-ce # CentOS
3 启动服务
sudo gitlab-ctl reconfigure # 初始化配置并启动
基础配置
1 访问 Web 管理界面
在浏览器输入服务器 IP 或域名,首次访问需设置管理员密码(账户名 root
)。
2 关键配置项
- 配置文件路径:
/etc/gitlab/gitlab.rb
- 常用设置(修改后执行
sudo gitlab-ctl reconfigure
生效):external_url 'https://your-domain.com' # 启用 HTTPS letsencrypt['enable'] = true # 自动申请 SSL 证书 gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 修改 SSH 端口(避免冲突)
3 邮件服务配置(示例: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 管理项目
1 创建首个项目
- 登录后点击 Create project → 输入项目名称(如
my-project
)。 - 选择可见性:
Private
(私有)或Public
(公开)。
2 本地 Git 连接
git config --global user.name "Your Name" git config --global user.email "your-email@example.com" git clone git@your-domain.com:username/my-project.git cd my-project touch README.md git add . && git commit -m "Initial commit" git push -u origin main
维护与安全
1 定期备份
sudo gitlab-rake gitlab:backup:create # 备份到 /var/opt/gitlab/backups # 手动备份到远程存储(示例): sudo cp /var/opt/gitlab/backups/$(ls -t /var/opt/gitlab/backups | head -1) /mnt/backup/
2 更新与恢复
- 升级版本:
sudo apt update && sudo apt install gitlab-ce # Ubuntu
- 恢复备份:
sudo gitlab-ctl stop sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
3 安全加固
- 防火墙规则:
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw enable
- 关闭注册功能:
在 Admin Area → Settings → Sign-up restrictions 取消勾选Sign-up enabled
。
常见问题解答
Q1:访问 GitLab 页面显示 502 错误?
A:内存不足导致,尝试增加 SWAP 分区:
sudo dd if=/dev/zero of=/swapfile bs=1G count=4 sudo chmod 600 /swapfile sudo mkswap /swapfile && sudo swapon /swapfile
Q2:Git 推送时提示 “Permission denied (publickey)”?
A:本地 SSH 公钥未添加到 GitLab,复制 ~/.ssh/id_rsa.pub
内容到 Settings → SSH Keys。
Q3:如何迁移旧 Git 仓库到 GitLab?
A:在项目页选择 Import project → Repo by URL,输入原仓库地址。
自建 GitLab 服务器不仅保障代码安全,更通过 CI/CD、Issue 跟踪等功能提升开发效率,遵循本文步骤,您已具备部署和管理企业级 Git 服务的能力,定期维护和备份是长期稳定运行的关键。
引用说明
本文参考以下权威资料:
- GitLab 官方文档:https://docs.gitlab.com/
- Ubuntu 服务器指南:https://ubuntu.com/server/docs
- Linux 安全加固手册:https://linuxsecurity.com/ 基于 GitLab-CE 16.x 版本验证,更新于 2025 年 10 月)
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/13505.html