LubeLogger 介绍与选型指南

开源免费的自托管车辆维保与油耗追踪 Web 应用选型指南:ASP.NET Core + LiteDB/PostgreSQL 核心架构、功能特性、认证与 API 能力、适用场景与同类方案对比,基于 v1.7.4 联网溯源(2026-10-30)与实测。

LubeLoggerLubeLogger自托管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 实查):

维度值来源
许可证MITGitHub 仓库 License 徽章实查
仓库hargata/lubelogGitHub API 实查
Star / Fork / Watch2929 / 192 / 26GitHub API 实查
开放 Issue 数53GitHub API 实查
仓库创建时间2024-01-01GitHub 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/DerbyJVM 生态嵌入式关系库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.

从横幅与首启行为可以读出四个架构事实:

  1. 数据目录自举:首次启动自动创建 data/images、data/documents、data/translations、data/themes、data/config 等子目录——所有状态收敛在一个 data 目录内;
  2. 实时通道:应用内置 SignalR(WebSocket Hub 挂在 /api/ws),用于提醒刷新等实时推送;
  3. 配置三级:环境变量 → data/config/userConfig.json(用户级)与 data/config/serverConfig.json(服务器级)→ 内置默认值,服务器配置可视化入口在 /setup;
  4. 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」):

权限普通用户AdminRoot/超级用户
查看/编辑车辆仅自己是协作者的车辆仅自己是协作者的车辆全部车辆
访问 API是是是
个性化设置是是否(其设置即服务器默认值)
增加/删除用户否是是
制作/恢复备份否否是
关闭认证否否是

实测要点:默认不启用认证(首次启动直接可进车库页面),需要主动在 Settings 页勾选 Enable Authentication 并设置 Root 用户凭据;新用户走"邀请制"——Root 用户在 Admin Panel 生成注册令牌(配合 SMTP 自动发邮件,或手动把令牌交给受邀人)。实测 Root 用户凭据落盘为 userConfig.json 中的 SHA256 哈希,且启用瞬间有一次"文件监听未及生效导致首次登录失败、重试即成功"的现象(排障细节见部署篇 FAQ)。

四、功能特性

以下特性清单来自官网首页「Core Features / Other Features」原文,并逐项与实测/官方文档核对(查询日期 2026-10-30):

核心六大功能:

  1. Dashboard 仪表盘:按年、月、类别分解车辆费用;
  2. Planner 计划器:待办维保计划,按类型、优先级、进度分组跟踪;
  3. Vehicle Records 车辆记录:Service(保养)/Repair(维修)/Upgrade(改装)三类记录,支持附加发票、收据等文件/链接附件,支持全文关键字搜索;
  4. Fuel Tracker 油耗追踪:加油记录与油耗统计,官方支持 MPG、UK MPG、L/100KM、KM/L 四种口径,支持电动车充电记录(SOC 起止电量字段在 API 实测中可见);
  5. Supplies 物料:机油、滤芯等耗材台账(非库存管理,官方明确声明);
  6. 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(车库)页——默认无需登录。启用认证的实测路径:

  1. 顶部导航进入 Settings(设置)页;
  2. 勾选 Enable Authentication 开关,弹出凭据对话框;
  3. 输入 Root 用户名与密码(本文演示用 admin / q1w2e3r4),点击 Setup;
  4. 页面跳转登录页,用该凭据登录。

实测登录接口回显(凭据正确):

{"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 适用场景

  1. 个人/家庭多车台账:默认 LiteDB 单文件、免登录开箱即用,一台 2C4G 的小主机即可长跑;备份=拷一个 zip;
  2. 小型车队共享协作:多用户 + 车辆协作者模型,司机只能看自己名下车辆,管理员统一管账;提醒按日期/里程循环触发;
  3. 私享数据诉求:MIT + 自托管,数据完全本地;OIDC 单点登录可并入已有账号体系;
  4. 轻度二次开发/集成:REST API 覆盖全部记录类型(含日历流与备份接口),Webhook 可对接通知渠道。

6.2 限制与注意

  1. 无原生移动 App:移动端体验靠响应式 Web 与 PWA(浏览器"添加到主屏幕");
  2. 不兼容专有格式导入:官方明确拒绝导入 Fuelio 等闭源应用的专有数据格式,迁移只能走 CSV;
  3. 注册是邀请制:不配 SMTP 时新用户令牌无法自动发送,需要管理员手动转交令牌;
  4. Root 用户无个性化设置:Root 的设置即服务器默认值,官方建议日常另建一个 Admin 用户;
  5. 单写入文件库:默认 LiteDB 为单文件嵌入式库,适合个人/小团队规模;高并发或需要 DBA 级备份策略时应切 PostgreSQL(切换后内置备份只覆盖附件与配置,数据库备份需自行负责);
  6. HTTP 明文:进程只提供 HTTP,对外暴露时需自行前置 TLS 反向代理或使用官方提供的 Traefik compose 变体。

七、同类选型对比

车辆维保追踪赛道的产品形态差异很大,按「数据归属 + 使用形态」分三类对比(闭源产品功能描述以各自官方公开资料为准,未逐项实测;LubeLogger 一行为实测/实查数据):

方案形态与数据归属平台费用模式多用户协作开放接口适用人群
LubeLogger v1.7.4(MIT,实测)自托管 Web,数据全本地(LiteDB/PG)浏览器/PWA/API免费开源多用户+协作者+OIDCREST 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 许可对二次分发与商用改造无附加条款。

八、参考链接