TREK:自托管旅行规划器,替代 Wanderlog

出去旅行最烦什么?不是做攻略,是跟人协调。群里甩一堆链接,谁负责订酒店、谁管交通、预算超了算谁的——没个统一的规划工具,出发前就累够呛。

市面上一堆旅行管理 App,Wanderlog 算是功能最全的,但订阅制——不便宜。Google Sheets 免费,但交互体验约等于零。

最近 GitHub 上冒出来一个叫 TREK 的开源项目,6k+ 星,主打”自托管版 Wanderlog”。一条 Docker 命令部署,跑在你自己的 NAS 或 VPS 上,功能完整得离谱。

TREK 是什么

简单说就是一个自托管的多人旅行协作平台。技术栈:Node.js 22 + NestJS 11 后端,React 19 前端,SQLite 数据库,AGPL-3.0 开源协议。

作者 mauriceboe 维护很勤,截至 2026 年 6 月底已经 1276 次提交,几乎每天都在更新。

演示站:https://demo.liketrek.com(数据定期重置,随便折腾)。

TREK 仪表盘主界面

核心功能一览

行程规划

拖拽式日程编排,按天拖地址、排顺序。内置路线优化器可以自动重排地点,还能导出到 Google Maps。

地图这块支持两种引擎:Leaflet(纯免费,OSM 瓦片)和 Mapbox GL(3D 建筑、地形)。如果你不想折腾 API Key,直接用 Leaflet + OSM 就够用。地点搜索也可以走免费的 OpenStreetMap,不强制绑定 Google Places。

天气直接走 Open-Meteo,16 天预报 + 历史气候回退,零 API Key 依赖——这个设计思路很对得起”自托管”三个字。

旅行管理

除了规划行程,TREK 把旅行中可能需要的管理功能全塞进去了:

  • 预订追踪:航班、住宿、餐厅,状态、确认号、附件一个不落。还能从预订确认邮件和 PDF 自动导入(集成 KDE Itinerary)
  • 费用分摊:多币种、按人按天拆分,结账时谁欠谁一目了然,Splitwise 那个味儿
  • 打包清单:模板化,可以分给不同成员,带进度条。还有个 iOS 风格的行李重量分布视图
  • 文档管理:PDF、票据、证件照片都能挂到行程上,单文件 50MB 上限
  • PDF 导出:一键生成完整旅行手册,带封面、图片、笔记,发给不去的人也体面

TREK 行程规划器

实时协作

这是 TREK 最亮眼的地方。基于 WebSocket 的实时同步,A 在手机上拖了一个地点,B 在电脑上立刻看到变化。

协作套件包含群聊、共享笔记、投票(去哪吃饭这种经典争议)、每日签到。权限这块做得也细致:基于角色的访问控制,邀请链接可设一次性或有效期。

登录方式支持一堆:邮箱密码、Google / Apple OIDC、TOTP 双因素认证,甚至还支持 Passkeys(指纹/面部识别),安全性拉满。

PWA:不装 App 也能用

TREK 是个 PWA(渐进式 Web 应用),浏览器打开后 iOS / Android 都能”添加到主屏幕”,启动就是接近原生的体验——全屏、主题状态栏、离线缓存。

Service Worker 缓存了地图瓦片、API 数据甚至上传文件,断网也能翻之前的行程记录。出门在外网络不稳的时候,这个非常实用。

TREK Atlas 世界地图

附加模块(Addons)

管理面板里可以按需开关这些模块:

  • Atlas:世界地图,标记已访国家、愿望清单、旅行统计
  • Vacay:个人假期日历,100+ 国家节假日,年假结转追踪
  • Journey:杂志风格旅行日记,支持照片、地图、心情
  • Lists:打包清单 + 待办事项模板
  • Costs:费用分摊和结算
  • MCP:把你的 TREK 数据暴露给 AI 助手

AI / MCP 集成

TREK 内置了 MCP 服务器(Model Context Protocol),OAuth 2.1 认证,暴露了 150+ 工具和 30 个资源。27 个细粒度 OAuth 作用域,权限管控相当细致。

什么意思?你可以让 Claude Code 或 Codex 这类 AI 助手直接帮你创建行程、排日程、生成打包清单、管理预算,甚至标记已访国家。相当于给你的 AI 助手配了一个旅行规划副驾。

部署:一条命令搞定

Docker 部署,对 NAS 用户极其友好:

ENCRYPTION_KEY=$(openssl rand -hex 32) docker run -d -p 3000:3000 
  -e ENCRYPTION_KEY=$ENCRYPTION_KEY 
  -v ./data:/app/data 
  -v ./uploads:/app/uploads 
  --name trek 
  --restart unless-stopped 
  mauriceboe/trek

打开 http://你的IP:3000,首次启动自动创建管理员账号。不想翻日志找密码的话,可以预设:

-e ADMIN_EMAIL=your@email.com
-e ADMIN_PASSWORD=yourpassword

生产环境推荐 Docker Compose,官方提供了完整的只读容器 + tmpfs + healthcheck 配置。反代方面,Nginx 需要注意给 /ws 路径开 WebSocket 代理,用 Caddy 的话一行 reverse_proxy localhost:3000 就全自动了。

TREK 费用分摊

有什么坑

试了 Demo 站几天,说几个注意点:

  • 地图中文搜索:默认走免费 OSM,国内城市还好,小众景点可能搜不到。如果对地图体验要求高,需要申请 Google Places API Key 或 Mapbox Token——好在都是可选配置,不影响基本使用。
  • PWA 首次加载:初始化会缓存大量资源,几十 MB 不夸张,建议 Wi-Fi 下完成首次打开。
  • SSO 配置门槛:OIDC 需要 Authentik 或 Keycloak 这类自建 IdP,对个人用户来说有点重。只用邮箱密码登录完全够用。
  • 资源占用:跑在 1G 内存的轻量 VPS 上没问题,SQLite 单文件数据库对资源友好。上传文件单条 50MB 限制,大量高清照片要留意存储。
  • 更新时别挂载整个 /app:更新容器的 Docker 命令里,只挂载 datauploads 目录,挂整个 /app 会导致升级后容器内文件被旧卷覆盖。

总结

TREK 是那种”不打开不知道,一打开吓一跳”的项目。6k 星,功能比大部分商业旅行 App 还全,而且所有数据都在自己手里。

适合谁:

  • 有 NAS / 自托管习惯的家庭用户
  • 经常组团出行需要协作的旅行爱好者
  • 对隐私敏感、不想旅行数据上云的

不适合谁:

  • 只想手机上打开就用、不想折腾部署的
  • 对中文地图搜索有硬性要求的(OSM 中文数据有差距)

对比 Wanderlog 每年几十刀的订阅,自己服务器上跑个 TREK 几乎零成本。唯一开销就是折腾的那半小时——对 NAS 玩家来说,这算事儿吗?


项目地址https://github.com/mauriceboe/TREK
Docker Hubhttps://hub.docker.com/r/mauriceboe/trek
演示站https://demo.liketrek.com

发表评论