如果希望在自己的服务器上搭建字体站,可以遵照如下的方式,一步一步进行部署即可。
系统要求:
- Linux/Unix
环境要求:
- node 4.5+
- npm 3.x
- mysql 5.5+
- fontconfig lib
npm 应该升级到 3.x,升级方式为:
$ sudo npm install -g npm@3 --registry=https://registry.npm.taobao.org
应该提前配置好 mysql 的服务,创建一个用户及其登录密码(可参考这篇文章),并在里面创建一个 utf-8
编码的数据库。数据库名字、用户名、密码应和下面配置项中的名字保持一致。
下载图标 png 图片依赖 fontconfig,安装方式:
CentOS
$ yum install fontconfig
Ubuntu
$ apt-get install fontconfig
OS
$ sudo brew install fontconfig
其他系统请自行 Google 解决。
安装构建工具 yicon builder,运行命令:
$ npm install yicon-builder -g
安装完成之后,会在拥有一个 yicon
的命令。运行 yicon init
,可以按照提示进行安装:
这个是项目的安装路径,安装时会生成如下的目录结构:
├── config.json
├── logs
└── src
这里是连接数据库的必备选项,包含以下内容:
- 数据库域名,即数据库服务的域,如果配置在本地就填写默认
127.0.0.1
; - 数据库用户名,即登录数据库的默认用户,默认为
root
; - 数据库密码,必须按照上文所述,给数据库设定一个密码,默认为
123456
; - 数据库端口号,默认
3306
; - 数据库名称,必须在设置之前创建并指定一个特定的数据库,推荐为默认值
iconfont
;
配置完成后将生成配置文件,并尝试连接数据库,如果连接期间存在问题,将无法自动导入数据表,安装程序会将创建数据表的 sql 文件置入安装路径中,需要稍后手动导入。
由于本应用没有接入第三方登录,因此依赖内部系统的 cas、sso 或 ldap 等三种登录模式。应用只需要提供相关 url 即可。
选择 cas 或 sso 时,在生成的配置文件中,我们会看到如下配置:
{
"login": {
"ssoType": "cas",
"authUrl": "http://cas.example.com/cas/login?service={{service}}",
"tokenUrl": "http://cas.example.com/serviceValidate?service={{service}}&ticket={{token}}",
"serviceUrl": "http://app.iconfont.com",
"adminList": []
}
}
这里面的配置项含义如下:
ssoType
: 根据用户输入自动生成登录类型,会分别按照 cas 和 sso 的规则进行登录;authUrl
: 指点击登录按钮时需要跳转的 url,通常是一个登录页面,用户在这个页面登录后,会给服务端返回一个 token;tokenUrl
: 服务端在获取 token 之后,可以通过这个 url 来获取用户的详细信息;serviceUrl
: 通常这两种服务都需要提供当前域名,这里可以配置 iconfont 字体站服务的域名;adminList
: 字符串格式的数组,里面可以写入超管的用户名,用于配置超管,如['minghao.yu']
。
url 中的 {{xxx}}
格式表示占位符,其中 {{service}}
会被替换成 serviceUrl
,{{token}}
会被替换成获取的 token。
选择 ldap 时,在生成的配置文件中,我们会看到如下配置:
{
"login": {
"ssoType": "ldap",
"server": "ldap://127.0.0.1:1389",
"bindDn": "cn=root",
"baseDn": "test",
"bindPassword": "secret",
"searchDn": "cn=root"
}
}
该项配置只支持默认配置,且功能默认不开启,如需在图标项目中接入同步 source 功能,请手动修改 config.json
配置项,并自行提供上传服务,接口文档详见source 接口
{
"source": {
"support": false,
"infoUrl": "",
"versionUrl": "",
"sourceUrl": "",
"cdn": ""
}
}
这里面的配置项含义如下:
support
: 在图标项目中是否开启“同步 source”功能,默认为 false,不开启;infoUrl
: 查询项目的 source 信息的 url,用于在配置上传路径时,检查配置的路径是否存在;versionUrl
: 获取项目 source 上最高版本的 url,用于跟 yicon 平台上对应项目的版本进行对比,版本一致时,不允许上传,不一致时,上传并生成新的版本(基于 yicon 平台对应项目最高版本和 source 最高版本);sourceUrl
: yicon 平台将需要上传的字体文件通过 post 请求发送到该 url,通过该接口将接收到的字体文件上传到 source 服务;cdn
: source(cdn)服务地址,用于字体文件同步到 source 成功后生成的引用地址。
注: 因为各个公司的 source 平台不一致,所以无法提供统一的上传服务,需要接入方根据自身 source 平台和接口文档自行实现上传服务
初始安装成功后,会提示需要进入到安装路径的 src 路径下执行 npm install
进行依赖安装,目前只提供淘宝源,如果有自己指定的源,可以选择 3) other
,然后手动输入源(如输入 http://registry.npm.xxx.org
)。
安装依赖完成之后,会在 /src
目录下执行 npm run build
进行静态资源编译;如果编译出错,可以去项目路径中手动执行 npm run build
编译。
依赖安装完成后,进入到安装路径的 src 路径下执行 ./start.sh
进行项目启动,或者自行选择使用 pm2 等工具进行启动。
通过 ykit init -h
可以查看该指令的参数
$ yicon init -h
Options:
-d, --default # 默认配置
-b, --branch <branch> # 指定 yicon 初始化分支或 tag
-h, --help # output usage information