NIcon部署指南 - Iconfont平台

背景

    前端开发过程当中,须要用到一系列的icon,使用iconfont可极大的方便开发,减小http请求,可是阿里的iconfont平台是我的帐号登陆管理,不利于公司层面的规范和统一管理,所以,不少公司都不会过分依赖三方平台,这就须要咱们为公司搭建本身的iconfont平台。根据一段时间的调研,去哪儿研发的iconfont平台yicon和github的开源项目nicon都是可部署的开源iconfont平台,可内网部署接公司统一登陆系统。yicon的搭建相对简单可参考官网,此文只针对nicon的搭建给出本身的经验。html

1、环境要求

  1. nicon项目源码;
  2. nodejs v8.17.0(因为模块不兼容,node版本超过8以后就出现启动失败问题,须要总体升级);
  3. npm >= 6.13.4;
  4. mogodb 3.2+;
  5. redis 3.2+;

2、环境搭建

1)mongodb数据库

    1. 安装平台依赖包:前端

sudo yum install libcurl openssl
复制代码

    2.下载mongodb:node

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.4.2.tgz # 下载
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz # 解压

mv mongodb-src-r4.2.8  /usr/local/mongodb4 # 将解压包拷贝到指定目录
复制代码

    3. 配置环境变量linux

~/.bashrc:
export PATH=<mongodb-install-directory>/bin:$PATH

eg:export PATH=/usr/local/mongodb4/bin:$PATH
新增后重启配置文件,使之生效:source .bashrc

mongodb如何使用,可查看网上教程
复制代码

2)redis服务搭建

    1. 下载redisgit

# 可根据官方版本号下载对应版本;
wget http://download.redis.io/releases/redis-6.0.9.tar.gz 
复制代码

    2. 将redis拷贝到指定目录下github

cp redis-3.0.0.rar.gz /usr/local
复制代码

    3. 解压源码包web

tar -zxvf redis-6.0.9.tar.gz 
复制代码

    4. 进入目录并编译redis

cd /usr/local/redis-6.0.9
make PREFIX=/usr/local/redis install
复制代码

    5. 拷贝配置文件mongodb

cd /usr/local/redis
cp /usr/local/redis-6.0.9/redis.conf  /usr/local/redis/bin
复制代码

    6. 启动redus服务数据库

建议配置下环境变量:
export PATH=<redis-install-directory>/bin:$PATH
前端模式启动:
./redis-server

后端模式启动:
修改redis.conf配置文件, daemonize yes 之后端模式启动
redis-server ./redis.conf
复制代码

     7. 链接redis

redis-cli  
复制代码

     8. 关闭redis

redis-cli shutdown
pkill redis-server


开机自启动
vim /etc/rc.local
//添加
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
复制代码

3)项目启动

# 克隆项目
git clone git@github.com:bolin-L/nicon.git

# 安装依赖
cd nicon && npm install(or yarn install)

# 启动
npm run publish
复制代码

4)修改配置

# bin/start.sh 将bin下的start_example.sh重命名为start.sh

#!/bin/bash# mongodb config
export MONGODB_NAME=iconRepo;
export MONGODB_HOST=127.0.0.1;
export MONGODB_PORT=27017;
export MONGODB_USERNAME='';
export MONGODB_PASSWORD='';

# redis
export REDIS_FAMILY=4;
export REDIS_HOST=10.0.10.37;
export REDIS_PORT=6379;
export REDIS_PASSWORD='test12345';
export REDIS_DB=0;

# config your website host
export productHost='10.113.129.163';

# if you want login by github and upload by qiniu, set productType
export productType='default';

# start command
node index.js

配置完mongodb数据库和redis服务,项目配置完成了近半,此时项目已经能够启动查看效果;
复制代码

5)配置登陆

# if you want login by github and upload by qiniu, set productType
export productType='default';
复制代码

在4的配置中,有个productType的配置项,该项主要用于配置平台的登陆和资源上传,默认格式{login}_{upload},项目默认支持两种登陆default、github,支持两种资源上传方式default、qiniu,所以默认支持的productType可选值:default、default_qiniu、github_default、github_qiniu。如需其余的登陆方式和上传方式可选择default并自行修改代码实现。当productType的值为这4个时,三方服务脚本是不须要配置的。

三方服务配置脚本就在如下的文件夹结构中生成名称为productType值的文件夹,有index.js、config.js两个文件。 除了如下的文件夹,用户配置后生成的文件夹都会被ignore掉。

├── service
│   ├── login
│   │   ├── default
│   │   │   ├── config.js
│   │   │   └── index.js
│   │   ├── github
│   │   │   ├── config.js
│   │   │   └── index.js
│   │   ├── github_qiniu
│   │   │   ├── config.js
│   │   │   └── index.js
│   │   ├── index.js
│   └── upload
│       ├── default
│       │   ├── config.js
│       │   └── index.js
│       ├── github_qiniu
│       │   ├── config.js
│       │   └── index.js
│       ├── index.js
│       └── qiniu
│           ├── config.js
│           └── index.js
复制代码

注:曾尝试自定义配置ldap登陆,productType=‘ldap’,在service下创立ldap目录并新建index.js和config.js,发现项目启动会报错,可能仍须要在代码某处进行配置,让登陆时调用ldap下的文件,暂未发掘如何自定义配置,若是须要自定义登陆方式,可选用default

  • default登陆
    使用项目自带的注册登陆,需先注册,注册信息将写入mongodb数据库,使用default方式登陆,相对简单,只需再配置上传服务,便可完成整个项目的上线。
  • github三方登陆
    使用github三方登陆,可参考文章www.ruanyifeng.com/blog/2019/0…
  • 自定义登陆
    ldap登陆:开发中,详细内容待补充。

6)上传服务

项目默认支持qiniu上传,只需配置下相关信息便可,一般内网部署势必要上传到本身的服务器,须要手动编写上传服务。

相关文章
相关标签/搜索