← 返回作品
企业 DevOps 平台 · 已上线运行

DEVOPS PLATFORM / ENTERPRISE PRACTICE

企业研发代码平台内网自建,钉钉直达

在一台内网服务器上搭起研发团队的代码管理平台,并把它和公司钉钉打通:扫码免登、真名账号、工作台入口、入离职自动同步、使用指引与品牌定制。全程零公网依赖,员工一个密码都不用记。

  • 0公网依赖
  • 15min入离职对账
  • 0密码维护
  • 1内网服务器
platform status
  • gitlabrunning
  • oauth2-bridgerunning
  • user-sync.timer15min
  • signin-guideapplied
  • brand-assetscustom

BACKGROUND

研发代码,需要一个自己说了算的地方

研发团队规模不大,但代码是公司最核心的技术资产。托管在外部平台上,账号怎么管、离职后权限怎么收、新人怎么知道去哪儿看代码,全是悬着的问题。目标很明确:把代码放到自己能掌控的地方,同时不能让同事多记一套账号密码。

  1. 01员工浏览器打开代码平台地址,点「钉钉登录」,不用输账号密码。
  2. 02自建适配网关承接登录请求,把 GitLab 的协议翻译成钉钉能听懂的语言。
  3. 03钉钉开放平台员工在企业钉钉里扫码授权,回传身份标识。
  4. 04代码平台首次登录自动建号,之后一键直达,账号姓名与组织架构一致。
旁路任务 定时对账程序每 15 分钟比对一次钉钉通讯录与平台账号:员工离职自动停用,复职自动恢复,管理员账号受保护跳过。

CORE CAPABILITIES

五项能力,把平台真正交付出去

搭起来只是开始。让同事愿意用、用得顺、走了能自动收回权限,才算真正落地。

01

钉钉扫码免登

官方版本并不支持钉钉登录,于是在中间加了一层自建网关做协议适配,打通扫码授权全流程。

  • 员工用钉钉扫码即登录,无需单独密码
  • 首次登录自动建号,昵称取组织架构真名
  • 所有请求都在内网闭环,零公网依赖
02

拼音用户名体系

把默认的随机编号账号,换成姓名全拼,让代码提交记录里的人名一眼就能认出来。

  • 中文姓名自动转全拼,例如「张剑浩」→ zhangjianhao
  • 建号前实时查重,重名自动追加序号
  • 历史账号平滑迁移,提交记录不丢失
03

钉钉工作台入口

把平台作为应用放进企业钉钉工作台,同事从每天都会打开的入口一键直达。

  • 应用入口与免登打通,点开即已登录
  • 新人入职当天就能在工作台看到
  • 不用再口头传播内网地址
04

入离职自动同步

与钉钉通讯录定时对账,权限跟着人事状态走,不依赖任何人的记忆。

  • 每 15 分钟同步一次,离职自动停用账号
  • 复职自动恢复权限,无需人工介入
  • 管理员账号白名单保护,避免误伤
05

使用指引与 SOP

在登录页放一个不打扰的入口,指向一份面向全员的操作指引,把培训成本降到最低。

  • 登录页下方入口直达在线文档
  • 涵盖登录、克隆、提交、常见问题
  • 文档可随时更新,无需改动平台
06

企业品牌定制

从登录页到浏览器标签,整套视觉换成公司自己的样子,员工一眼确认「这是我们的平台」。

  • 登录页替换为企业 LOGO,居中呈现
  • 站点标题与浏览器图标统一替换
  • 外观资源集中存放,升级后可重建

IMPLEMENTATION

技术要点

每一层都选了成熟、可维护、不依赖外部服务的方案,让这套平台能在内网长期自己跑下去。

模块方案关键细节
平台底座GitLab CE 19.3.1 单机版一台内网服务器承担全部服务,数据落地本地,不对外开放。
登录接入通用 OAuth2 提供商 + 自建适配网关平台与钉钉的协议不同,用中间层做翻译,避免改动平台源码。
网关服务Python + waitress + systemd常驻内网端口,开机自启、进程异常自动重启,无需人为看护。
身份信息钉钉开放平台接口换取用户身份后取组织架构真名与唯一标识,用于建号和去重。
用户名生成pypinyin + 实时查重姓名转全拼作为用户名,建号前向平台查询是否占用,重复则递增序号。
定时对账systemd timer每 15 分钟运行一次同步任务,按人事状态批量停用或恢复账号。
运营入口登录页视图补丁 + 幂等脚本新增指引入口写成可重复执行的脚本,平台升级覆盖视图后一键重建。
品牌资源外观配置 + 静态资源替换LOGO、站点标题、浏览器图标统一替换,素材集中归档便于复用到其他系统。

INTERFACE

界面实录

平台在真实环境中的三个关键界面:登录入口、使用界面,以及同事日常触达它的地方。

网页登录页:钉钉登录入口与使用指引
▲ 网页登录页:钉钉登录作为主入口,下方保留一个不打扰的「使用指引」入口。
登录后的平台首页
▲ 登录后的首页:钉钉扫码直达,进入即已登录,待办、合并请求与工作项一屏可见。
钉钉工作台中的应用入口
▲ 钉钉工作台入口:平台作为应用出现在同事每天都会打开的位置,点开即用。

VALUE & BOUNDARY

交付了什么,以及它的边界

老实说清楚哪些问题被解决了、哪些还受条件限制,比只报喜更有用。

WHAT WE SHIPPED

从「能跑」到「同事真的在用」,中间隔着一整套运营细节。

解决的问题

  • 代码资产回到公司自己的服务器,权限完全自主
  • 全员零密码,登录动作从「记账号」变成「扫一下」
  • 离职权限不再依赖人工回收,人事状态即权限状态
  • 代码提交记录里的人名,同事之间一眼能对上
  • 培训成本压到一份在线指引,新人自助上手

已知边界

  • 平台仅在内网访问,外网需先接入公司网络
  • 账号体系依赖钉钉组织架构,人事数据准确是前提
  • 平台升级后需重建一次登录页补丁与品牌资源
  • 内网环境未配置公网域名,登录回跳走浏览器而非服务端回调

READ MORE

完整实录

两小时,用 AI 落地企业级 GitLab + 钉钉免登

从选型对比到链式升级、自建登录网关、三个教科书上没有的坑,以及可以照着抄的提示语清单。

阅读全文 →