温馨提示×

GitLab怎么在Debian部署

小樊
39
2026-08-17 12:08:17
栏目: 智能运维

下面给你一份在 Debian 上部署 GitLab(CE 社区版)的完整实操指南,适合生产环境,基于 Omnibus 包方式(官方推荐,最省心)。


一、准备环境

1️⃣ 系统要求

  • Debian 11 (Bullseye) 或 Debian 12 (Bookworm) ✅
  • 最低配置(建议)
    • CPU:2 核
    • 内存:4GB 以上(2GB 会很卡)
    • 磁盘:20GB+(视仓库大小)

2️⃣ 更新系统

sudo apt update && sudo apt upgrade -y

二、安装依赖

sudo apt install -y \
  curl \
  openssh-server \
  ca-certificates \
  tzdata \
  gnupg \
  lsb-release

三、添加 GitLab 官方仓库

1️⃣ 导入 GitLab GPG 公钥

curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg

2️⃣ 添加 GitLab APT 源

echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] \
https://packages.gitlab.com/gitlab/gitlab-ce/debian $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list

四、安装 GitLab CE

1️⃣ 更新索引

sudo apt update

2️⃣ 安装 GitLab(关键步骤)

sudo apt install -y gitlab-ce

⚠️ 这一步会安装 Omnibus GitLab(包含 Nginx、PostgreSQL、Redis 等)


五、初始化配置(非常重要)

1️⃣ 编辑配置文件

sudo vim /etc/gitlab/gitlab.rb

2️⃣ 设置访问地址(必改)

external_url 'http://gitlab.example.com'

✅ 如果是 IP 访问

external_url 'http://192.168.1.100'

✅ 如果是 HTTPS

external_url 'https://gitlab.example.com'

3️⃣ 应用配置(第一次会较慢)

sudo gitlab-ctl reconfigure

✅ 看到 gitlab Reconfigured! 表示成功


六、访问 GitLab

浏览器访问:

http://服务器IP

首次登录

  • 用户名:root
  • 密码在:
sudo cat /etc/gitlab/initial_root_password

⚠️ 密码只显示一次,建议立即修改


七、常用管理命令

功能 命令
启动 sudo gitlab-ctl start
停止 sudo gitlab-ctl stop
重启 sudo gitlab-ctl restart
查看状态 sudo gitlab-ctl status
查看日志 sudo gitlab-ctl tail

八、配置防火墙(如有)

sudo ufw allow 80
sudo ufw allow 22
sudo ufw enable

九、可选优化(强烈建议)

✅ 1. 启用 HTTPS(Let’s Encrypt)

letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true

然后:

sudo gitlab-ctl reconfigure

✅ 2. 配置 SMTP 邮箱(用于通知)

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

十、常见问题

❌ 502 错误

  • 内存不足
  • gitlab-ctl reconfigure 未完成
  • 端口被占用

❌ 很卡

  • 增加内存
  • 关闭部分服务(Runner / Container Registry)

十一、适合你的方案总结

新手 / 生产环境 → Omnibus(本文)
大规模 / k8s → GitLab Helm Chart
轻量测试 → Docker GitLab(不稳定)


如果你告诉我:

  • Debian 版本
  • 本机 / 云服务器
  • 是否要 HTTPS
  • 是否中文界面

我可以帮你「定制一份最小化 + 最优配置」。

0