TREK 是一个功能强大、可自托管的旅行规划工具,它的核心特点是实时协作和功能全面,几乎集成了规划一次旅行所需的所有功能
🎯 核心功能概览
TREK 不仅仅是一个行程规划器,更是一个完整的旅行管理平台,其主要功能模块包括:
- 🧭 行程规划:提供拖拽式日程安排,支持添加地点、自动优化路线,并集成了交互式地图(支持Leaflet或Mapbox GL),可显示3D建筑、地形和照片标记。你可以通过Google Places或OpenStreetMap搜索地点,并导入GPX、KML等地理数据文件。
- 🧳 旅行管理:涵盖旅行的方方面面,包括预订管理(航班、住宿、餐厅,支持从邮件或PDF导入)、费用分摊(Splitwise风格,支持多币种)、打包清单(含模板和进度追踪)、文档附件(上传门票、PDF等)以及完整的PDF行程导出。
- 👥 实时协作:支持多人实时同步编辑行程,所有更改会通过WebSocket即时显示。你可以邀请成员,并设置基于角色的访问权限。还内置了群聊、投票、每日签到等协作套件。
- 📱 移动端与PWA:作为渐进式Web应用(PWA),它可以在浏览器中直接安装到手机主屏,提供类似原生应用的体验,并支持离线使用(缓存地图和API数据)。
- 🧩 可扩展的插件系统:功能采用模块化设计,管理员可以按需开启或关闭特定功能,如“Vacay”(个人假期规划)、“Journey”(旅行日志)、“AirTrail”(航班同步)等。
- 🤖 AI与MCP集成:内置了MCP(模型上下文协议)服务器,通过OAuth 2.1认证,为AI助手提供了超过150个工具和30个资源,让AI能够帮你创建行程、制定预算等。
🚀 快速部署与使用
TREK 的部署非常便捷,尤其适合熟悉Docker的用户。
极速启动:使用Docker命令,30秒内即可运行。
1
2
3ENCRYPTION_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 logs查看)。更新与维护:通过
docker compose pull && docker compose up -d即可轻松更新,数据存储在挂载的./data和./uploads目录中,不会丢失。生产环境部署:项目提供了详细的Nginx和Caddy反向代理配置示例,并说明了WebSocket和MCP需要特殊处理。
⚙️ 技术栈与高级配置
- 技术栈:基于 NestJS (后端) 和 Zustand (前端状态管理),使用 WebSocket 实现实时同步,认证支持 JWT、OAuth 2.1、OIDC SSO、WebAuthn (Passkeys) 和 TOTP 2FA。
- 高度可配置:通过丰富的环境变量进行配置,包括数据库、加密密钥、OIDC单点登录、邮件服务器、地图服务等。
- 数据与备份:默认使用SQLite数据库,数据文件存储在
./data目录。管理员可通过后台界面进行手动备份,或配置自动备份计划。
⚠️ 注意事项
- 自托管要求:这是一个自托管应用,需要你拥有自己的服务器或NAS来运行。
- 加密密钥:
ENCRYPTION_KEY至关重要,用于加密存储的API密钥等敏感信息。请务必妥善保管,丢失可能导致已存储的加密数据无法读取。 - 许可证:项目采用 AGPL v3 许可证。这意味着如果你修改了代码并向第三方提供网络服务,你的修改也需要开源。
- 挂载目录:部署时务必只挂载
./data和./uploads目录,不要挂载/app目录,否则会覆盖应用代码导致容器无法启动。
💎 总结
TREK 是一个功能极其丰富、设计现代的自托管旅行规划“全家桶”。它的核心价值在于将行程规划、预算管理、协作沟通、文档存储等功能整合在一个统一的、可私有化部署的平台中。非常适合注重数据隐私、希望完全掌控自己旅行数据的个人、家庭或小型团队使用。
如果你正在寻找一个不仅能规划路线,还能管理整个旅行生命周期(从灵感收集到出行后日志)的自托管方案,TREK是一个非常全面且强大的选择。对于具体的部署问题或功能使用,可以查阅其详细的文档或提出更具体的问题。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 极客的赛博空间 | 专注 AI 与技术分享!
评论



