main
E32C-Server
ESP32-CAM 图片接收、设备管理和唤醒策略后台。
当前版本:1.5.3
功能
- ESP32-CAM 图片和设备状态上传
- 设备、用户和分组管理
- 定时与间隔唤醒策略
- 按预计唤醒时间区分休眠中、等待上报和超期未上报
- 按设备状态筛选并保留分页和排序条件
- 设备选择跨分页保留,并支持选择当前筛选结果中的全部设备
- 全站统一 Toast、危险操作确认对话框和按钮加载状态
- 设备概览展示电压、信号和 TF 卡剩余空间的 7/30/90 天趋势
- Bootstrap、Bootstrap Icons 和 Chart.js 均由服务器本地提供,不依赖外部 CDN
- 历史照片画廊、日期筛选和页面内连续查看
- 静态资源版本化与紧凑型后台界面
- 设备详情顶部展示 ICCID 等设备身份信息
- 设备详情按概览、照片和配置拆分为独立页签
- 图片缩略图、历史记录和持久化批量导出
- 导出前按日期估算照片数量和大小,下载确认后才允许删除归档源照片
- 深度健康检查、运行指标和 systemd 自动恢复
- 可配置告警阈值、故障归因和恢复事件记录
- 后台操作审计、敏感字段脱敏和 CSV 导出
- SQLite 数据存储
环境
- Python 3.10+
- Flask 3.1
- Gunicorn 23
- Pillow 11
- Nginx(生产部署推荐)
本地运行
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export LPEC_SECRET_KEY="$(python -c 'import secrets; print(secrets.token_hex(32))')"
export LPEC_ADMIN_USERNAME=root
export LPEC_ADMIN_PASSWORD=change-this-password
python server.py
首次创建数据库时必须设置 LPEC_ADMIN_PASSWORD。已有数据库不会覆盖现有用户密码。
生产部署
当前生产结构:
公网 :8765 -> Nginx -> Gunicorn 127.0.0.1:18765
|
-> SQLite 持久任务队列 -> 独立导出 Worker
部署示例位于:
deploy/clear_lpec_server.servicedeploy/e32c-export-worker.servicedeploy/e32c-watchdog.servicedeploy/e32c-watchdog.timerdeploy/e32c-server.logrotatedeploy/nginx-8765.conf
服务器私有配置写入 /etc/esp-cam.env,权限建议设为 600。不要提交该文件。
数据目录
以下运行数据不纳入 Git:
data/platform.db
data/uploads/
data/thumbnails/
data/exports/
logs/
部署和升级前应单独备份 data/。
健康检查
curl http://127.0.0.1:8765/api/v1/health
curl http://127.0.0.1:8765/api/v1/health/deep
Description
ESP32-CAM image upload and device management server
636 KiB
0 Stars
1 Watchers
0 Forks