Bit 最佳实践 - 第一节:搭建 bit server 私服

4,233 阅读2分钟

如何搭建 bit server 私服

为什么要搭建 bit 私服?

其实 bit.dev 官方提供便捷的支持 http、ssh协议的组件 export & import 方式,以及可预览可搜索的完善的组件市场。

但是团队想使用 bit 的整套方案是需要收费的,而且很多时候,许多内部的代码是不太适合放到开放的 bit.dev 上。

所以既想拥有私密性,又想白嫖,那么就只有搭建私服了。

需求和可行性

bit.dev 开放的 bit cli[npm i bit-bin -g] 是支持搭建私服功能,当然白嫖的东西不会好到哪里去,缺点也是很明显的:

  1. 仅支持 ssh 协议——那就没发做细粒度的权限控制了
  2. 没有管理后台,没有组件市场

对于 1,毕竟是内部用的,权限的问题倒也还好;2,其实也比较好通过 docz* styleguidiest 快速的实现一个简易版的通用组件市场,满足自动文档、在线预览的需求即可。

步骤

硬件设施

  • 一台主要是硬盘够大的linux台式机
  • 开启 80,22 两个端口的访问权限

软件

域名和端口

配置域名,比如 xxxx-bit.com 指向这台机器的 80 端口,ssh 协议会被解析到 22 端口

bit 初始化

安装依赖:

# 创建 bit 账号
useradd bit
install git
install node v10+
npm i bit-bin -g

选择挂载的大盘——如果有的话——比如:/data/,官方默认的建议是 /opt/

mkdir /data/bit
mkdir /data/bit/first-test-scope
cd $!
bit init --bare

这样,在我们的客户端机器上就可以:

npm i bit-bin -g
mkdir my-client-test
cd $!
bit init
bit remote add ssh://bit@xxxx-bit.com:/data/bit/first-test-scope

当然这个时候,client 会提示输入 ssh 登录远端 linux 机器的用户名和密码——实际使用的时候不可能每次都去输入linux系统的用户名和密码的——除了麻烦,还会造成密码的散播。

所以还需要配置远端 linux 的免密登录:

touch /home/bit/.ssh/authorized_keys
chmod 600 /home/bit/.ssh/authorized_keys

然后把所有客户端机器的 id_rsa.pub 公钥内容添加到远端 authorized_keys 内,在客户端配置 ssh header 即可,例如:

ssh-add

管理后台

但是手动维护 authorized_keysscope 的体验实在太差了,而且不利于 scope 数据化管理,所以需要一个管理后台:

  • 管理维护 authorized_keys
  • 管理维护所有组件集合数据

组件市场

组件市场实现的技术方案草案:

React 组件

使用 react-styleguidist + @craco 作为组件文档站技术方案

Vue 组件

使用 vue-styleguidist

相关命令:

bit remote add ssh://bit@xxxx-bit.com/data/bit/selected-scope
bit import selected-scope/* --override
// then build

TODO

后续计划:

  • 开源出管理后台前后端代码
  • 共享组件市场实现技术方案细节,并开源相关代码