内网 GitLab CE 部署与配置指南(精要)
面向嵌入式软件团队的内网 GitLab 自建说明。细节命令见「操作命令手册」。
安全约定:仅内网使用,不做公网暴露;管理员首次登录后立即改密。
1. 环境与拓扑
| 项 | 示例值 |
|---|---|
| 角色 | GitLab 服务器 |
| 系统 | Ubuntu 22.04 · Omnibus CE |
| 规格 | 约 8C / 16G / 大容量磁盘 |
| Web | http://<GITLAB_HOST> |
| 端口 | 22(SSH/Git SSH)· 80(Web/HTTP Git) |
开发机
浏览器 / Git
浏览器 / Git
HTTP:80
SSH:22
SSH:22
GitLab CE
Omnibus
Omnibus
数据/备份
大容量磁盘
/ 或 /data
/ 或 /data
ping 通只说明 ICMP 可达。上线前仍需确认浏览器能开 80、以及能 SSH 登录服务器。
2. 服务器准备(摘要)
- 基础信息查询:
hostnamectl/free -h/nproc/df -h/lsblk/ 时区 - 基础包:
curl、openssh-server、ca-certificates、tzdata、postfix - 时区:
Asia/Shanghai - 防火墙:放行 22/80(本机 ufw 或公司硬件防火墙)
- 确认 80 端口空闲(Omnibus 默认占 80)
3. 数据盘策略(先判定再动手)
| DISK_CASE | 表现 | 处理 |
|---|---|---|
| A | 根分区已是数 TB | 用默认 /var/opt/gitlab,不要乱 mkfs |
| B | 有未挂载大盘 | 挂到 /data,再改 git_data_dirs / backup_path |
| C | 大盘已挂好 | 在已有挂载点下建子目录并指向 |
lsblk / df -h 查看信息
▼
判定 DISK_CASE:A / B / C
▼
A → 默认路径
B → 挂 /data
C → 已有挂载点
▼
安装 GitLab → 按需写 gitlab.rb → reconfigure
情况 B 要点:
mkfs会清空目标盘;- 用 UUID 写
/etc/fstab; - 建议目录
/data/gitlab/git-data、backups。
首装顺序:先挂好盘 → 写好gitlab.rb→ 再reconfigure,避免二次迁移。
4. 安装与首次登录
bash
# 添加官方源后
EXTERNAL_URL="http://<GITLAB_HOST>" apt install -y gitlab-ce
gitlab-ctl status
cat /etc/gitlab/initial_root_password # 约 24 小时内有效- 浏览器打开
http://<GITLAB_HOST> - 用户
root+ 初始密码登录 → 立即改强密码 - 常用:
gitlab-ctl status|restart|reconfigure|tail
5. 管理后台与组织约定
| 配置 | 建议 |
|---|---|
| 注册 | 关闭公开注册,管理员创建或邀请 |
| 仓库可见性 | 默认 Private |
| 单仓大小 | 按磁盘设上限(如 2~5GB 起步) |
| 本期可后做 | HTTPS、CI Runner、LDAP、SMTP |
角色:Owner(极少)→ Maintainer(负责人)→ Developer(日常)→ Reporter(只读)→ Guest
分支保护建议
| 分支 | 建议 |
|---|---|
main | Protected,禁止 force push,Maintainer 合并 |
feature/* | 不保护,Developer 自由推 |
release/*、Tag v* | Protected |
Group 按产品线建;一独立编译/发布单元 = 一仓,避免巨型单体仓。
6. 开发机接入与嵌入式约定
- 配置
user.name/user.email - 推荐 SSH Key;或 HTTP + Personal Access Token(用户名常用
oauth2) - 日常:
feature/*→ 提 Merge Request → Maintainer 合入
| 应进 Git | 不建议进 Git |
|---|---|
| 源码、构建脚本、小配置 | build/、*.o/*.elf 等可重建产物 |
| 非机密文档 | 密钥、私钥、客户机密参数 |
.gitignore(必配) | GB 级二进制(改用 LFS/制品区) |
7. 备份与升级
完整恢复至少需要:
gitlab-backup create备份包/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json(丢失可能无法解密部分数据)
建议 cron 定时备份,并另拷一份到其它机器。升级只走官方路径,禁止跨多版本一次跳;升级前完整备份并通知暂停 push。
8. 上线验收清单(摘要)
- [ ] SSH / Web 可访问,管理员密码已改
- [ ] 公开注册已关;DISK_CASE 已确认
- [ ] Group/Project/保护分支就绪
- [ ] 至少一台开发机 clone/push 成功
- [ ] 已做过一次手动备份
附件 · Cursor Skills(可下载)
本流程对应 Agent 可执行模块(放在项目 .cursor/skills/,也可直接下载 zip):
| 附件 | 说明 |
|---|---|
| gitlab-local-skills.zip | gitlab-local-00~07 全套 Skill |
| Skills 目录浏览 | 解压后的目录结构 |
| Skills索引.md | 顺序与话术 |
换服务器:先改 gitlab-local-00-orchestrate/env-template.md,再按 01→07 执行。