Sign inSign up

hoya0803/charging-logger

By hoya0803

Updated 4 months ago

旅途充电记录 Web 应用 — 一键 GPS 定位、费用记录、地图轨迹、CSV 导出,SQL

Image
0

2.0K

hoya0803/charging-logger repository overview

🔋 旅途充电记录系统

开车出门,一键记录每次充电的位置、费用和评价。 手机浏览器打开就能用,数据永久保存在自家 NAS 上。


功能一览

功能说明
📍 一键 GPS 定位点击"开始充电"自动获取当前坐标
⏱️ 实时计时充电过程中显示时长,刷新页面不丢失
💰 费用计算输入单价和总金额,自动算出充电度数
五星评价给充电桩打分 + 文字备注
🗺️ 地图轨迹所有充电点在地图上可视化
📥 CSV 导出一键下载全部记录,Excel 直接打开
✏️ 编辑记录历史记录支持修改
📱 PWA 风格手机浏览器打开像原生 App

快速部署

方式一:Docker Run(最快)
docker run -d \
  --name charging-logger \
  -p 5000:5000 \
  -v /path/to/data:/data \
  --restart unless-stopped \
  hoya0803/charging-logger:latest
方式二:Docker Compose(推荐)
services:
  charging-logger:
    image: hoya0803/charging-logger:latest
    container_name: charging-logger
    restart: unless-stopped
    ports:
      - "5000:5000"
    volumes:
      - ./data:/data
    environment:
      - TZ=Asia/Shanghai

关键-v /path/to/data:/data 挂载数据库目录,容器删除数据不丢。


⚠️ HTTPS 是 GPS 定位的前提

浏览器从 2016 年起规定:只有 HTTPS 页面才能调用 GPS 定位。HTTP 下会直接静默拒绝。

解决方案:用反向代理(Nginx/Lucky/Cloudflare)套一层 HTTPS。

推荐域名配置:

  • 内网访问:http://NAS_IP:5000(无 GPS,需手动输坐标)
  • 外网访问:https://你的域名(GPS 正常,手机 4G 可用)

环境变量

变量默认值说明
TZAsia/Shanghai时区,影响数据库时间戳
PORT5000应用监听端口

使用流程

步骤操作
1到达充电桩,浏览器打开应用,点 "开始充电"
2授权 GPS 定位,自动记录坐标,页面显示计时
3充电完成,点 "结束充电"
4输入单价(元/kWh)、实付金额、品牌、评分、备注
5点保存,记录永久存入数据库

刷新页面续传:充电过程中如果误关/刷新页面,重新打开会自动恢复计时状态。


数据说明

  • 数据库:SQLite,单文件 /data/charging.db
  • 备份:直接复制 data/charging.db 即可
  • 迁移:把 data/ 目录拷贝到新机器,启动容器数据自动恢复

技术栈

  • 后端:Python 3.11 + Flask + Gunicorn + SQLite
  • 前端:原生 HTML/JS + Tailwind CSS + Leaflet 地图
  • 容器:Docker(python:3.11-slim)
  • 自动构建:GitHub Actions → Docker Hub

镜像信息

Tag summary

Content type

Image

Digest

sha256:8dc7efe73

Size

45.4 MB

Last updated

4 months ago

docker pull hoya0803/charging-logger