出去旅行最烦什么?不是做攻略,是跟人协调。群里甩一堆链接,谁负责订酒店、谁管交通、预算超了算谁的——没个统一的规划工具,出发前就累够呛。
市面上一堆旅行管理 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(数据定期重置,随便折腾)。

核心功能一览
行程规划
拖拽式日程编排,按天拖地址、排顺序。内置路线优化器可以自动重排地点,还能导出到 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 最亮眼的地方。基于 WebSocket 的实时同步,A 在手机上拖了一个地点,B 在电脑上立刻看到变化。
协作套件包含群聊、共享笔记、投票(去哪吃饭这种经典争议)、每日签到。权限这块做得也细致:基于角色的访问控制,邀请链接可设一次性或有效期。
登录方式支持一堆:邮箱密码、Google / Apple OIDC、TOTP 双因素认证,甚至还支持 Passkeys(指纹/面部识别),安全性拉满。
PWA:不装 App 也能用
TREK 是个 PWA(渐进式 Web 应用),浏览器打开后 iOS / Android 都能”添加到主屏幕”,启动就是接近原生的体验——全屏、主题状态栏、离线缓存。
Service Worker 缓存了地图瓦片、API 数据甚至上传文件,断网也能翻之前的行程记录。出门在外网络不稳的时候,这个非常实用。

附加模块(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 就全自动了。

有什么坑
试了 Demo 站几天,说几个注意点:
- 地图中文搜索:默认走免费 OSM,国内城市还好,小众景点可能搜不到。如果对地图体验要求高,需要申请 Google Places API Key 或 Mapbox Token——好在都是可选配置,不影响基本使用。
- PWA 首次加载:初始化会缓存大量资源,几十 MB 不夸张,建议 Wi-Fi 下完成首次打开。
- SSO 配置门槛:OIDC 需要 Authentik 或 Keycloak 这类自建 IdP,对个人用户来说有点重。只用邮箱密码登录完全够用。
- 资源占用:跑在 1G 内存的轻量 VPS 上没问题,SQLite 单文件数据库对资源友好。上传文件单条 50MB 限制,大量高清照片要留意存储。
- 更新时别挂载整个 /app:更新容器的 Docker 命令里,只挂载
data和uploads目录,挂整个/app会导致升级后容器内文件被旧卷覆盖。
总结
TREK 是那种”不打开不知道,一打开吓一跳”的项目。6k 星,功能比大部分商业旅行 App 还全,而且所有数据都在自己手里。
适合谁:
- 有 NAS / 自托管习惯的家庭用户
- 经常组团出行需要协作的旅行爱好者
- 对隐私敏感、不想旅行数据上云的
不适合谁:
- 只想手机上打开就用、不想折腾部署的
- 对中文地图搜索有硬性要求的(OSM 中文数据有差距)
对比 Wanderlog 每年几十刀的订阅,自己服务器上跑个 TREK 几乎零成本。唯一开销就是折腾的那半小时——对 NAS 玩家来说,这算事儿吗?
项目地址:https://github.com/mauriceboe/TREK
Docker Hub:https://hub.docker.com/r/mauriceboe/trek
演示站:https://demo.liketrek.com