在 Linux 上安装 GitLab Community Edition (CE,社区版) 通常推荐使用官方提供的 Omnibus 安装包,因为它集成了运行 GitLab 所需的所有组件(Nginx, PostgreSQL, Redis 等),配置和维护最简单。
以下是以 Ubuntu/Debian 和 CentOS/AlmaLinux/Rocky Linux 为例的详细安装与使用教程。
第一阶段:准备工作
最低硬件要求:
内存 (RAM): 至少 4GB(建议 8GB,否则会经常卡顿或报错 502)。
CPU: 2核或以上。
磁盘: 建议预留 20GB 以上空间。
第二阶段:安装 GitLab CE
1. 安装依赖包
Ubuntu / Debian: sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates tzdata perl sudo apt-get install -y postfix如果需要发送邮件通知,可以安装 Postfix(安装过程选 Internet Site),也可以后续配置 SMTP
CentOS 7 / AlmaLinux / Rocky Linux: sudo dnf install -y curl policycoreutils openssh-server openssh-clients perl sudo systemctl enable sshd sudo systemctl start sshd安装 Postfix (可选)
sudo dnf install -y postfix sudo systemctl enable postfix sudo systemctl start postfix配置防火墙允许 HTTP/HTTPS (CentOS/AlmaLinux 需要)
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload2. 添加 GitLab 镜像源
使用清华大学开源软件镜像站(国内速度快)或官方源。这里为了稳定和速度,推荐使用官方脚本,它会自动检测你的系统。
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash如果是 CentOS/RPM系,命令通常是 script.rpm.sh
3. 安装 GitLab CE
关键点: 你需要设置 EXTERNAL_URL,这是你访问 GitLab 的地址。
如果有域名:http://gitlab.example.com
如果是局域网 IP:http://192.168.1.100
运行以下命令开始安装(会自动下载约 1GB 的包,请耐心等待):
Ubuntu / Debian: sudo EXTERNAL_URL="http://192.168.1.100" apt-get install gitlab-ce CentOS / AlmaLinux: sudo EXTERNAL_URL="http://192.168.1.100" dnf install gitlab-ce(请将 IP 地址替换为你服务器的实际 IP)
4. 等待安装完成
看到 GitLab 的 Logo 字符画并提示 GitLab Reconfigured! 即表示安装成功。
第三阶段:初始化配置与登录
1. 获取初始 root 密码
安装完成后,系统会生成一个随机密码,文件有效期为 24 小时。
查看密码:
sudo cat /etc/gitlab/initial_root_password2. 登录 Web 界面
打开浏览器,访问你设置的 EXTERNAL_URL(例如 http://192.168.1.100)。
账号: root 密码: 刚才 cat 命令查看到的字符串。3. 修改密码和语言(建议)
登录后,点击右上角头像 -> Edit profile -> Password,立即修改一个你可以记住的复杂密码。
设置中文: 点击右上角头像 -> Preferences -> 往下翻找到 Localization -> Language 选择 Chinese, Simplified -> Save changes -> 刷新页面。
第四阶段:基本使用指南
1. 创建项目 (Project)
点击顶部导航栏的 “+” 号 -> 新建项目/仓库。
选择 “创建空白项目”。
输入项目名称(如 my-first-project)。
可见性级别:
Private: 只有特定成员可见。
Internal: 登录用户可见。
Public: 任何人可见。
点击新建。
2. 配置 SSH 密钥 (用于上传代码)
为了不用每次推送代码都输密码,需要配置 SSH Key。
在你的电脑上(即你要写代码的电脑,Windows/Mac/Linux)打开终端/Git Bash:
code
Bash
ssh-keygen -t rsa -b 4096 -C “your_email@example.com”
一路回车即可
查看生成的公钥:
cat ~/.ssh/id_rsa.pub复制显示的一长串字符(以 ssh-rsa 开头)。
回到 GitLab 网页 -> 右上角头像 -> 偏好设置 (Preferences) -> SSH 密钥 (SSH Keys)。
将内容粘贴到“密钥”框中,点击“添加密钥”。
3. 上传代码
回到你刚才创建的 GitLab 空白项目页面,它会提示你如何上传。
情况 A:上传现有的本地代码文件夹
cd existing_folder git init git remote add origin http://192.168.1.100/root/my-first-project.git git add . git commit -m "Initial commit" git push -u origin master情况 B:克隆新项目
git clone git@192.168.1.100:root/my-first-project.git cd my-first-project touch README.md git add README.md git commit -m "add readme" git push -u origin main第五阶段:常用维护命令
GitLab 提供了一个命令行工具 gitlab-ctl 来管理服务。
重新加载配置: (修改了 /etc/gitlab/gitlab.rb 后必须执行)
sudo gitlab-ctl reconfigure启动/停止/重启所有服务:
sudo gitlab-ctl start sudo gitlab-ctl stop sudo gitlab-ctl restart查看服务状态:
sudo gitlab-ctl status查看日志: (排查问题用)
sudo gitlab-ctl tail常见问题排查
访问报 502 Whoops, GitLab is taking too much time to respond:
原因:通常是内存不足或者服务正在启动中。
解决:刚启动需要等待 2-3 分钟。如果一直 502,请检查服务器内存是否大于 4GB,可以通过增加 Swap 分区临时解决。
修改端口(如果 80 端口被占用):
编辑配置文件:sudo vim /etc/gitlab/gitlab.rb
找到 external_url 修改为带端口的,例如:‘http://192.168.1.100:8088’
找到 nginx[‘listen_port’] 取消注释并改为 8088。
执行 sudo gitlab-ctl reconfigure。
忘记 root 密码:
进入控制台:sudo gitlab-rails console -e production
执行命令重置:
Ruby user = User.where(id: 1).first user.password = 'NewPassword123!' user.password_confirmation = 'NewPassword123!' user.save! exit