新视频推送接收(未测) app升级 告警 国际短信跟谷歌邮箱接入

This commit is contained in:
yuhaiming
2026-09-19 08:47:04 +08:00
parent e4ef35c795
commit bc1074d194
92 changed files with 5535 additions and 340 deletions

View File

@@ -155,7 +155,7 @@ spring.data:
# 数据库索引
database: 0
# redis 密码必须配置
password: 123456
#password: 123456
# 连接超时时间
timeout: 10s
# 是否开启ssl
@@ -215,15 +215,11 @@ gmail:
port: 465
auth: true
# 发信账号(Gmail 地址),由环境变量注入
user: ${GMAIL_USER:huzuming2@gmail.com}
# user: ${GMAIL_USER:}
# user: "chinarzcui@gmail.com"
user: ${GMAIL_USER:}
# 发信凭据:Gmail 16 位「应用专用密码」(非登录密码),由环境变量注入
pass: ${GMAIL_PASS:lajl mccm ycqi uekj}
# pass: ${GMAIL_PASS:}
pass: ${GMAIL_PASS:}
# 发件人,留空回落到 user;Gmail 要求发件人与认证账号一致
from: ${GMAIL_FROM:huzuming2@gmail.com}
# from: ${GMAIL_FROM:}
from: ${GMAIL_FROM:}
sslEnable: true
starttlsEnable: false
# smtp.gmail.com 在国内机房通常不可达,快速失败避免挂死请求线程
@@ -239,21 +235,6 @@ device:
# 是否仅打印日志而不真实发信:开发环境默认 true,便于在无 SMTP 条件下联调。
# 【生产环境(prod)必须为 false】——否则应用拒绝启动,防止验证码明文写入日志。
mock: true
# 谷歌邮箱 Gmail SMTP
host: ${DEVICE_APP_EMAIL_HOST:smtp.gmail.com}
# 465 走 SSL;若改用 587 端口,请同时设 ssl-enable=false 且 starttls-enable=true
port: ${DEVICE_APP_EMAIL_PORT:465}
# 发信账号(Gmail 地址)。凭据一律由环境变量注入,禁止写入本文件
user: ${DEVICE_APP_EMAIL_USER:}
# 发信凭据:Gmail 的 16 位「应用专用密码」(非账号登录密码),由环境变量注入
pass: ${DEVICE_APP_EMAIL_PASS:}
# 发件人,留空则回落到 user。Gmail 要求发件人与认证账号一致,否则拒收
from: ${DEVICE_APP_EMAIL_FROM:}
ssl-enable: true
starttls-enable: false
# smtp.gmail.com 在国内机房通常不可达,必须快速失败,避免挂死 HTTP 请求线程
connection-timeout: 5000
timeout: 10000
# 验证码位数 / 有效期(分钟)/ 重发间隔(秒)
code-length: 6
expiry-minutes: 5
@@ -261,6 +242,15 @@ device:
# 允许注册的邮箱域名白名单,留空(或不配)表示不限制域名。
# 若产品要求「只允许谷歌邮箱注册」,取消下行注释即可,无需改代码:
# allowed-domains: gmail.com,googlemail.com
sms:
# 开发默认 mock;真发国际/国内短信时置 false,并配好 sms.blends 与模板 id
mock: true
blend: config1
template-id: ${DEVICE_APP_SMS_TEMPLATE_ID:}
mjpeg:
# 开发环境默认使用局域网地址;生产环境由 MJPEG_PUBLIC_HOST 显式注入。
public-host: ${MJPEG_PUBLIC_HOST:http://192.168.1.217:8081}
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用

View File

@@ -218,12 +218,11 @@ gmail:
port: 465
auth: true
# 发信账号(Gmail 地址),由环境变量注入
user: ${GMAIL_USER:huzuming2@gmail.com}
# user: "chinarzcui@gmail.com"
user: ${GMAIL_USER:}
# 发信凭据:Gmail 16 位「应用专用密码」(非登录密码),由环境变量注入
pass: ${GMAIL_PASS:qbjo lajl mccm ycqi uekj}
pass: ${GMAIL_PASS:}
# 发件人,留空回落到 user;Gmail 要求发件人与认证账号一致
from: ${GMAIL_FROM:huzuming2@gmail.com}
from: ${GMAIL_FROM:}
sslEnable: true
starttlsEnable: false
# smtp.gmail.com 在国内机房通常不可达,快速失败避免挂死请求线程
@@ -239,22 +238,6 @@ device:
# 【必须为 false】生产环境开启 mock 会把邮箱验证码明文写入日志,
# 此时 org.dromara.device.config.AppEmailProdGuard 将直接拒绝启动(属预期保护)。
mock: false
# 谷歌邮箱 Gmail SMTP
host: ${DEVICE_APP_EMAIL_HOST:smtp.gmail.com}
# 465 走 SSL;若改用 587 端口,请同时设 ssl-enable=false 且 starttls-enable=true
port: ${DEVICE_APP_EMAIL_PORT:465}
# 发信账号(Gmail 地址)。凭据一律由环境变量注入,禁止写入本文件
user: ${DEVICE_APP_EMAIL_USER:}
# 发信凭据:Gmail 的 16 位「应用专用密码」(非账号登录密码),由环境变量注入
pass: ${DEVICE_APP_EMAIL_PASS:}
# 发件人,留空则回落到 user。Gmail 要求发件人与认证账号一致,否则拒收
from: ${DEVICE_APP_EMAIL_FROM:}
ssl-enable: true
starttls-enable: false
# smtp.gmail.com 在国内机房通常不可达:若部署在国内,请评估改用国内 SMTP,
# 或确认服务器具备出海能力后再上线邮箱注册功能。
connection-timeout: 5000
timeout: 10000
# 验证码位数 / 有效期(分钟)/ 重发间隔(秒)
code-length: 6
expiry-minutes: 5
@@ -262,6 +245,23 @@ device:
# 允许注册的邮箱域名白名单,留空(或不配)表示不限制域名。
# 若产品要求「只允许谷歌邮箱注册」,取消下行注释即可,无需改代码:
# allowed-domains: gmail.com,googlemail.com
sms:
mock: false
blend: config1
template-id: ${DEVICE_APP_SMS_TEMPLATE_ID:}
mjpeg:
# 生产环境不提供私网默认值,必须注入可达地址。
public-host: ${MJPEG_PUBLIC_HOST:}
--- # 阿里云国际短信(与 application-dev.yml 同通道)
aliyun:
international-sms:
enabled: true
access-key-id: ${ALIYUN_INTL_SMS_AK:}
access-key-secret: ${ALIYUN_INTL_SMS_SK:}
endpoint: dysmsapi.ap-southeast-1.aliyuncs.com
sender-id: ''
--- # sms 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商
# https://sms4j.com/doc3/ 差异配置文档地址 支持单厂商多配置,可以配置多个同时使用

View File

@@ -25,6 +25,14 @@ zlm:
push-protocol: rtmp
play-expire-seconds: 120
stream-timeout: 30 # 流超时秒数
mjpeg:
enabled: true
# 生产环境必须显式注入可被设备与客户端访问的地址,未配置时接口会拒绝生成播放地址。
public-host: ${MJPEG_PUBLIC_HOST:}
fps: 5
frame-ttl-seconds: 8
idle-stop-seconds: 30
max-frame-bytes: 1048576
captcha:
# 是否启用验证码校验
enable: true
@@ -77,9 +85,12 @@ spring:
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# APP 客户端安装包(apk)体积通常数十 MB,10MB 会被 Spring 直接拒绝,故放大到 200MB。
# 注意:若 application-dev.yml / -prod.yml / -local.yml 另配了同名项会**就近覆盖**本值,
# 修改本项后须同步确认这三份 profile 配置无覆盖(当前均无覆盖,仅 prod 配了 multipart.location)。
max-file-size: 200MB
# 设置总上传的文件大小(= 单文件上限 + form 其它字段冗余)
max-request-size: 210MB
mvc:
# 设置静态资源路径 防止所有请求都去查静态资源
static-path-pattern: /static/**
@@ -122,6 +133,7 @@ security:
- /snail-chat/**
- /api/snail/chat/**
- /zlm/hook/**
- /mjpeg/**
# MyBatisPlus配置
# https://baomidou.com/config/
@@ -328,6 +340,9 @@ device.mqtt:
low-battery-latch-ttl: 30d
# 告警去重窗口:同一 设备+告警类型 在窗口内只落一条 bm_device_alert
alert-dedup-window: 30m
# APP 告警消息写入失败后的 outbox 补偿周期与单轮上限
app-message-retry-interval: 1m
app-message-retry-batch-size: 100
# 眼罩指令回执等待超时(协议 Q3 待硬件确认动作到位时长)
hood-timeout: 5s
# 待回执指令标记的 Redis TTL(仅用于事后定位「回执晚到」)

View File

@@ -48,6 +48,15 @@ rate.limiter.message=访问过于频繁,请稍候再试
sms.code.not.blank=短信验证码不能为空
sms.code.retry.limit.count=短信验证码输入错误{0}次
sms.code.retry.limit.exceed=短信验证码输入错误{0}次,账户锁定{1}分钟
sms.code.format.invalid=验证码格式不正确
app.sms.scene.not.blank=验证码场景不能为空
app.sms.scene.invalid=验证码场景不合法
app.sms.send.too.frequent=验证码发送过于频繁,请稍后再试
app.sms.send.failed=验证码短信发送失败
app.sms.code.sent=验证码已发送
app.sms.verify.too.many=验证码错误次数过多,请稍后再试
app.sms.code.error=验证码错误
app.sms.code.expired=验证码已过期
email.code.not.blank=邮箱验证码不能为空
email.code.retry.limit.count=邮箱验证码输入错误{0}次
email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,账户锁定{1}分钟

View File

@@ -48,6 +48,15 @@ rate.limiter.message=Visit too frequently, please try again later
sms.code.not.blank=Sms code cannot be blank
sms.code.retry.limit.count=Sms code input error {0} times
sms.code.retry.limit.exceed=Sms code input error {0} times, account locked for {1} minutes
sms.code.format.invalid=Invalid sms code format
app.sms.scene.not.blank=Sms scene cannot be blank
app.sms.scene.invalid=Invalid sms scene
app.sms.send.too.frequent=Verification code sent too frequently, please try again later
app.sms.send.failed=Failed to send sms verification code
app.sms.code.sent=Verification code sent
app.sms.verify.too.many=Too many incorrect attempts, please try again later
app.sms.code.error=Incorrect verification code
app.sms.code.expired=Verification code expired
email.code.not.blank=Email code cannot be blank
email.code.retry.limit.count=Email code input error {0} times
email.code.retry.limit.exceed=Email code input error {0} times, account locked for {1} minutes

View File

@@ -48,6 +48,15 @@ rate.limiter.message=访问过于频繁,请稍候再试
sms.code.not.blank=短信验证码不能为空
sms.code.retry.limit.count=短信验证码输入错误{0}次
sms.code.retry.limit.exceed=短信验证码输入错误{0}次,账户锁定{1}分钟
sms.code.format.invalid=验证码格式不正确
app.sms.scene.not.blank=验证码场景不能为空
app.sms.scene.invalid=验证码场景不合法
app.sms.send.too.frequent=验证码发送过于频繁,请稍后再试
app.sms.send.failed=验证码短信发送失败
app.sms.code.sent=验证码已发送
app.sms.verify.too.many=验证码错误次数过多,请稍后再试
app.sms.code.error=验证码错误
app.sms.code.expired=验证码已过期
email.code.not.blank=邮箱验证码不能为空
email.code.retry.limit.count=邮箱验证码输入错误{0}次
email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,账户锁定{1}分钟