# fota-manager **Repository Path**: jctecho/fota-manager ## Basic Information - **Project Name**: fota-manager - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2020-08-13 - **Last Updated**: 2023-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SDK要求 jdk: 1.8 (不支持更高版本,因为javax相关包在之后版本被移除,本项目有依赖) node: 项目自带node, 本地对应版本可以安装: ```text v12.16.1 v6.13.4 ``` # 编译操作 在项目根路径执行:`mvn clean package` 版本文件在根路径下的:`target/version` 中,直接上传`version`目录下的所有文件到服务器; 默认配置需要上传到服务器位置:`/home/app/fota`; 否则请修改配置文件; ***注:编译webui可能出现问题,请编辑pom,搜索`node_modules`, 并放开注释*** # 启动操作 webui和资源服务器需要安装 nginx, 通过 `openresty` 来安装 nginx依赖 `nginx-lua-module`, 下载的时候通过子请求去记录日志 ## nginx安装说明 ```shell # 安装openresty:https://github.com/openresty/openresty # 文档:https://openresty.org/en/linux-packages.html # install some prerequisites needed by adding GPG public keys (could be removed later) sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates # import our GPG key: wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add - # add the our official APT repository: echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" \ | sudo tee /etc/apt/sources.list.d/openresty.list # to update the APT index: sudo apt-get update sudo apt-get -y install openresty # 不安装推荐模块 sudo apt-get -y install --no-install-recommends openresty # 配置环境变量 export NGINX_HOME=/usr/local/openresty/nginx export PATH=$NGINX_HOME/sbin:$PATH nginx -v echo "start nginx" nginx -c /usr/local/nginx/conf/nginx.conf ``` ## 整体启动 整体启动执行命令:`sh start_app.sh` 不启动管理服务:`sh start_app.sh x` ## fota-manager-server 启动除了修改`application.yml`中数据源相关配置外,还有以下需要注意 1. `fota-manager-server`启动,需要修改 `application.yml` 中 `fota.config.path`参数来配置外置配置文件加载的根路径 2. 对于自定义参数,可以参考jar包中 `META-INF/additional-spring-configuration-metadata.json`文件的描述 启动命令:`java -jar fota*.jar`; 请进入jar目录再执行该命令 ### 配置文件参数说明: 参数大多数情况可以适用默认值,当自定义服务器位置时,请注意修改参数7; 1. `fota.token.expire`:用户token过期时间,默认值:1800s; 2. `fota.token.refresh-time`: 用户token刷新时间,默认值:300s; 3. `fota.token.random-salt`: 用户token计算是否加入随机盐(随机变量),默认值:true; 4. `fota.token.salt`: 用户token计算使用的固定变量(当`fota.token.random-salt`时生效),默认值:fota-manager-auto-salt; 5. `fota.appname`: 应用名称; 6. `fota.config.path`: 配置文件根路径(默认情况日志路径也依赖该路径,可自行修改) 7. `fota.static.log-time`: 统计监控日志输出时间, 默认值:1分钟; 8. `fota.db.storage-period`: fota日志的消费线程的入库周期,根据该值或者限定的最大批量值来进行入库,默认值:30秒; 9. `fota.db.batch-count`: fota日志消费线程批量入库时每批次数量,默认值:500; ## fota-manager-ui 需要修改 `nginx/nginx.conf`文件中 `root` 节点的值,改为`index.html`所在目录 同时保证环境中安装了nginx, 并且配置了全局环境变量 通过nginx启动即可,自定义启动,参考nginx配置文件:`nginx/nginx.conf` 查询nginx情况: ```shell > ps -ef|grep nginx > kill $pid ``` ## fota-version-server 需要修改配置源相关信息 需要配置关联下载资源服务器的ip和端口 启动命令:`java -jar fota*.jar` ### 配置参数说明: 1. `fota.app-name`: 应用名称; 2. `fota.file-timeout`: 上传文件临时保存时间,超时自动删除, 默认值:10分钟; 3. `fota.cron-list`: 定时任务配置列表; 4. `fota.server-info`: 资源服务器信息; 5. `fota.server-info.key`: 资源服务器的唯一标识; 6. `fota.server-info.name`: 资源服务器的显示名称; 7. `fota.server-info.domain`: 资源服务器的服务器域名或ip:port; 8. `fota.server-info.root-path`: 资源服务器的服务器工程根路径; 9. `fota.server-info.source-path`: 资源服务器的资源存放地址; 10. `fota.server-info.context-path`: 资源服务器的应用上下文; ## 部署整体流程 说明:命令不一定完成正确,表意; 1. clone源码:git clone ssh://gituser@192.168.1.251:/~/wewins_fota_server 2. 安装java环境:jdk8;安装maven; 3. 进入源码根路径,执行maven编译命令:`mvn clean package`; 4. 编译完成后,进入版本存放目录:`cd target/version`,每一个子项目均在独立的目录中; 5. 修改各子项目自定义配置参数,`application.yml`可修改`profile`;针对修改的profile再进行各个配置文件的修改;参数说明见上述章节; 6. 上传版本到服务器:`scp ./** user@remote_host:/home/app/fota`; 7. 管理服务器需要安装`mysql`,`redis`,`java8`,`nginx(openresty)`; 资源服务器需要安装`java8`,`nginx(openresty)`;均需要配置环境变量; 8. 进入服务器项目根路径:`cd /home/app/fota`; 9. 执行启动脚本:`sh start_app.sh`, 参数说明: ```text -p 设置下载服务器激活的profile信息, 默认激活为china; 比如:要读取application-xx.yml文件,则输入: "-p xx" -s 设置要启动的服务,默认启动所有;可选参数:all(启动所有),m(启动管理),v(启动下载服务) ``` *注:如果修改了应用上下文及服务器根路径,需要自行核对配置文件中的路径是否正确,nginx的配置文件中基准路径也请自行校准;否则会导致启动异常!!* *注2:资源服务器的`redis`参数配置,使用管理服务器启动的`redis`,否则会导致资源服务器无法正常注册、下载日志无法正确入库以及webui删除版本时,无法清理升级包*