前阵子我想找个能自己部署的旅行规划工具,我的要求也不算高:能排行程、能算花销、朋友能一起改,另外数据别放在别人服务器上。
在 GitHub 上翻了一圈,挖出了 TREK 这个项目,1.2万的 star,Docker 一条命令就能跑。我把它的文档从头到尾翻了一遍,功能比我想的还要全,给大家介绍一下。

TREK 是个什么东西
一句话说,它是一个跑在自己服务器上的旅行规划应用。
用法大概是这样:先建一次旅行,把要去的地点标到地图上,然后按天排行程。机票酒店这些预订可以记进去,花销可以记账分账,行李有打包清单,回来之后还能在里面写旅行日记。同行的人可以拉进来一起编辑,你这边刚改完,对方屏幕上马上就能看到。

数据方面,数据库就是一个 SQLite 文件,外加一个放上传文件的目录,全部存在自己机器上。后台可以手动备份,也可以设置成自动备份,界面支持 20 种语言,简体繁体中文都有,用起来没有语言障碍。
功能详情
排行程:地图上加地点,按天拖拽排序
TREK 最核心的部分就是这个行程规划器。搜地点有两种方式,可以走 Google Places,也可以用 OpenStreetMap,后者是免费的,不用申请 API key。搜到的地点直接加进某一天,先后顺序用鼠标拖着调,想换到另一天也是拖过去就行。
地图可以选 Leaflet 或者 Mapbox,支持 3D 建筑和地形显示,照片和路线也会直接画在地图上。行程排完之后,可以让它帮忙把顺序优化一遍,少走回头路,也可以导出到 Google Maps 里直接导航。
天气预报也是内置的,数据源是 Open-Meteo,不需要 key,能看未来 16 天的。要是出发日期还比较远,超出了 16 天的范围,它会拿历史气候数据给个参考,不至于完全没数。
如果你之前在 Google Maps 或者 Naver Maps 上攒过收藏清单,可以直接导入进来,不用重新标一遍。GPX、KML、GeoJSON 这些格式的轨迹文件也都能导。

特别遗憾的就是没有支持高德或者腾讯地图,它可选的这俩地图我们用着会有点别扭,还是习惯国内那俩地图,不知道后续有没有大佬二开一下,社区版把高德这些加进去。
机票酒店预订:支持确认邮件导入
航班、酒店、餐厅这些预订都可以记进去,每条预订能带上状态、确认号,还能挂附件。我觉得最省事的一点是,订票的确认邮件和 PDF 可以直接导入,它会自动解析成一条预订记录,不用我们一条条手敲。解析用的是 KDE Itinerary 那套库,靠谱程度还可以。

费用记账:支持多人 AA 分账
多人一起出门,算账是最烦的环节,这个应该不少人都有体会。TREK 里带了一个账本,用法跟 Splitwise 差不多:每笔花销记上是谁垫的钱、几个人一起分,之后可以按人看、按天看明细。等旅行结束了,点一下就能算出谁该给谁多少钱,不用自己拉 Excel 算,币种也支持好几种,出国玩的时候不用自己换算。

打包清单:支持分类和分配
打包清单支持分类,也做了模板,常用的清单下次可以直接套用。东西还能分配到具体的人,比如帐篷谁带、药品谁带,都可以标清楚,收拾的进度也能随时看到。另外它还能记行李的重量,对那些背包徒步或者坐飞机想算行李超重的人,这个非常实用。
多人协作:实时同步,邀请链接拉人
多人协作这块是实时同步的,你在这边改行程,同行人的屏幕上马上就跟着变。拉人进来用的是邀请链接,可以生成一次性的,也可以生成能重复使用的,有效期也能自己设。

账号安全这块做得也比较认真,支持 OIDC 单点登录,Google、Apple、Authentik、Keycloak 这些都能接,另外还有两步验证和 Passkey 无密码登录。说实话,自托管的工具里,把登录安全做到这个程度的我见过的不多。
除了这些,它还有一套协作功能,群聊、共享笔记、投票、每日打卡都在里面。晚上住哪家、中午吃什么这种小事,直接在投票里解决,不用在群里刷几十条消息。

手机端:可以装成 App,支持离线
手机端不用经过应用商店,用手机浏览器打开页面,iOS 上选「添加到主屏幕」,安卓上点「安装应用」,它就变成一个全屏的 App 了,有自己的图标和启动画面,跟原生应用差不多。离线也是支持的,地铁里没信号的时候照样能打开看行程。
插件功能:年假规划、足迹地图、旅行日记
功能做得比较多,作者把其中一部分做成了插件的形式,管理员可以按需要开关。
Vacay 是年假规划工具,在日历上排自己的假期,里面内置了一百多个国家的法定假日,没休完的假还能记结转。

Atlas 是一张世界足迹地图,去过哪些国家就点亮哪里,还带一些旅行统计。

Journey 是旅行日记,排版做得像杂志一样,照片可以直接从 Immich 和群晖相册里取。

除此之外,它还能对接自托管的 AirTrail,把航班记录自动同步成预订。
AI 接入:内置 MCP 服务
TREK 自带了一个 MCP 服务,走 OAuth 2.1 鉴权,开放给 AI 助手的工具有 150 多个。接好以后,AI 可以帮忙建行程、排每天的日程、生成打包清单,也可以整理预算。权限这块切得比较细,一共 27 个 scope 分组,不想开放给 AI 的权限,关掉就行。
这个功能更适合已经在用 MCP 客户端的人去折腾,普通用户不用它,也完全不影响正常使用。
AI这块,对于那些懒得规划行程,懒得做攻略的人非常实用,把你游玩的地方、待的时间给它,AI帮你搞。
快速开始
Docker 一条命令就能跑起来:
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 mauriceboe/trek
跑起来之后打开 http://localhost:3000 就能用了。第一次启动的时候它会生成一个管理员账号,如果我们提前设了
ADMIN_EMAIL 和 ADMIN_PASSWORD 这两个环境变量,就用设好的账号密码登录;没设的话,初始密码会打在容器日志里,用 docker logs trek 就能看到。
正式用的话建议上 docker compose,README 里有现成的配置文件,HTTPS 和反向代理怎么配也都写了。
有一点要提醒:
实时同步走的是 WebSocket,所以配反向代理的时候要把 /ws 的升级请求放行,不然多人同步会失效。Nginx 的配置 README 里给得很全,照着抄就可以。
以后更新也简单,docker compose pull 拉一下新镜像,再 up -d 重启就好了。数据都存在挂载出来的目录里,升级的时候不会动到这些数据,可以放心更新。
什么人适合用
经常跟朋友、家人一起出门的,这个工具把排行程、分账、打包这几件事都管起来了,不用在微信群、备忘录、Excel 之间来回倒腾。
家里有空闲服务器或者 NAS 的话,部署基本没什么成本,Docker 拉起来就能用。
对数据比较在意的人也适合自己搭一套。行程、证件扫描件、预订记录这些东西都存在自己机器上,想备份、想迁移、想删除,都是自己控制。
小团队搞团建也可以用,拉人进来、投票定方案、记账分账,一个工具就走完了。
我的看法
这种「一个应用管全部」的自托管工具,我之前试过一些,大多数是某一块做得比较深,剩下的部分就有点糊弄。TREK 难得的地方在于每一项都能正常用。我实际看下来,地图功能虽然用着别扭,但真的能用,不是摆个样子,分账也确实能把多人的账算清楚,手机上装成 PWA 之后体验也过得去,没有明显的凑合感。
另外我觉得它内置 MCP,算是不错的亮点吧,旅行规划本来就是一堆碎活,查地点、排顺序、列清单,这些事情交给 AI 去做挺合适的。现在支持 MCP 的客户端也越来越多,接进去之后,很多操作说句话就能完成了,对我们这些不爱做旅游规划的人很友好。
如果手里有台闲着的服务器,我觉得值得装一个试试,下次出门之前把行程丢进去,把同行的人都拉进来一起改,体验会比在微信群里发接龙好不少。
开源地址
https://github.com/liketrek/TREK