## 功能概述 完整实现了ljwx-admin的自定义logo功能,支持部署时动态替换客户logo,无需重新构建镜像。 ## 实现内容 ### 1. 自定义logo脚本 (client-deployment/customize-admin-logo.sh) - 支持PNG、JPG、JPEG、SVG格式的logo文件 - 自动检测custom-assets/目录中的logo文件 - 支持多种命名规范:logo.xxx 或 *logo*.xxx - 动态注入logo配置到前端应用 - 实时生效,无需重启容器 ### 2. 前端logo组件增强 (ljwx-admin/src/components/common/system-logo.vue) - 支持部署时注入的logo配置(优先级最高) - 兼容原有API方式的logo获取 - 支持动态logo配置更新事件 - 优雅降级:logo加载失败时自动使用默认logo ### 3. 部署脚本集成 (client-deployment/deploy-client.sh) - 自动检测VITE_CUSTOM_LOGO配置 - 在服务启动后自动应用自定义logo - 完整的状态反馈和错误处理 ### 4. 配置文件支持 (client-deployment/custom-config.env) - VITE_CUSTOM_LOGO=true 启用自定义logo功能 - 完整的配置文档和示例 ### 5. 使用文档 (client-deployment/custom-assets/README.md) - 详细的logo文件要求和命名规范 - 完整的使用方法和故障排除指南 - 推荐的文件格式和尺寸要求 ## 技术特点 ### 灵活的Logo支持 - **多格式支持**: PNG、JPG、JPEG、SVG - **智能识别**: 支持logo.xxx或包含logo的任意文件名 - **尺寸适配**: 自动适配不同尺寸的logo文件 - **透明背景**: 完美支持PNG和SVG的透明背景 ### 部署时动态配置 - **无需重构**: 部署时动态注入,不需要重新构建镜像 - **即时生效**: 配置完成后立即生效,支持热更新 - **配置注入**: 通过JavaScript全局配置实现动态logo - **缓存刷新**: 自动添加时间戳防止浏览器缓存 ### 完善的错误处理 - **优雅降级**: logo文件不存在时自动使用默认logo - **多重检测**: 部署配置 → API配置 → 默认logo的优先级 - **详细日志**: 完整的调试信息和状态反馈 ## 使用方法 ### 客户部署步骤 1. 将logo文件放入 `client-deployment/custom-assets/` 目录 2. 在 `custom-config.env` 中设置 `VITE_CUSTOM_LOGO=true` 3. 运行部署脚本: `./deploy-client.sh` 4. 访问管理端查看自定义logo效果 ### 支持的logo文件 ``` custom-assets/ ├── logo.png ✅ 推荐格式 ├── logo.svg ✅ 矢量格式 ├── company-logo.jpg ✅ 包含logo关键字 └── brand-logo.png ✅ 自定义命名 ``` ### 验证方法 - 部署完成后访问: `http://SERVER_IP:8088` - 检查侧边栏和页面标题处的logo显示 - 浏览器控制台查看logo加载日志 ## 向后兼容性 - 完全兼容现有的API方式logo配置 - 不影响未启用自定义logo的部署 - 保持原有logo组件的所有功能 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
灵境万象健康管理系统 (LJWX)
🌟 系统简介
灵境万象健康管理系统是一个基于Docker的企业级健康数据管理平台,支持穿戴设备数据采集、实时监控大屏、智能健康分析等功能。
🏗️ 系统架构
- ljwx-admin: Vue.js前端管理界面 (端口8080)
- ljwx-boot: Spring Boot后端API (端口9998)
- ljwx-bigscreen: Python Flask大屏应用 (端口8001)
- ljwx-mysql: 定制化MySQL数据库 (端口3306)
- ljwx-redis: 定制化Redis缓存 (端口6379)
🚀 快速开始
1. 多架构镜像拉取
我们的镜像支持 AMD64 和 ARM64 双架构,可以在任何服务器上运行:
# 自动拉取适合当前架构的镜像
docker pull crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-mysql:1.1.0
docker pull crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-redis:1.1.0
docker pull crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-boot:1.1.0
docker pull crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-bigscreen:1.1.0
docker pull crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-admin:1.1.0
# 强制拉取AMD64版本(在AMD64服务器上)
docker pull --platform linux/amd64 crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-boot:1.1.0
# 验证镜像架构支持
docker buildx imagetools inspect crpi-yilnm6upy4pmbp67.cn-shenzhen.personal.cr.aliyuncs.com/ljwx/ljwx-boot:1.1.0
2. 创建目录结构
# 创建外挂日志和数据目录
./setup-external-volumes.sh
这将创建以下目录结构:
./logs/
├── mysql/ # MySQL 日志文件
├── redis/ # Redis 日志文件
├── ljwx-boot/ # Spring Boot 应用日志
├── ljwx-bigscreen/ # Python 大屏应用日志
└── ljwx-admin/ # Nginx 访问和错误日志
./data/
├── mysql/ # MySQL 数据文件(可选)
├── redis/ # Redis 数据文件(可选)
├── ljwx-boot/ # Spring Boot 应用数据
└── ljwx-bigscreen/ # Python 大屏应用数据
3. 快速部署
一键部署脚本
在线部署(默认):
# 自动从阿里云拉取最新镜像并部署
./deploy-client.sh
# 或指定配置文件
./deploy-client.sh custom-config.env
离线部署模式:
# 使用本地镜像部署,跳过网络下载
./deploy-client.sh offline
# 或指定配置文件的离线模式
./deploy-client.sh custom-config.env offline
手动部署
# 使用标准配置启动(Docker内部卷)
docker-compose up -d
# 使用增强配置启动(日志和数据外挂)
docker-compose -f docker-compose-enhanced.yml up -d
🔧 配置说明
📝 日志和数据外挂配置
我们提供两种部署方式:
方式1:标准部署 (docker-compose.yml)
- 使用Docker命名卷存储数据和日志
- 数据和日志由Docker管理
- 适合开发和测试环境
方式2:增强部署 (docker-compose-enhanced.yml)
- 日志和数据直接外挂到宿主机
- 便于监控、备份和调试
- 适合生产环境
增强部署特性:
# MySQL 数据持久化和日志外挂
mysql:
volumes:
- mysql_data:/var/lib/mysql # 数据持久化
- ./logs/mysql:/var/log/mysql # 日志外挂
# Spring Boot 应用日志外挂
ljwx-boot:
volumes:
- ./logs/ljwx-boot:/app/ljwx-boot-logs # 应用日志
- ./data/ljwx-boot:/app/data # 应用数据
📱 微信配置
在 custom-config.env 文件中配置微信告警:
# 微信小程序配置
WECHAT_APP_ID=wx10dcc9f0235e1d77
WECHAT_APP_SECRET=your_wechat_app_secret
# 微信模板消息配置
WECHAT_TEMPLATE_ID=your_template_id
WECHAT_USER_OPENID=your_user_openid
# 启用微信告警
WECHAT_ALERT_ENABLED=true
微信告警功能:
- 健康异常数据实时推送
- 设备离线状态通知
- 系统运行状态监控
- 定制化告警规则
🎨 定制化配置
1. 自定义Logo
# 将您的logo文件替换为 custom-logo.svg
cp your-logo.svg custom-logo.svg
2. 自定义配置文件
# 编辑大屏应用配置
vim custom-config.py
# 编辑前端配置
vim custom-admin-config.js
3. 自定义资源文件
# 在 custom-assets 目录放置自定义图片资源
mkdir -p custom-assets
cp your-images/* custom-assets/
4. 数据库初始化
# 自定义数据库初始化脚本
vim client-data.sql # 业务数据
vim client-admin.sql # 管理员数据
🛠️ 运维管理
查看服务状态
# 查看所有服务状态
docker-compose ps
# 查看服务日志
docker-compose logs -f ljwx-boot
docker-compose logs -f ljwx-bigscreen
# 查看外挂日志(增强模式)
tail -f logs/ljwx-boot/*.log
tail -f logs/mysql/error.log
tail -f logs/ljwx-admin/access.log
数据备份
# MySQL数据备份
docker-compose exec mysql mysqldump -u root -p123456 lj-06 > backup_$(date +%Y%m%d_%H%M%S).sql
# Redis数据备份
docker-compose exec redis redis-cli BGSAVE
服务重启
# 重启单个服务
docker-compose restart ljwx-boot
# 重启所有服务
docker-compose restart
# 更新服务
docker-compose pull
docker-compose up -d
🌐 访问地址
启动成功后,可以通过以下地址访问各个服务:
-
管理后台: http://localhost:8080
- 默认账号: admin/123456
-
健康大屏: http://localhost:8001
- 实时健康数据展示
-
API接口: http://localhost:9998
- Swagger文档: http://localhost:9998/doc.html
-
数据库: localhost:3306
- 用户名: root
- 密码: 123456
- 数据库: lj-06
🔧 环境变量配置
在 custom-config.env 中可以配置以下参数:
# 数据库配置
MYSQL_PASSWORD=123456
MYSQL_DATABASE=lj-06
MYSQL_USER=root
# Redis配置
REDIS_PASSWORD=123456
# 应用配置
VITE_APP_TITLE=穿戴管理演示系统
VITE_BIGSCREEN_URL=http://localhost:8001
# 微信配置
WECHAT_APP_ID=wx10dcc9f0235e1d77
WECHAT_APP_SECRET=your_secret
WECHAT_TEMPLATE_ID=your_template_id
WECHAT_USER_OPENID=your_openid
WECHAT_ALERT_ENABLED=true
📊 监控和告警
健康检查
# 检查服务健康状态
docker-compose exec ljwx-boot curl http://localhost:9998/health
docker-compose exec ljwx-bigscreen curl http://localhost:8001/health
性能监控
- CPU和内存使用情况
- 数据库连接状态
- Redis缓存命中率
- 接口响应时间
🚨 故障排除
常见问题
-
服务启动失败
# 查看详细错误日志 docker-compose logs service_name # 检查端口占用 netstat -tulpn | grep :8080 -
数据库连接失败
# 检查MySQL服务状态 docker-compose exec mysql mysql -u root -p123456 -e "SELECT 1" # 重置数据库密码 docker-compose exec mysql mysql -u root -p -e "ALTER USER 'root'@'%' IDENTIFIED BY '123456';" -
微信告警不工作
- 检查WECHAT_APP_SECRET是否正确
- 验证WECHAT_USER_OPENID是否有效
- 确认模板消息ID是否匹配
-
日志文件权限问题
# 修复日志目录权限 sudo chmod -R 755 logs/ sudo chown -R $USER:$USER logs/
🔄 版本更新
更新到最新版本
# 1. 备份当前数据
docker-compose exec mysql mysqldump -u root -p123456 lj-06 > backup_before_update.sql
# 2. 拉取最新镜像
docker-compose pull
# 3. 重新启动服务
docker-compose down
docker-compose up -d
# 4. 验证服务状态
docker-compose ps
📞 技术支持
如果在部署过程中遇到问题,请:
- 查看错误日志:
docker-compose logs -f service_name - 检查配置文件:确认环境变量和挂载路径
- 验证网络连接:确保服务间能正常通信
- 检查资源使用:确保服务器有足够的CPU和内存
版本: v1.1.0
更新时间: 2025年6月
支持架构: linux/amd64, linux/arm64
技术栈: Spring Boot + Vue.js + Python Flask + MySQL + Redis