TREK:开源自托管旅行规划神器,一站式搞定行程、预算、协作和打包清单

如果你正在寻找一款功能全面、可自托管、支持实时协作的旅行规划工具,那么今天要介绍的 TREK 绝对值得你关注。它在 GitHub 上已获得 7600+ Star,今天单日新增 1000+ 星,堪称旅行规划领域的「Notion + Google Maps + Splitwise」合体。

🧳 什么是 TREK?

TREK 是一个全功能的自托管旅行规划 Web 应用,支持拖拽式行程编排、交互式地图、实时多人协作、PWA 安装、SSO 单点登录、预算追踪、打包清单等。它使用 NestJS + React + SQLite 构建,Docker 一键部署,开箱即用。

🔥 核心功能一览

🗺️ 行程规划

  • 拖拽式日程编排:将景点、餐厅拖入每天的计划中,支持跨天移动和重新排序
  • 交互式地图:Leaflet / Mapbox GL 双地图引擎,支持 3D 建筑、地形、照片标记、聚类和路线可视化
  • 地点搜索:Google Places(照片、评分、营业时间)或 OpenStreetMap(免费,无需 API Key)
  • 地点导入:支持 Google Maps / Naver Maps 共享列表、GPX、KML/KMZ、GeoJSON 文件
  • 路线优化:自动排序地点并导出到 Google Maps

💰 预算与费用

  • 记录和分摊旅行开销(Splitwise 风格)
  • 人均/每日费用明细,支持多币种
  • 自动结算功能,清楚显示「谁欠谁多少钱」

🎒 打包清单

  • 分类模板,快速创建清单
  • 分配给不同成员,进度追踪
  • 可选行李重量追踪(iOS 风格分布图)

👥 多人协作

  • 实时同步:WebSocket 驱动,所有连接用户即时看到变更
  • 角色权限管理(Owner / Editor / Viewer)
  • 一键邀请链接(可设过期时间)
  • 群聊、共享笔记、投票、每日签到

🔐 安全与认证

  • SSO(OIDC):支持 Google、Apple、Authentik、Keycloak 等
  • 双因素认证(TOTP)
  • Passkeys(WebAuthn):指纹/面容/安全密钥无密码登录

📱 安装体验

  • PWA:iOS/Android 直接添加到主屏幕,无需 App Store
  • 离线支持:Service Worker 缓存地图瓦片和 API 数据
  • 原生体验:全屏启动、主题化状态栏、启动画面

🤖 AI 集成(MCP 协议)

  • 内置 MCP Server,OAuth 2.1 认证
  • 150+ 工具、30 资源端点
  • 27 个 OAuth 权限颗粒度控制
  • AI 可自动创建行程、规划日程、管理预算、标记已访问国家

🛠️ 技术栈

层面技术
后端框架NestJS 11
前端框架React 19 + TypeScript
状态管理Zustand
样式Tailwind CSS
数据库SQLite
构建工具Vite
地图引擎Leaflet / Mapbox GL
容器化Docker / Helm (K8s)
实时通讯WebSocket

🚀 快速部署

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 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

配合 Nginx 或 Caddy 反向代理 + SSL,即可在生产环境使用。TREK 支持 WebSocket,反向代理需正确配置 /ws 路径的升级。

🎯 适用场景

  • 家庭/朋友组团旅行:多人协作规划行程、分摊费用
  • 长期数字游民:管理多段旅程、追踪预算
  • 旅行博主/规划师:为客户制作详细行程方案并导出 PDF
  • 自托管爱好者:数据完全掌控在自己的服务器上
  • 注重隐私的用户:不依赖第三方服务,旅游数据不外泄

📊 扩展功能模块

TREK 还附带多个可选的扩展模块:

  • Atlas(世界地图):标记已访问国家、旅行统计、连续打卡追踪
  • Journey(旅行日记):杂志风格的旅行日志,支持照片、地图标记
  • Vacay(个人假期):日历规划、100+ 国家法定假日
  • AirTrail:连接自托管 AirTrail 实例,自动导入航班信息

💡 总结

TREK 是那种「你找了很久终于找到」的项目——功能设计极其完善,涵盖了从行程规划到预算、打包、协作、AI 集成的完整旅行工作流。Docker 一键部署、PWA 安装、20 种语言支持、AGPL v3 开源协议,无论是个人使用还是小团体出行,它都能大幅提升旅行规划体验。

GitHub 地址:https://github.com/mauriceboe/TREK

Star 数:7,600+ ⭐ | 今日新增:1,000+ 🚀

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享