FinClip社区版一键部署指南


  • administrators

    五分钟快速入门

    1、服务器端一键快速部署

    系统基本要求

    类目 要求
    CPU 2 核
    内存 4 GB
    硬盘 50 GB
    设备数量 1 台
    系统版本 Ubnutu / CentOS / win 10 / macOS

    1.1、部署: 服务器端

    1. 登录服务器,在任意目录切换为 root 用户执行以下命令:
    wget https://static.finogeeks.club/deploy/mop/release/install.sh && bash install.sh
    
    1. 等待一键部署脚本执行完毕,并根据脚本提示,按需修改参数:
    • 2.1. 当提示 “选择端口” 时,可根据自身需要修改,默认为 8000 端口。若 8000 端口未被信息安全部门开放或被占用,可根据需要输入自定义端口。
    请输入你想为 MOP 指定的端口,<Ctrl+退格键> 来删除错误键入
    按 <回车键> 来使用默认端口 (8000), 或手动输入:
    
    • 2.2. 当提示 “输入 IP 地址” 时,可根据自身需要修改,默认为自动获取本机(当前服务器)的 eth0 网卡内网地址
    请输入当前服务器的 IP,<Ctrl+退格键> 来删除错误键入
    请注意:这个 IP 地址会被用作外部 API 的连接地址,请结合你的网络情况,使用能够正常连接的 IP(内/外网 IP)
    按 <回车键> 使用自动获取的内网地址 (极其不推荐) , 或手动输入:
    

    若内网地址无法在用户环境被连通,请根据需要输入本机公网地址、主防火墙/路由器地址或其他网络地址。

    • 2.3. 当出现绿色闪烁字符提示 “MOP 部署完成“ 时,则代表全部部署完毕。

    1.2、部署: 桌面系统端

    1. Docker 安装(默认包含docker-compose)

    1. 下载部署文件及镜像包(将下载的文件置于同一目录):

    配置文件下载后需要重命名为 “.env”,请注意 “e” 前面有个英文句号 “.”。

    1. 加载镜像包:
    docker load -i mop-20200317.gz
    
    1. 按需修改 “配置文件” 中的部分选项:
    # common config   
    BASE_STORAGE_DIR=./data                          
     # ↑ 代表于何处存放生成的数据                        
    ZIPKIN_URL=                                
     # ↑ 请根据技术人员说明配置此项,如无说明请留空              
    ENTRY_URL=http://127.0.0.1:8000                  
     # ↑ 代表访问此服务的 IP 地址。若您只需要在本地进行访问,可以保持默认
    PORT=8000  
     # ↑ 请根据您的端口占用情况酌情配置此项               
    
    1. 进行部署:

    将修改好的 .env 文件与 docker-compose.yaml 文件置于同一目录,执行以下命令:

    docker-compose up -d
    

    接下来,稍等一下,喝杯茶,当控制台上所有服务都是done的状态后,稍等几分钟服务初始化完成即部署完成。

    1.3、部署: 虚拟机

    为了可以快速体验小程序生态,我们精心制作了虚拟机镜像VHD文件,可以方便导入到各种虚拟机软件。 我们制作的虚拟硬盘文件是基于ubuntu-18.04-LTS版本,因此在导入镜像文件时,请确保操作系统一致。 请点击下方链接下载虚拟硬盘文件,解压后即可导入。 http://img-cdn.finogeeks.club/mop/mop-ubuntu-18.04.gz

    推荐使用VirtualBox虚拟软件https://www.virtualbox.org/wiki/Downloads

    1.4、登录与试用

    1. 请打开浏览器,输入以下地址访问管理后台:
    • 机构端:

      • 地址:http://<IP地址>:<端口>/mop/mechanism/#/login
      • 账号:13812341234
      • 密码:Abc123456@88.com
    • 运营端:

      • 地址:http://<IP地址>:<端口>/mop/operate/#/login
      • 账号:13812341234
      • 密码:Abc123456@88.com

    此处的 <IP地址> 与 <端口> 请填入脚本中所提示的地址,IP 与 端口 之间以英文冒号 “:” 间隔。

    1. 点击下列功能对应的文档,或分别复制以下地址到浏览器,打开使用文档

    2、App快速集成

    ** 是的,只需要五行代码APP就能集成小程序SDK。**

    2.1 iOS快速集成

    1、 修改Podfile文件,增加FinApplet依赖

    source 'https://github.com/CocoaPods/Specs.git'
    pod 'FinApplet'
    

    2、五行代码完成SDK初始化

    在工程的 AppDelegate 中的以下方法中,调用 SDK 的初始化方法。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    	
        NSString *appKey = @"SDKKEY";
        FATConfig *config = [FATConfig configWithAppSecret:@"SECRET" appKey:appKey];
        config.apiServer = @"https://mp.finogeeks.com"; 
        config.apiPrefix = @"/api/v1/mop";
        [[FATClient sharedClient] initWithConfig:config error:nil];
        
        return YES;
    }
    

    3、打开小程序

    NSString *appId = @"小程序id";
    // 打开小程序
    [[FATClient sharedClient] startRemoteApplet:appId startParams:nil InParentViewController:self completion:^(BOOL result, NSError *error) {
        NSLog(@"result:%d---error:%@", result, error);
    }];
    
    * **SDKKEY** 和 **Secret** 可以从前面部署的社区版的管理后台获取。
    * **apiServer** 为这里是小程序生态后端的服务地址也就是前文所输入的`IP:端口`。
    * **小程序id** 为在管理后台上架的小程序唯一ID(在小程序小架时自动生成)
    * 上述的参数可以在前文服务器部署的后台界面上获取,亦可以在没有部署服务端的情况下在[https://mp.finogeeks.com](https://mp.finogeeks.com)快速注册,免费获取。
    * 具体的操作方法请参考 [iOS集成](../../runtime-sdk/sdk-integrate/ios.html)
    * **重要事情说三遍,您可以在官方的github仓库中查看示例代码** [https://github.com/finogeeks/mop-ios-demo](https://github.com/finogeeks/mop-ios-demo)
    

    2.2 Android快速集成

    1、在工程的build.gradle中需要配置的内容

    在工程的build.gradle中添加maven仓库的地址:

    buildscript {
        repositories {
            google()
            jcenter()
        }
        dependencies {
            classpath "com.android.tools.build:gradle:3.5.2"
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.60"
        }
    }
    allprojects {
        repositories {
            google()
            jcenter()
            maven { url "https://jitpack.io" }
            maven {
                url "https://gradle.finogeeks.club/repository/applet/"
                credentials {
                    username "applet"
                    password "123321"
                }
            }
        }
    }
    

    2、在gradle中依赖SDK

    implementation 'com.finogeeks.lib:finapplet:latest'
    

    3、 配置混淆规则

    集成SDK之后,为了避免SDK中部分不能被混淆的代码被混淆,需要在工程的混淆规则配置文件中增加以下配置:

    -keep class com.finogeeks.** {*;}
    

    4、SDK初始化

    我们强烈建议在Application中对SDK进行初始化,初始化SDK需要传入的各项参数如下:

    FinAppConfig config = new FinAppConfig.Builder()
            .setAppKey("SDKKEY")
    	      .setAppSecret("SECRET")
            .setApiUrl("https://mp.finogeeks.com")
            .setApiPrefix("/api/v1/mop/")
            .setGlideWithJWT(false)
            .build();
    FinCallback<Object> callback = new FinCallback<Object>() {
        @Override
        public void onSuccess(Object result) {
            // SDK初始化成功
        }
    
        @Override
        public void onError(int code, String error) {
            // SDK初始化失败
            Toast.makeText(AppletApplication.this, "SDK初始化失败", Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onProgress(int status, String error) {
    
        }
    };
    FinAppClient.INSTANCE.init(this, config, callback);
    

    SDK采用多进程机制实现,每个小程序运行在独立的进程中,即一个小程序对应一个进程,在初始化SDK时,要特别注意的一点是:小程序进程在创建的时候不需要执行任何初始化操作,即使是小程序SDK的初始化,也不需要在小程序进程中执行。例如:应用使用了一些第三方库,这些库需要在应用启动时先初始化,那么在Application中执行初始化时,只有当前进程为宿主进程时才需要初始化这些第三方库,小程序进程是不需要初始化这些库的。

    因此,在初始化SDK之前,一定要判断当前进程是哪一个进程,如果是小程序进程,就不进行任何操作了:

    if (FinAppClient.INSTANCE.isFinAppProcess(this)) {
        return;
    }
    
    * **SDKKEY** 和 **Secret** 可以从前面部署的社区版的管理后台获取。
    * **apiServer** 为这里是小程序生态后端的服务地址也就是前文所输入的`IP:端口`。
    * **小程序id** 为在管理后台上架的小程序唯一ID(在小程序小架时自动生成)
    * 上述的参数可以在前文服务器部署的后台界面上获取,亦可以在没有部署服务端的情况下在[https://mp.finogeeks.com](https://mp.finogeeks.com)快速注册,免费获取。
    * 具体的操作方法请参考 [Android集成](../../runtime-sdk/sdk-integrate/android.html)
    * **重要事情说三遍,您可以在官方的github仓库中查看示例代码** [https://github.com/finogeeks/mop-android-demo](https://github.com/finogeeks/mop-android-demo)