温馨提示×

Debian怎么部署GitLab

小樊
34
2026-07-07 05:01:02
栏目: 智能运维

Debian 上部署 GitLab,官方最推荐、最稳定的方式是使用 Omnibus 包。下面我按 最新 Debian(11/12) 给你一个完整、可用的部署流程(含常见坑)。


一、准备环境

1️⃣ 系统要求(最低)

  • Debian 11(Bullseye)或 Debian 12(Bookworm)
  • 至少 4GB 内存(2GB 会非常卡)
  • CPU:2 核以上
  • 磁盘:20GB+

2️⃣ 更新系统

sudo apt update && sudo apt -y upgrade

二、安装依赖

sudo apt install -y \
  curl \
  openssh-server \
  ca-certificates \
  tzdata \
  perl

三、添加 GitLab 官方仓库

1️⃣ 下载并运行 GitLab 安装脚本

curl -fsSL https://packages.gitlab.com/setup.sh | sudo bash

✅ 该脚本会自动识别 Debian 版本


四、安装 GitLab(关键步骤)

1️⃣ 设置访问地址(非常重要)

sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee

推荐做法(本地或内网)

sudo EXTERNAL_URL="http://你的服务器IP" apt install gitlab-ee

例如:

sudo EXTERNAL_URL="http://192.168.1.100" apt install gitlab-ee

⚠️ 如果你打算用域名,请提前解析好 DNS


五、初始化 GitLab

sudo gitlab-ctl reconfigure

⏳ 第一次会耗时 2–5 分钟


六、访问 GitLab

浏览器访问:

http://服务器IP

默认账号

  • 用户名:root
  • 密码获取方式:
sudo cat /etc/gitlab/initial_root_password

⚠️ 密码只在 24 小时内可见


七、基础配置(非常重要)

1️⃣ 修改配置文件

sudo nano /etc/gitlab/gitlab.rb

常见修改项:

external_url 'http://gitlab.example.com'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_default_from_email'] = 'gitlab@example.com'

修改后执行:

sudo gitlab-ctl reconfigure

八、常用管理命令

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

九、可选:开启 HTTPS(推荐)

方式一:Let’s Encrypt(自动)

letsencrypt['enable'] = true
external_url 'https://gitlab.example.com'

然后:

sudo gitlab-ctl reconfigure

十、常见问题

❌ 内存不足

  • 建议 4GB+
  • 或关闭部分服务(不推荐新手)

❌ 访问 502

  • 等待 1–2 分钟
  • 或检查端口 80 / 8080 是否被占用

❌ 卡在 reconfigure

  • 检查 /etc/hosts
  • 确保 hostname -f 有返回值

十一、CE 还是 EE?

版本 说明
GitLab EE 官方默认,免费功能够用
GitLab CE 已合并进 EE

直接装 EE 即可


十二、总结(最简流程)

apt update
apt install -y curl openssh-server
curl -fsSL https://packages.gitlab.com/setup.sh | bash
EXTERNAL_URL="http://服务器IP" apt install gitlab-ee
gitlab-ctl reconfigure

如果你愿意,可以告诉我:

  • ✅ Debian 版本
  • ✅ 是否内网 / 公网
  • ✅ 是否要 Docker 部署
  • ✅ 是否要 中文界面

我可以给你 定制版部署方案(比如 Docker + Nginx + HTTPS)。

0