LubeLogger 介绍与选型指南
开源免费的自托管车辆维保与油耗追踪 Web 应用选型指南:ASP.NET Core + LiteDB/PostgreSQL 核心架构、功能特性、认证与 API 能力、适用场景与同类方案对比,基于 v1.7.4 联网溯源(2026-10-30)与实测。
LubeLogger 介绍与选型指南
目标:说清楚 LubeLogger 是什么、能做什么、架构与存储机制如何、适合谁用、与同类方案相比强在哪里,并给一条当天就能跑通的最小上手链路。全部关键事实在 LubeLogger v1.7.4(Ubuntu 22.04 宿主实测)与官方渠道(lubelogger.com、docs.lubelogger.com、GitHub 仓库)核实,官网与仓库信息查询日期为 2026-10-30。
一、环境信息
- 本机实测环境:Ubuntu 22.04(x86_64),部署形态为官方推荐的容器发行版,Web 端口映射为宿主 8131 → 服务 8080
- 软件版本:LubeLogger v1.7.4(2026-10-14 发布,实查 GitHub Releases)
- 运行时实测:.NET 运行时 10.0.13(
Microsoft.NETCore.App 10.0.13与Microsoft.AspNetCore.App 10.0.13,发布通道为 .NET 10 的 ASP.NET Core 运行时) - 默认存储:LiteDB 单文件数据库(
cartracker.db),可选切换 PostgreSQL 后端(官方文档「Postgres」节) - API 文档页:
http://<实例地址>/api(实测/swagger返回 404,LubeLogger 的接口文档页固定在/api) - 官方渠道:官网 https://lubelogger.com、文档 https://docs.lubelogger.com、源码 https://github.com/hargata/lubelog
- 在线 Demo:官方首页提供演示实例(登录账号
test/1234) - 取证说明:星数、Fork、许可、Release 节奏等社区数据于 2026-10-30 实查 GitHub 仓库与 shields.io 徽章接口
二、软件概述
2.1 定位与身份
LubeLogger 是一个开源自托管、多用户协同的车辆维保与油耗追踪 Web 应用,由美国犹他州 Price 的 Hargata Softworks 开发维护,采用 MIT 许可证。官方自我定位(官网首页原文):"Self-Hosted, Open-Source, Unconventionally-Named Vehicle Maintenance Records and Fuel Mileage Tracker"。它解决的核心痛点是:私家车主、家庭多车或小型车队管理者需要一份归自己所有的维保/加油/费用台账,而不是把数据交给闭源云服务。
关键身份信息(2026-10-30 实查):
| 维度 | 值 | 来源 |
|---|---|---|
| 许可证 | MIT | GitHub 仓库 License 徽章实查 |
| 仓库 | hargata/lubelog | GitHub API 实查 |
| Star / Fork / Watch | 2929 / 192 / 26 | GitHub API 实查 |
| 开放 Issue 数 | 53 | GitHub API 实查 |
| 仓库创建时间 | 2024-01-01 | GitHub API 实查 |
| 最新稳定版 | v1.7.4(2026-10-14 发布) | GitHub Releases 实查 |
| 最近 5 个版本节奏 | v1.7.0(2026-07-13)→ v1.7.1(2026-08-19)→ v1.7.2(2026-09-02)→ v1.7.3(2026-09-12)→ v1.7.4(2026-10-14) | GitHub Releases 实查 |
| 主要语言 | 后端 C#(ASP.NET Core),GitHub 仓库主语言统计为 JavaScript(前端脚本占比高) | GitHub API 实查 |
版本节奏解读:从近 5 个版本看,大约每 1~2 个月发布一个稳定版,属于活跃且节奏稳定的项目;仓库创建于 2024 年初,两年多的时间积累近 3000 Star,在自托管社区属于口碑型中型项目。
2.2 技术形态
LubeLogger 是一个单进程、自带 Web 服务器的 ASP.NET Core 应用:
- 可执行文件名
CarCareTracker,启动后由内嵌 Kestrel 服务器直接对外提供 HTTP 服务(实测监听http://[::]:8080),不需要额外安装 Nginx/Tomcat 之类的承载组件; - 官方分发渠道按推荐顺序为:容器镜像(最可靠、更新最快)→ Windows/Linux 独立可执行包(自包含)→ 源码构建;
- 默认数据存储是 LiteDB 单文件数据库(
cartracker.db),数据、附件、配置都在一个data目录内,备份就是拷文件;对并发要求更高时可配置连接串切换到 PostgreSQL(见第七章)。
💡 技术拓展:自托管 Web 应用的嵌入式存储常见选项对比——
选项 特点 适用场景 SQLite 单文件关系库,生态最广 通用小型应用 LiteDB .NET 生态的嵌入式 NoSQL 文档库,单文件、无外部依赖 .NET 应用零配置存储 H2/Derby JVM 生态嵌入式关系库 Java 应用内嵌 外置 PostgreSQL/MySQL 独立数据库进程,支持高并发、专业备份 多用户/生产规模 LubeLogger 默认采用 LiteDB(
cartracker.db单文件),做到"开箱即用、备份即拷贝";同时提供POSTGRES_CONNECTION环境变量与/migration迁移工具,数据规模上来后可平滑切到 PostgreSQL——本文实测环境采用默认 LiteDB。
三、核心架构
3.1 进程与请求链路
LubeLogger 的请求链路非常扁平:客户端(浏览器或 API 调用方)→ Kestrel(8080)→ ASP.NET Core 路由 → 控制器/SignalR Hub → 数据访问层 → LiteDB 文件(或 PostgreSQL)。
实测拆解(v1.7.4,进程启动横幅 + 源码对照):
LubeLogger 1.7.4
Website: https://lubelogger.com
Documentation: https://docs.lubelogger.com
GitHub: https://github.com/hargata/lubelog
SMTP Not Configured
Message Of The Day: Not Configured
WARNING: No Locale or Culture Configured for LubeLogger, Check Environment Variables
Created images directory
Created documents directory
Created translations directory
Created themes directory
Created config directory
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://[::]:8080
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
从横幅与首启行为可以读出四个架构事实:
- 数据目录自举:首次启动自动创建
data/images、data/documents、data/translations、data/themes、data/config等子目录——所有状态收敛在一个data目录内; - 实时通道:应用内置 SignalR(WebSocket Hub 挂在
/api/ws),用于提醒刷新等实时推送; - 配置三级:环境变量 →
data/config/userConfig.json(用户级)与data/config/serverConfig.json(服务器级)→ 内置默认值,服务器配置可视化入口在/setup; - SMTP 可选:SMTP 仅用于多用户的注册令牌/找回密码邮件,不配置不影响单机使用(横幅显示
SMTP Not Configured)。
3.2 数据与文件布局
实测 data 目录完整布局:
data/
├── cartracker.db # LiteDB 主数据库(车辆、各类记录、用户、令牌全在这里)
├── config/
│ ├── userConfig.json # 用户级配置(含认证开关与 root 凭据哈希)
│ └── serverConfig.json# 服务器级配置(SMTP/OIDC/区域等,由 /setup 写入)
├── documents/ # 上传的附件(发票、收据等)
├── images/ # 车辆图片
├── temp/ # 备份 zip 等临时产物
├── themes/ # 自定义主题
└── translations/ # 界面语言包
备份机制实测:调用备份接口后生成 db_backup_<时间戳>.zip,包内清单为 config/userConfig.json(1 KB 级)+ data/cartracker.db(本实例写入一辆车与两条记录后为 81920 字节)——一个 zip 就是完整可恢复状态,这是 LiteDB 单文件形态的直接收益。
3.3 用户与权限模型
LubeLogger 的权限是三层结构(官方文档「Authentication」):
| 权限 | 普通用户 | Admin | Root/超级用户 |
|---|---|---|---|
| 查看/编辑车辆 | 仅自己是协作者的车辆 | 仅自己是协作者的车辆 | 全部车辆 |
| 访问 API | 是 | 是 | 是 |
| 个性化设置 | 是 | 是 | 否(其设置即服务器默认值) |
| 增加/删除用户 | 否 | 是 | 是 |
| 制作/恢复备份 | 否 | 否 | 是 |
| 关闭认证 | 否 | 否 | 是 |
实测要点:默认不启用认证(首次启动直接可进车库页面),需要主动在 Settings 页勾选 Enable Authentication 并设置 Root 用户凭据;新用户走"邀请制"——Root 用户在 Admin Panel 生成注册令牌(配合 SMTP 自动发邮件,或手动把令牌交给受邀人)。实测 Root 用户凭据落盘为 userConfig.json 中的 SHA256 哈希,且启用瞬间有一次"文件监听未及生效导致首次登录失败、重试即成功"的现象(排障细节见部署篇 FAQ)。
四、功能特性
以下特性清单来自官网首页「Core Features / Other Features」原文,并逐项与实测/官方文档核对(查询日期 2026-10-30):
核心六大功能:
- Dashboard 仪表盘:按年、月、类别分解车辆费用;
- Planner 计划器:待办维保计划,按类型、优先级、进度分组跟踪;
- Vehicle Records 车辆记录:Service(保养)/Repair(维修)/Upgrade(改装)三类记录,支持附加发票、收据等文件/链接附件,支持全文关键字搜索;
- Fuel Tracker 油耗追踪:加油记录与油耗统计,官方支持 MPG、UK MPG、L/100KM、KM/L 四种口径,支持电动车充电记录(SOC 起止电量字段在 API 实测中可见);
- Supplies 物料:机油、滤芯等耗材台账(非库存管理,官方明确声明);
- Reminders 提醒:按日期、里程或" whichever comes first"(先到者)的循环提醒,可经 Webhook/邮件推送(
/api/vehicle/reminders/send)。
其他特性(官网原文列举):
- Professional Vehicle Reports:专业车辆报表(成本分解、维修摘要、油耗统计等);
- Multiple Users:多用户与车辆协作者共享;
- User Customizable Fields:自定义扩展字段;
- CSV Imports/Exports:CSV 导入导出(官方声明不兼容专有格式导入,仅 CSV);
- API:全量 REST API(74 个端点,自带文档页,详见 API 使用篇);
- Single Sign On:OIDC 单点登录(含 root 用户 OIDC 认证);
- 界面多语言(翻译包热加载)、自定义 Logo、登录页 MOTD、PWA 移动端适配(浏览器添加到主屏,无原生 App)。
⚠️ 澄清:网上有资料称 LubeLogger 带"OCR 收据识别",截至 v1.7.4 官网与官方文档均无此特性——收据/发票以附件上传与链接挂载方式管理,结构化数据靠 CSV 导入与手工/API 录入。选型时请以此为准。
五、快速开始(最小可用示例)
本节给一条当天可跑通的最小链路:拉起服务 → 首次访问 → 启用认证创建 Root 用户 → 登录 → API 冒烟。完整的环境变量、数据持久化与运维操作见部署篇《LubeLogger 1.7.4 Docker Compose 部署指南》。
5.1 拉起服务
官方推荐的分发渠道是容器镜像,最小 compose 配置(完整版与逐项说明见部署篇):
name: lubelogger-1.7.4-stack
services:
lubelog:
image: hargata/lubelogger:v1.7.4
ports:
- "8131:8080"
volumes:
- ./data:/App/data
拉取并启动(实测回显,镜像摘要 sha256:483a9d7582c4e6258615fd822b3de4193b4fcc4230d0a92432c6d407faf75af2):
v1.7.4: Pulling from hargata/lubelogger
Digest: sha256:483a9d7582c4e6258615fd822b3de4193b4fcc4230d0a92432c6d407faf75af2
Status: Downloaded newer image for hargata/lubelogger:v1.7.4
5.2 首次访问与启用认证
启动后浏览器访问 http://<宿主IP>:8131/ 直接进入 Garage(车库)页——默认无需登录。启用认证的实测路径:
- 顶部导航进入 Settings(设置)页;
- 勾选 Enable Authentication 开关,弹出凭据对话框;
- 输入 Root 用户名与密码(本文演示用
admin/q1w2e3r4),点击 Setup; - 页面跳转登录页,用该凭据登录。
实测登录接口回显(凭据正确):
{"success":true,"message":""}
实测凭据落盘(data/config/userConfig.json 关键字段):
"EnableAuth": true,
"UserNameHash": "8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918",
"UserPasswordHash": "13a5c202e320d0bf9bb2c6e2c7cf380a6f7de5d392509fee260b809c893ff2f9"
(两段哈希分别对应 SHA256("admin") 与 SHA256("q1w2e3r4"),与本机 sha256sum 计算结果逐位一致。)
5.3 API 冒烟
认证启用后,REST API 走 HTTP Basic 认证(RFC2617)。两条冒烟调用实测:
curl -s -u admin:q1w2e3r4 http://127.0.0.1:8131/api/version
curl -s -u admin:q1w2e3r4 http://127.0.0.1:8131/api/whoami
实测回显:
{"currentVersion":"1.7.4","latestVersion":"1.7.4"}
{"username":"admin","emailAddress":"","isAdmin":"True","isRoot":"True"}
不带凭据访问任一 API 端点实测返回 401。更多端点、参数与请求体格式见《LubeLogger 1.7.4 REST API 使用详解》。
六、适用场景与限制
6.1 适用场景
- 个人/家庭多车台账:默认 LiteDB 单文件、免登录开箱即用,一台 2C4G 的小主机即可长跑;备份=拷一个 zip;
- 小型车队共享协作:多用户 + 车辆协作者模型,司机只能看自己名下车辆,管理员统一管账;提醒按日期/里程循环触发;
- 私享数据诉求:MIT + 自托管,数据完全本地;OIDC 单点登录可并入已有账号体系;
- 轻度二次开发/集成:REST API 覆盖全部记录类型(含日历流与备份接口),Webhook 可对接通知渠道。
6.2 限制与注意
- 无原生移动 App:移动端体验靠响应式 Web 与 PWA(浏览器"添加到主屏幕");
- 不兼容专有格式导入:官方明确拒绝导入 Fuelio 等闭源应用的专有数据格式,迁移只能走 CSV;
- 注册是邀请制:不配 SMTP 时新用户令牌无法自动发送,需要管理员手动转交令牌;
- Root 用户无个性化设置:Root 的设置即服务器默认值,官方建议日常另建一个 Admin 用户;
- 单写入文件库:默认 LiteDB 为单文件嵌入式库,适合个人/小团队规模;高并发或需要 DBA 级备份策略时应切 PostgreSQL(切换后内置备份只覆盖附件与配置,数据库备份需自行负责);
- HTTP 明文:进程只提供 HTTP,对外暴露时需自行前置 TLS 反向代理或使用官方提供的 Traefik compose 变体。
七、同类选型对比
车辆维保追踪赛道的产品形态差异很大,按「数据归属 + 使用形态」分三类对比(闭源产品功能描述以各自官方公开资料为准,未逐项实测;LubeLogger 一行为实测/实查数据):
| 方案 | 形态与数据归属 | 平台 | 费用模式 | 多用户协作 | 开放接口 | 适用人群 |
|---|---|---|---|---|---|---|
| LubeLogger v1.7.4(MIT,实测) | 自托管 Web,数据全本地(LiteDB/PG) | 浏览器/PWA/API | 免费开源 | 多用户+协作者+OIDC | REST API 74 端点 + Webhook + 日历流 | 想完全掌控数据的个人/家庭/小车队 |
| Fuelio 类(闭源移动端) | 手机 App,数据存本地+云备份 | Android/iOS | 免费+广告/内购 | 弱(单人为主) | 无公开 API | 只要手机记账的个人车主 |
| SimplyAuto 类(闭源移动端) | 手机 App + 云同步 | Android/iOS | 订阅制 | 有限共享 | 无公开 API | 接受订阅、以手机为主的用户 |
| 商业车队管理 SaaS(如维保工单类) | 云端多租户 | 浏览器 | 按车/坐席订阅 | 完整组织与角色 | 有偿开放 API | 商业车队、需要审计合规 |
| 自建表格/Notion 模板 | 数据自管 | 浏览器 | 免费 | 靠平台共享 | 无 | 记录要求极低的用户 |
选型建议(如果……则……):
- 如果你要数据主权 + 浏览器多端 + 完整 API,且接受自己跑一个服务 → LubeLogger 是该组合下最直接的开源选择;
- 如果你只用手机、不想维护任何服务器 → 闭源移动端更省事,代价是数据与接口受制于人;
- 如果是几十辆车以上、要工单流转与审批 → 直接看商业 SaaS,LubeLogger 的定位是轻量台账而非车队管理系统;
- 如果你的需求只是"列个清单" → 表格即可,不必引入一个常驻服务。
社区活跃度量化对比(LubeLogger 实查值,查询日期 2026-10-30):Star 2929、Fork 192、开放 Issue 53、近 3 个月发布 3 个稳定版(v1.7.2/v1.7.3/v1.7.4)——在自托管车辆管理这个细分品类中属于活跃度头部;且 MIT 许可对二次分发与商用改造无附加条款。
八、参考链接
- 官网:https://lubelogger.com (特性清单、Demo 实例,查询日期 2026-10-30)
- 官方文档:https://docs.lubelogger.com (Getting Started / Authentication / Server Settings / Postgres / API 等,查询日期 2026-10-30)
- 源码仓库:https://github.com/hargata/lubelog (MIT;Star/Fork/Release 数据查询日期 2026-10-30)
- 部署实操:《LubeLogger 1.7.4 Docker Compose 部署指南》
- 配置详解:《LubeLogger 1.7.4 配置参数详解》
- 接口实测:《LubeLogger 1.7.4 REST API 使用详解》