
实时协同、地图路线、费用分摊、旅行日志、AI助手 一个Docker命令,30秒跑起来
🧳 先看痛点:规划一次旅行,要开多少个App?
你准备一次家庭旅行、跟朋友的周末游、或者一次独自探险。
你要做这些事:
- 找地方:打开Google Maps,标星一堆地点
- 排行程:打开Excel,把地点排进每天的时间表
- 订住宿和机票:打开Booking/Skyscanner,记下确认号
- 算预算:打开另一个Excel表格,记账
- 打包行李:打开备忘录,列清单
- 记录旅行:拍完照片存在手机里,写游记?算了……
每一次旅行,你至少要同时开 5-6个工具,信息分散在不同的App里。
更麻烦的是:
- 你分享给同行的朋友/家人:发一个Google Maps链接,发一个Excel文件,发一个备忘录截图……对方还要各自去查
- 数据都在别人家服务器上:你的行程、预算、照片,都存在第三方
- 功能分散:没有一个工具同时做“地图+行程+预算+清单+游记”
核心矛盾:
旅行规划需要地图、日程、预算、清单、记录——但目前没有一个工具能把它们合在一起,还能让你自己托管数据。
✅ TREK 的解法
TREK 是一个自托管的、实时协同的旅行规划平台。
一句话:把你旅行的所有信息——地图、行程、预算、清单、日志——放在一个地方,你自己的服务器上
# 30秒启动
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,注册账号,开始规划下一次旅行。
🔥 它解决了什么?
1. “分散工具” vs “一个平台全搞定”
| 传统方式(开5个App) | TREK | |
|---|---|---|
| 地点规划 | Google Maps | ✅ 内置地图+拖拽日程 |
| 行程表 | Excel | ✅ 每日计划+拖拽排序 |
| 预订管理 | 邮件/Booking | ✅ 机票/住宿/餐厅统统记录 |
| 预算分摊 | 另一个Excel | ✅ 内置Splitwise风格分账 |
| 打包清单 | 备忘录 | ✅ 分类清单+成员分配 |
| 旅行记录 | 照片在相册,文字随便写 | ✅ 杂志风格旅行日志 |
| 共享给同伴 | 发5个链接/文件 | ✅ 同一平台,实时协同 |
2. “数据在别人那” vs “数据在自己服务器”
| 商业SaaS(如TripIt) | TREK(自托管) | |
|---|---|---|
| 数据存在哪 | 别人家服务器 | 你自己服务器 |
| 数据隐私 | 依赖服务商承诺 | ✅ 完全自己掌控 |
| 费用 | 按月付费或限制功能 | ✅ 免费(自托管) |
| 数据导出 | 受限 | ✅ 完整SQLite数据库+备份 |
| 服务会不会停 | 取决于第三方 | ✅ 你自己决定 |
3. “AI帮不上忙” vs “AI可以帮你操作TREK”
TREK内置了一个MCP服务器。你的AI编程助手(Claude Code、Cursor等)可以通过OAuth 2.1安全连接TREK,然后:
- 帮你创建行程
- 安排每日路线
- 自动生成打包清单
- 管理预算
- 标记已访问的国家
# AI可以调用这些能力(示例)
"帮我规划一个7天的意大利之旅,从罗马开始"
"为这次旅行生成一个打包清单,意大利夏天"
"显示这次旅行的预算概览"
💡 MCP(模型上下文协议):一种让AI工具之间互相通信的标准协议。TREK装了MCP服务器,AI就能“操作”TREK里的数据。
📦 核心功能一览
🧭 行程规划
- 拖拽式日程:把地点拖进每天的计划,可以跨日移动
- 交互式地图:Leaflet或Mapbox GL,3D建筑、地形、照片标记、路线可视化
- 地点搜索:Google Places(照片、评分、营业时间)或OpenStreetMap(免费,不需要API Key)
- 地点导入:分享Google Maps/Naver Maps列表,支持GPX/KML/KMZ/GeoJSON
- 每日笔记:带时间戳、图标标记的笔记,拖拽排序
- 路线优化:自动排序地点,导出到Google Maps
- 天气预报:16天预报(Open-Meteo,无需API Key)
🧳 旅行管理
- 预订管理:机票、住宿、餐厅——状态、确认号、附件。支持从邮件和PDF导入(KDE Itinerary)
- 费用追踪:Splitwise风格,按人/按天分摊、谁欠谁、多币种
- 打包清单:分类、模板、成员分配、进度追踪
- 行李重量追踪:iOS风格分布图(可选)
- 文档管理:附件、票据、PDF(每个最大50MB)
- PDF导出:完整行程计划导出为PDF(含封面、图片、笔记)
👥 协同与分享
- 实时同步:WebSocket,所有连接用户的变化即时可见
- 多人行程:邀请成员,基于角色的访问控制
- 邀请链接:一次性或可复用,可设过期时间
- SSO(单点登录):Google、Apple、Authentik、Keycloak或任何OIDC提供商
- 2FA:TOTP+备用码
- Passkeys:无密码登录(指纹/人脸/PIN/安全密钥)
- 协作套件:群聊、共享笔记、投票、每日签到
📱 移动端 & PWA
- 可安装:iOS和Android,直接从浏览器安装,不需要App Store
- 离线支持:Service Worker缓存瓦片、API、上传
- 原生感:全屏、状态栏主题、启动画面
- 触摸优化:移动端专属布局
🧩 插件模块(管理员可开关)
- 打包清单:分类、模板、成员分配、可选行李重量追踪
- 费用:分摊、结算、多币种
- 文档:文件附件
- 协作:聊天、笔记、投票、每日签到
- Vacay:个人假期规划器(日历、100+国家假日、结余追踪)
- Atlas:已访问国家世界地图、愿望清单、旅行统计、连续天数追踪
- Journey:杂志风格旅行日志,支持照片、地图、心情标记
- AirTrail:连接自托管AirTrail实例,同步航班到预订
- MCP:通过OAuth 2.1向AI助手暴露TREK
🤖 AI / MCP
- 内置MCP服务器:OAuth 2.1认证,150+工具、30个资源
- 精细权限范围:27个OAuth范围,13个权限组
- 完全自动化:AI可以创建行程、规划日程、生成打包清单、管理预算、标记已访问国家
- 预置提示词:
trip-summary、packing-list、budget-overview
🚀 怎么用?
方式一:Docker快速启动(30秒)
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
方式二:Docker Compose(生产环境)
services:
app:
image: mauriceboe/trek:latest
container_name: trek
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- ENCRYPTION_KEY=${ENCRYPTION_KEY}
- APP_URL=https://trek.yourdomain.com
volumes:
- ./data:/app/data
- ./uploads:/app/uploads
restart: unless-stopped
方式三:Kubernetes (Helm)
helm repo add trek https://mauriceboe.github.io/TREK
helm install trek trek/trek
安装为PWA(手机App)
- 在浏览器中打开TREK(需要HTTPS)
- iOS:分享 → “添加到主屏幕”
- Android:菜单 → “安装应用”
打开后像原生App一样全屏运行,有自己的图标。
🎯 谁最适合用?
| 人群 | 为什么适合 |
|---|---|
| 自托管爱好者 | 旅行数据全在自己服务器上,不依赖第三方 |
| 家庭旅行组织者 | 家人一起编辑行程、预算分摊、打包清单 |
| 小团体/朋友出行 | 多人协作、费用分摊、实时同步 |
| 旅行博主/内容创作者 | 杂志风格旅行日志+照片+地图,记录旅途 |
| 技术型旅行者 | Docker一键部署,完全掌控 |
| 隐私敏感的用户 | 不信任商业旅行App的数据收集 |
| AI编程助手用户 | MCP服务器让AI帮你管理旅行 |
一个典型的“家庭旅行”场景
问题:小明一家四口要去意大利旅行10天。妻子要规划行程路线,小明要管预算,孩子想要一个打包清单。之前:三个人在三个不同的App里各自记录,信息不同步。
现在:
- 小明在自己服务器上部署TREK
- 创建旅行“意大利之旅”,生成邀请链接
- 妻子在地图上拖拽安排每日行程
- 小明录入航班、酒店、餐厅预订信息
- 孩子在打包清单里勾选要带的东西
- 旅行中每天用Journey记录见闻、上传照片
- 结束后导出PDF,保存完整旅行记录
所有信息在一个地方,实时同步。旅行结束后,它变成了一份完整的“回忆册”。
🔗 链接
- GitHub:github.com/mauriceboe/TREK
- Demo:demo.liketrek.com
- Docker Hub:mauriceboe/trek
- Discord:discord.gg/NhZBDSd4qW
- 许可证:AGPL v3
✅ 总结
| 层次 | 核心内容 |
|---|---|
| 解决了什么 | 旅行规划分散在多个工具里,数据不在自己手里。TREK把地图、行程、预算、清单、日志合一,自托管 |
| 核心能力 | ①拖拽行程规划 ②地图路线 ③预订管理 ④费用分摊 ⑤打包清单 ⑥旅行日志 ⑦实时协同 ⑧AI/MCP集成 |
| 怎么用 | Docker 30秒启动,支持PWA安装为手机App |
| 谁适合 | 自托管用户、家庭/团队出行、旅行博主、技术型旅行者 |
TREK —— 你的行程,你的计划,你的服务器。 一个Docker命令,拥有自己的旅行规划全家桶。