如何搭建 bit server 私服
为什么要搭建 bit 私服?
其实 bit.dev 官方提供便捷的支持 http、ssh协议的组件 export & import 方式,以及可预览可搜索的完善的组件市场。
但是团队想使用 bit 的整套方案是需要收费的,而且很多时候,许多内部的代码是不太适合放到开放的 bit.dev 上。
所以既想拥有私密性,又想白嫖,那么就只有搭建私服了。
需求和可行性
bit.dev 开放的 bit cli[npm i bit-bin -g] 是支持搭建私服功能,当然白嫖的东西不会好到哪里去,缺点也是很明显的:
- 仅支持 ssh 协议——那就没发做细粒度的权限控制了
- 没有管理后台,没有组件市场
对于 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_keys 和 scope 的体验实在太差了,而且不利于 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
后续计划:
- 开源出管理后台前后端代码
- 共享组件市场实现技术方案细节,并开源相关代码