Skip to content

GitLab 本地部署操作命令手册(按步执行) ​

标记约定

标记含义
【Win】本机 CMD / PowerShell / Git Bash
【SRV】已 SSH 登录 Ubuntu 之后

换服务器时先改下表,命令里的 IP 一并替换。

变量含义
GITLAB_HOST服务器 IP
EXTERNAL_URLhttp://<HOST>
DISK_CASEA / 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' || true

03 · 数据盘 ​

  • 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.zip00 编排 → 01 摸底 → … → 07 备份
Skills索引.md话术与顺序

对 Agent 可说:「读取 gitlab-local-00,HOST=…,从 01 开始」。