Windows平台部署
说明
我们以Windows 10/11 为例介绍YFIOs 物联网平台标准落地部署流程。
1 安装 MySQL 5.7
安装
下载MySQL5.7压缩包 https://www.yfios.net/download/deploy/MySQL_WIN_5.7.zip
解压到任意目录(建议目录中不要有中文和空格),建议 D:\MySQL。
如果启用my.ini文件,那么可以在D:\MySQL目录下新建my.ini文件,并写入如下内容:
[client]
port=3306
default-character-set=utf8mb4
[mysqld]
# 设置为MYSQL的安装目录
basedir = "D:/MySQL"
# 设置为MYSQL的数据目录
datadir = "D:/MySQL/data"
port=3306
#utf8
character_set_server=utf8mb4
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
#开启查询缓存
explicit_defaults_for_timestamp=true
log_error ="D:/MySQL/error.log"
#运行最大连接数
max_connections=200
#运行连接失败的次数。这也是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
#init_connect=‘SET NAMES utf8mb4’
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#--------------------------
# 慢查询开启状态
slow_query_log = 1
# 慢查询日志存放的位置
slow_query_log_file = "D:/MySQL/slow.log"
#--------------------------
#启用binlog日志(也叫二进制日志)
#log_bin="D:/MySQL/logbin/mysql-bin"
#忽略的数据库,不需要同步的(可以重复多个)
#binlog_ignore_db=mysql
#指定同步的数据库(可以重复多个)
#binlog_do_db=yftest
#数据库服务器的唯一标识,主数据库的server_ID必须小于从数据库的server_ID, 为0则拒绝从服务器连接
server_id=2
# 1- 只读 0-读写
read_only=1
以管理员权限打开cmd,进入解压目录D:\MySQL\bin 执行如下指令:
# 安装服务
mysqld -install
# 初始化数据库 命令要对,中间不能有空格
mysqld --initialize-insecure
# 启动mysql服务
net start mysql
# 登录mysql
mysql -uroot -p
# 设置密码
set password for root@localhost = password('yfsoft1018#mysql');

初始化数据库
下载 YFIOs数据库及表 初始化文件,解压到D:\MySQL\mysql_config_files目录 https://www.yfios.net/download/deploy/mysql_config_files.rar
mysql_config_files目录/
├── 00-init-db_5.7.sql # 必须第一个导入
├── yf_user.sql
├── yf_role.sql
├── yf_device.sql
└── ... ...
安装 Navicat Premium 工具
下载 Navicat Premium 工具 试用版本:https://www.yfios.net/download/deploy/Navicat_16.2.rar
安装完毕后,打开 Navicat Premium 工具,单击左上角“连接"工具栏图标,连接我们刚部署的 MySQL 数据库。
密码填写:yfsoft1018#mysql

连接成功后,右键单击该链接,在右键菜单中选择“运行SQL文件”,我们依次导入00-init-db_5.7.sql(必须第一个导入),yf_user.sql等等sql文件。

2 安装 TDengine 3.0.7
TDengine Server Windows上最后免费下载的版本是3.0.7,建议采用Docker或者在Ubuntu系统上安装最新版本。
下载安装
下载地址:https://www.yfios.net/download/deploy/TDengine-server-3.0.7.1-Windows-x64.exe
将下载好的 TDengine-server-3.0.7.1-Windows-x64.exe 放到任意目录,直接双击运行安装程序,全程保持默认配置下一步即可。
软件默认安装路径为:C:\TDengine\
- 默认端口:6041
- 默认密码:空密码(直接回车即可登录)
安装完成后,打开系统 “服务” 管理界面,可以看到已注册两个系统服务:taosd 和 taosadapter。
默认情况下两个服务均为手动启动且未运行,建议根据使用需求设置为自动启动。
部署时请先手动将这两个服务启动,再进行后续连接和使用。
双击桌面上的Taos Shell快捷方式,进入命令行操作页面,我们设置一下密码。

taos
# 修改密码
ALTER USER root PASS 'yfsoft1018#taos';
设置密码后,需要输入密码才能登录成功。
# 进入taos
c:\TDengine>taos -u root -pyfsoft1018#taos
# 创建数据库
taos> CREATE DATABASE IF NOT EXISTS yfios_iot_db;
taos> quit;
# 验证密码 返回结果包含 yfios_iot_db 即成功。
c:\TDengine>curl -u "root:yfsoft1018#taos" -d "show databases;" http://127.0.0.1:6041/rest/sql
3 安装Redis 3.2.100
Windows下的Redis版本比较老,不过不影响使用。如果想使用最高版本,建议采用Docker或者在Ubuntu系统下安装。
下载安装
下载地址:https://www.yfios.net/download/deploy/redis_3.2.100.rar 建议解压到 D:\redis
# 注册windows服务,开机自运行
D:\redis> redis-server --service-install redis.windows-service.conf
# 启动服务
D:\redis> redis-server --service-start
# 验证服务
D:\redis> redis-cli -h 127.0.0.1 -p 6379 -a YFRedis1018
# 停止服务
# D:\redis> redis-server --service-stop
# 卸载服务
# D:\redis> redis-server --service-uninstall
在 redis.windows-service.conf 文件里面已经配置了密码:YFRedis1018
4 安装 EMQX v5.3.2
版本说明:EMQX v5.3.2 是 Windows 平台的最后一个免费版本(Linux 平台对应版本为 v5.8.6)。
安装建议:为确保环境兼容性并简化配置流程,建议下载我们预先集成的定制安装包。该版本已完成核心参数优化与服务预配置,解压即可实现快速部署。
下载地址:https://www.yfios.net/download/deploy/EMQX_5.3.2.rar
建议解压到 D:\EMQX
# 启动服务
D:\EMQX\bin> emqx.cmd start
# 停止服务
# D:\EMQX\bin> emqx.cmd stop
# 重启服务
# D:\EMQX\bin> emqx.cmd restart
# 查看状态
D:\EMQX\bin> emqx_ctl status
安装服务
实测发现,定制版EMQX已默认配置为开机自启动服务,无需手动执行
emqx.cmd install命令。直接使用emqx.cmd start启动服务后,电脑重启时服务将自动恢复运行。
# 安装服务
D:\EMQX\bin> emqx.cmd install
# 卸载服务
# D:\EMQX\bin> emqx.cmd uninstall
5. 安装 Nginx 1.21.6
环境部署
- 下载地址:https://www.yfios.net/download/deploy/nginx_1.21.6.rar
- 安装路径:请务必将压缩包解压至
D:\nginx目录。注意:若安装路径非
D:\nginx,则必须同步修改nginx_service.xml和WinSW-x64.xml中的路径配置,否则服务将无法正常启动。 - 配置说明:本安装包已针对 YFIOs 平台 完成
nginx.conf初始化。若后续前端静态资源路径有变动,请手动调整nginx.conf。
Windows 服务管理 (推荐)
本包采用 WinSW 将 Nginx 注册为系统服务,实现开机自启及后台静默运行。请以管理员权限打开终端,进入 D:\nginx 目录执行以下指令:
| 操作 | 指令 | 说明 |
|---|---|---|
| 安装服务 | WinSW-x64.exe install | 将 Nginx 注册到 Windows 服务列表 |
| 启动服务 | WinSW-x64.exe start | 启动后台 Nginx 进程 |
| 停止服务 | WinSW-x64.exe stop | 停止后台服务 |
| 重启服务 | WinSW-x64.exe restart | 重新加载服务 |
| 卸载服务 | WinSW-x64.exe uninstall | 从系统中移除 Nginx 服务 |
Nginx 原生常用指令
重要提示:当 Nginx 作为 Windows 服务运行时,应优先使用
WinSW指令管理。若需临时调试或热更新配置,可使用以下原生指令:
- 配置检查:
nginx -t(修改nginx.conf后务必先执行此项,确保语法无误) - 热加载配置:
nginx -s reload(不停止服务的情况下应用新配置) - 版本查看:
nginx -v或nginx -V(查看详细编译参数) - 强制停止:
nginx -s stop - 优雅退出:
nginx -s quit(等待当前请求处理完成后再关闭) - 指定配置文件:
nginx -c <filename>
💡 避坑小贴士:
在 Windows 下,若发现 WinSW 启动失败,通常是由于 80 端口被占用(如 System 进程或 IIS)或 nginx_service.xml 中的路径与实际不符。您可以先执行 nginx -t 查看具体报错信息。
6 安装 Node.js 20.x
在安装 Node.js 之前,我们强烈建议先安装 NVM。
什么是 NVM?
NVM (Node Version Manager) 是 Node.js 的版本管理器。
- 核心作用:它允许你在同一台电脑上安装、切换多个不同版本的 Node.js。
- 为什么用它?:不同的项目可能依赖不同版本的 Node.js(例如 YFIOs 推荐使用 v20,但老项目可能需要 v14)。使用 NVM 可以避免版本冲突,只需一行指令即可实现版本无缝切换,而无需反复卸载重装。
第一步:安装 NVM
- 下载:https://www.yfios.net/download/deploy/nvm-setup.rar
- 解压并运行:解压后运行
nvm-setup.exe。 - 安装路径:
NVM Installation Path:建议为D:\nvm(或选择不带空格的路径)。Node.js Symlink:这是 Node.js 的快捷指向路径,建议设为D:\nvm\nodejs或D:\nodejs。

第二步:通过 NVM 安装 Node.js 20.x
Node.js 20 是目前的长期支持版本(LTS),性能稳定且兼容性强。
-
配置镜像源(加速下载): 为了在国内快速下载,请先在终端执行以下指令,将下载源指向阿里云:
nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/ -
执行安装指令: 在终端输入以下命令安装 Node.js 20:
nvm install 20.18.3注:20.18.3 是 v20 系列中非常稳定的版本。
-
应用版本: 安装完成后,必须手动指定使用该版本:
nvm use 20.18.3 -
确认结果: 分别输入以下指令检查版本:
node -v # 应输出 v20.18.3
npm -v # 应输出 10.x.x
第三步:安装pnpm
为了让 YFIOs 后端依赖安装更快,建议全局安装 pnpm:
npm install -g pnpm
# 验证
pnpm -v
NVM 常用指令速查
| 指令 | 说明 |
|---|---|
nvm list available | 查看云端所有可安装的 Node.js 版本 |
nvm list | 查看本地已安装的所有版本 |
nvm install <version> | 安装指定版本(如 nvm install 18.16.0) |
nvm use <version> | 切换到指定版本 |
nvm uninstall <version> | 卸载指定版本 |
💡 避坑提示:
如果在执行 nvm use 时提示 exit status 1: ... 或 拒绝访问,请务必以 管理员身份 运行 CMD 或 PowerShell。
7 安装 PM2
全局安装 PM2
首先,确保您已经按照上一节安装好了 Node.js。打开 管理员权限 的 PowerShell 或 CMD,执行:
# 全局安装 pm2
npm install pm2 -g
# 验证安装
pm2 -v
配置开机自启服务
在 Windows 上,我们推荐使用 pm2-windows-startup 包,它的兼容性较好。
安装自启工具
npm install pm2-windows-startup -g
运行配置指令
执行以下命令来创建 Windows 服务:
pm2-startup install
注意:执行此命令后,PM2 会被注册到 Windows 的“服务”列表中,确保电脑重启后 PM2 守护进程能自动运行。
保存当前进程状态
这是最关键的一步。PM2 在开机时只会启动它“记得”的进程。
-
启动您的业务程序(以 YFIOs 为例):
# 进入您的项目目录
pm2 start ecosystem.config.js -
锁定保存状态: 当您的所有程序(后端、采集插件等)都在 PM2 列表中正常运行(Online)时,执行:
pm2 save此命令会将当前正在运行的进程列表写入到
dump.pm2文件中。开机时,服务会自动读取该文件并恢复进程。
常用管理指令速查
| 操作 | 指令 |
|---|---|
| 查看所有进程 | pm2 list |
| 查看实时日志 | pm2 logs |
| 停止某个进程 | pm2 stop <ID或Name> |
| 重启某个进程 | pm2 restart <ID或Name> |
| 查看进程详情 | pm2 show <ID> |
| 监控 CPU/内存 | pm2 monit |
💡 避坑指南:
- 管理员权限:所有的
install和startup指令必须在管理员身份运行的终端执行,否则无法写入系统注册表。 - 环境变量:如果您使用了 NVM 切换了 Node.js 版本,请确保在
pm2-startup install时使用的是您最终要运行业务的那个版本,因为服务会锁定当时的 Node 路径。 - 内存限制:如果您的 Windows 服务器内存较小,建议在
ecosystem.config.js中配置max_memory_restart: '1G',防止 Node.js 内存溢出导致服务僵死。
8 部署YFIOs项目文件
创建 YFIOs 项目目录
mkdir D:\app\yfios-platform && cd /d D:\app\yfios-platform
手动下载项目文件包
下载 YFIOs2.0.0 项目文件包,解压到 D:\app\yfios-platform 目录下。
环境变量配置
配置文件为:D:/app/yfios-platform/backend/packages/.env,用记事本可以直接打开。
假如本地IP地址为:192.168.1.197,内容如下(请根据实际进行配置):
# ======================
# 文件路径环境变量
# ======================
BASE_OTA_UPLOAD_PATH="/app/data/upload/firmware"
BASE_USER_IMAGE_PATH="/app/data/download/image/user"
BASE_COMPANY_IMAGE_PATH="/app/data/download/image/company"
# ======================
# Redis 环境变量
# ======================
REDIS_HOST="127.0.0.1"
REDIS_PORT="6379"
REDIS_PASSWORD="YFRedis1018"
REDIS_DB="1"
# ======================
# MySQL 环境变量
# ======================
RDB_MYSQL_IOT_HOST="127.0.0.1"
RDB_MYSQL_IOT_PORT="3306"
RDB_MYSQL_IOT_USERNAME="yfios"
RDB_MYSQL_IOT_PASSWORD="yfsoft1018#mysql"
RDB_MYSQL_IOT_DATABASE="yfios-platform-db"
# ======================
# TDengine 环境变量
# ======================
RTB_TDENGINE_HOST="127.0.0.1"
RTB_TDENGINE_PORT="6041"
RTB_TDENGINE_USER="root"
RTB_TDENGINE_PASSWD="yfsoft1018#taos"
RTB_TDENGINE_DATABASENAME="yfios_iot_db"
# ======================
# MQTT 外部地址环境变量
# ======================
MQTT_MQTT_TCP="mqtt://192.168.1.197:1883"
MQTT_MQTT_TLS="mqtts:/192.168.1.197:8883"
MQTT_MQTT_WS="ws://192.168.1.197:1888"
MQTT_EMQX_MQTT_WS="ws://192.168.1.197:8083"
MQTT_MQTT_WSS="wss://192.168.1.197:8888"
【重要!!!】
1 以上内容中的/app 需要替换为 D:/app。
2 用记事本打开文件:D:\app\yfios-platform\backend\packages\config\dist\config.module.js
把/app/yfios-platform/backend/packages/.env 替换为 D:/app/yfios-platform/backend/packages/.env。
使用PM2管理YFIOs后端服务
以管理员权限打开cmd命令行,进入项目目录,执行以下命令启动服务
cd /d D:\app\yfios-platform\backend
# 根据 lockfile 安装生产环境依赖(不安装开发依赖),并锁定版本防止自动更新
pnpm install --prod --frozen-lockfile
# 清理 pnpm 全局存储中未被任何项目引用的过期缓存包,释放磁盘空间
pnpm store prune
# 启动服务
pm2 start ecosystem.config.js
pm2 save
9 YFIOs 平台访问
http://192.168.1.197/
若正常展示系统登录界面,即代表 YFIOs 平台部署完成。

- 默认登录账号: admin
- 默认登录密码:yf123456
10 EMQX 管理控制服务访问
http://192.168.1.197:18083/
若可正常进入控制台登录页面,即代表 EMQX 服务部署正常。

- 默认管理账号:admin
- 默认管理密码:public