Skip to content

内网 GitLab CE 部署与配置指南(精要) ​

面向嵌入式软件团队的内网 GitLab 自建说明。细节命令见「操作命令手册」。

安全约定:仅内网使用,不做公网暴露;管理员首次登录后立即改密。


1. 环境与拓扑 ​

项示例值
角色GitLab 服务器
系统Ubuntu 22.04 · Omnibus CE
规格约 8C / 16G / 大容量磁盘
Webhttp://<GITLAB_HOST>
端口22(SSH/Git SSH)· 80(Web/HTTP Git)
开发机
浏览器 / Git
HTTP:80
SSH:22
GitLab CE
Omnibus
数据/备份
大容量磁盘
/ 或 /data

ping 通只说明 ICMP 可达。上线前仍需确认浏览器能开 80、以及能 SSH 登录服务器。


2. 服务器准备(摘要) ​

  1. 基础信息查询:hostnamectl / free -h / nproc / df -h / lsblk / 时区
  2. 基础包:curl、openssh-server、ca-certificates、tzdata、postfix
  3. 时区:Asia/Shanghai
  4. 防火墙:放行 22/80(本机 ufw 或公司硬件防火墙)
  5. 确认 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 要点:

  1. mkfs 会清空目标盘;
  2. 用 UUID 写 /etc/fstab;
  3. 建议目录 /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 小时内有效
  1. 浏览器打开 http://<GITLAB_HOST>
  2. 用户 root + 初始密码登录 → 立即改强密码
  3. 常用:gitlab-ctl status|restart|reconfigure|tail

5. 管理后台与组织约定 ​

配置建议
注册关闭公开注册,管理员创建或邀请
仓库可见性默认 Private
单仓大小按磁盘设上限(如 2~5GB 起步)
本期可后做HTTPS、CI Runner、LDAP、SMTP

角色:Owner(极少)→ Maintainer(负责人)→ Developer(日常)→ Reporter(只读)→ Guest

分支保护建议

分支建议
mainProtected,禁止 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. 备份与升级 ​

完整恢复至少需要:

  1. gitlab-backup create 备份包
  2. /etc/gitlab/gitlab.rb
  3. /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.zipgitlab-local-00~07 全套 Skill
Skills 目录浏览解压后的目录结构
Skills索引.md顺序与话术

换服务器:先改 gitlab-local-00-orchestrate/env-template.md,再按 01→07 执行。