社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub 爆火的 AI 旅行规划神器,行程、分账、打包清单全管了

极客之家 • 6 天前 • 80 次点击  

 

前阵子我想找个能自己部署的旅行规划工具,我的要求也不算高:能排行程、能算花销、朋友能一起改,另外数据别放在别人服务器上。

在 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

 

 

这个公众号长期分享实用开源项目。如果你不想逐篇翻阅历史文章,可以直接关注微信公众号“极客之家”,通过后台留言与我们互动交流。

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/199734