GitLab 本地部署操作命令手册(按步执行)
标记约定
| 标记 | 含义 |
|---|---|
| 【Win】 | 本机 CMD / PowerShell / Git Bash |
| 【SRV】 | 已 SSH 登录 Ubuntu 之后 |
换服务器时先改下表,命令里的 IP 一并替换。
| 变量 | 含义 |
|---|---|
GITLAB_HOST | 服务器 IP |
EXTERNAL_URL | http://<HOST> |
DISK_CASE | A / B / C(见下) |
DEFAULT_BRANCH | 建议 main |
总流程
01 连通摸底
→
02 系统准备
→
03 数据盘
→
04 安装 CE
▼
05 管理后台
→
06 开发机接入
→
07 备份 cron
操作习惯:【SRV】每次只贴 一条 命令 → Enter → 等提示符回来再下一条。不要把多条粘成一块。
01 · 连通与摸底
【Win】 先通网,再登录(部分环境 Windows 自带 ssh 易被断开,可用 PuTTY / plink):
bat
ping -n 4 <GITLAB_HOST>【SRV】 采集:
bash
hostnamectl; free -h; nproc; df -h
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL
timedatectl
ss -lntp | grep -E ':80|:8080' || true判定 DISK_CASE:根分区已是数 TB → A(本环境常见);有未挂载大盘 → B;已挂好 → C。
02 · 系统准备(【SRV】)
bash
# postfix 预置(减少弹窗)后
apt update
DEBIAN_FRONTEND=noninteractive apt install -y curl openssh-server ca-certificates tzdata postfix
timedatectl set-timezone Asia/Shanghai
ufw status # inactive 则可跳过 ufw allow
ss -lntp | grep -E ':80|:8080' || true03 · 数据盘
- A:只核对
df -h /,不要mkfs/ 挂/data;安装后数据在/var/opt/gitlab - B:确认设备名后再分区格式化挂载(会清空盘!)
- C:在已有挂载点
mkdir子目录
可选:mkdir -p /root/gitlab-config-backup
04 · 安装 GitLab CE
bash
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
EXTERNAL_URL="http://<GITLAB_HOST>" apt install -y gitlab-ce
# 首次 reconfigure 约 5~15 分钟
gitlab-ctl status
curl -I http://127.0.0.1
grep '^Password:' /etc/gitlab/initial_root_password【Win】 浏览器登录 → 立刻改 root 密码(勿写入文档)。DISK_CASE=A:不必改 git_data_dirs。
05 · 管理后台(网页)
| 顺序 | 操作 |
|---|---|
| 1 | 关闭公开注册 |
| 2 | 创建用户 |
| 3 | 建 Group(如产品线组 + MCU 组) |
| 4 | 建 Private Project |
| 5 | 保护 main、release/* |
约定:一编译单元一仓;日常推 feature/*,经 MR 合入。
06 · 开发机接入(【Win】)
bat
git --version
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@公司.com"
ssh-keygen -t ed25519 -C "你的邮箱@公司.com"公钥贴到 GitLab → Preferences → SSH Keys。
本环境常见坑:部分 Windows 上 git.exe 直连服务器 HTTP 会 400;可用本机隧道/代理后再 clone(详见培训手册)。冒烟以「能 clone + push 特性分支」为准。
07 · 备份
bash
gitlab-backup create
mkdir -p /root/gitlab-config-backup
cp -a /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /root/gitlab-config-backup/
# crontab:每天 2:30
# 30 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1 >> /var/log/gitlab-backup.log 2>&1常见报错速查
| 现象 | 处理 |
|---|---|
Windows 下敲 hostnamectl | 先 SSH 进服务器 |
git clone http://HOST/... → 400 | 走本机 HTTP 代理/隧道 |
OpenSSH git@HOST 断开 | 管理用 plink;Git 用隧道或 HTTP+PAT |
| 能 ping 不能开网页 | gitlab-ctl status + 查 80/防火墙 |
附件 · Cursor Skills
| 附件 | 对应步骤 |
|---|---|
| gitlab-local-skills.zip | 00 编排 → 01 摸底 → … → 07 备份 |
| Skills索引.md | 话术与顺序 |
对 Agent 可说:「读取 gitlab-local-00,HOST=…,从 01 开始」。