如何在本地环境中搭建 GitLab 服务器
引言
本文详细描述了如何在本地环境中搭建 GitLab 服务器。GitLab 是一个开源的 Git 仓库管理平台,类似于 GitHub,但可以自托管。我们将使用 Ubuntu Linux 系统(推荐 22.04 LTS)作为示例,通过官方 Omnibus 包进行安装。这种方式简单高效,适合个人或小型团队使用。
注意:本教程假设你有基本的 Linux 命令知识。如果你使用其他系统(如 Windows),建议使用虚拟机(如 VirtualBox)安装 Ubuntu。整个过程大约需要 1-2 小时,视网络和硬件而定。安装后,GitLab 会占用一定资源(至少 4GB RAM)。
系统要求
- 操作系统:Ubuntu 20.04 或更高版本(其他 Linux 发行版也可,但需调整命令)。
- 硬件:至少 4GB RAM、2 核 CPU、20GB 可用磁盘空间(推荐 8GB RAM 以获得更好性能)。
- 网络:静态 IP 地址(可选,但推荐用于生产环境);端口 80/443(HTTP/HTTPS)、22(SSH)需开放。
- 软件:已安装 curl、openssh-server、ca-certificates、postfix(邮件服务,用于通知)。
如果你的机器不符合要求,GitLab 可能运行缓慢或崩溃。
系统架构概述
以下是 GitLab 的基本架构图:
这个图展示了 GitLab 的核心组件:Web 服务器处理请求,数据库存储数据,Redis 处理缓存等。
安装步骤
我们分步进行安装。以下流程图概述整个过程:
步骤 1: 更新系统和安装依赖
首先,确保系统是最新的,并安装所需包。
-
打开终端,运行:
sudo apt update sudo apt upgrade -y
-
安装依赖:
sudo apt install -y curl openssh-server ca-certificates tzdata perl
-
安装 Postfix(邮件服务,选择 “Internet Site” 并输入域名):
sudo apt install -y postfix
如果出现提示,按照屏幕指示配置。
步骤 2: 添加 GitLab 仓库
GitLab 提供官方脚本添加仓库。
运行:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
这个脚本会添加 GitLab 的 APT 仓库源。
步骤 3: 安装 GitLab 包
安装 GitLab EE(企业版,免费使用社区功能)。
sudo EXTERNAL_URL="http://your-ip-address" apt install gitlab-ee
- 将
your-ip-address
替换为你的机器 IP(用ip addr show
查看)或域名。 - 如果想用 HTTPS,稍后配置。
安装过程会下载并设置所有组件(如数据库、Redis)。
安装流程简化图:
步骤 4: 配置 GitLab
安装后,GitLab 会自动配置,但你需要调整一些设置。
-
编辑配置文件:
sudo nano /etc/gitlab/gitlab.rb
-
关键配置(示例):
- 设置外部 URL:
external_url 'http://your-ip-address'
- 如果有域名:
external_url 'http://gitlab.example.com'
- 启用 HTTPS(需 SSL 证书):添加
letsencrypt['enable'] = true
(自动获取 Let’s Encrypt 证书)。 - SMTP 设置(邮件):配置
gitlab_rails['smtp_enable'] = true
等参数。
- 设置外部 URL:
-
应用配置:
sudo gitlab-ctl reconfigure
这个命令会重启服务并应用更改。可能需要几分钟。
步骤 5: 访问 Web 界面
- 在浏览器中访问
http://your-ip-address
(或配置的 URL)。 - 首次访问,会提示设置 root 用户密码。输入一个强密码并记住。
登录后,你会看到 GitLab 仪表板。
步骤 6: 初始设置和测试
-
创建项目:点击 “New project”,选择空白仓库。
-
添加 SSH 密钥(可选,但推荐):
- 生成密钥:
ssh-keygen
- 复制公钥:
cat ~/.ssh/id_rsa.pub
- 在 GitLab > 用户设置 > SSH Keys 添加。
- 生成密钥:
-
克隆测试:
git clone git@your-ip-address:root/test-project.git
-
用户管理:作为 root,创建新用户(用户 > 新用户)。
配置流程图:
安全和优化
- 防火墙:启用 UFW 并允许端口:
sudo ufw allow OpenSSH sudo ufw allow http sudo ufw allow https sudo ufw enable
- 备份:定期运行
sudo gitlab-rake gitlab:backup:create
。 - 性能优化:如果 RAM 不足,编辑
gitlab.rb
调整 Unicorn 工作者数量。 - 更新:运行
sudo apt update && sudo apt upgrade gitlab-ee
。
常见问题和故障排除
- 安装失败:检查网络,确保没有代理问题。重试脚本。
- 端口占用:用
sudo netstat -tuln
检查 80/443 端口。 - 邮件不发送:验证 SMTP 设置,测试
sudo gitlab-rails console
中发送邮件。 - 内存不足:监控
sudo gitlab-ctl tail
日志,增加 swap 或升级硬件。 - 重置 root 密码:
sudo gitlab-rake "gitlab:password:reset[root]"
。 - 日志:查看
sudo gitlab-ctl tail
或/var/log/gitlab
。
如果遇到错误,参考官方文档或 Stack Overflow。
结语
恭喜!你现在有了一个本地 GitLab 服务器!它可以用于代码协作、CI/CD 等。记得定期维护和备份。对于生产环境,考虑 Docker 安装或云托管(如 GitLab.com)。
如果需要高级功能,如 CI/CD runners,参考官方指南。