群晖上部署 TREK:一个容器搞定行程、地图、预算和协作

简介

什么是 TREK ?

TREK 是一个开源、自托管的实时协作旅行规划工具,覆盖旅行全周期——从前期的景点筛选、路线规划,到中期的预算追踪、预订管理,再到后期的旅行日志、文档归档,全流程都能在一个平台完成。它解决了传统旅行规划中信息分散、难以协作的痛点,让多人同行时共同编辑和完善行程变得轻松高效。

主要特点

  • 智能行程规划:拖拽式日历规划器,轻松安排每天的行程,支持跨天调整和重新排序
  • 交互式地图:支持 LeafletMapbox GL,带 3D 建筑、地形、照片标记和路线可视化
  • 地点搜索:支持 Google Places(含评分、照片、营业时间)和 OpenStreetMap(免费无需 API Key)
  • 预算追踪Splitwise 风格的费用追踪与多人分摊,支持多币种
  • 打包清单:分类模板、成员分配、进度追踪,还可选配行李重量追踪
  • 实时协作WebSocket 实时同步,修改即时显示,支持角色权限管理
  • 预订管理:航班、住宿、餐厅等预订信息管理,支持从确认邮件和 PDF 自动导入
  • PWA 支持:可安装到 iOS/Android,无需应用商店,支持离线使用
  • SSO 登录:支持 GoogleAppleAuthentikKeycloakOIDC 提供商
  • 20 种语言:包含中文、英文、日文、韩文等国际语言支持
  • 内置 MCP 服务器:提供 150+ 工具和 30 个资源接口,AI 助手可直接创建行程、规划路线
  • 开源免费:基于 AGPL v3 协议开源,可免费使用和修改

应用场景

  • 家庭旅行规划:一家人共同规划假期行程,管理打包清单,再也不用担心漏东西
  • 朋友结伴出游:多人在线协作编辑行程,实时看到彼此的修改,群聊讨论景点安排,分摊费用
  • 自由行攻略整理:整合景点、地图、路线、预算、预订信息,一份行程单搞定所有
  • 长期旅行管理:多城市多日行程管理,包含路书、日记、照片归档等完整记录

TREK 是一套功能极为完整的自托管旅行规划系统,把地图、行程、协作、预算和文件管理整合到统一的私有平台中。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 trek,选择第一个 mauriceboe/trek,版本选择 latest

本文写作时,latest 版本对应为 3.4.1

docker 文件夹中,创建一个新文件夹 trek,并在其中建两个子文件夹 datauploads

文件夹 装载路径 说明
docker/trek/data /app/data 存放数据库和日志
docker/trek/uploads /app/uploads 存放上传文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 3000
本地端口 容器端口
3258 3000

环境

可变
ENCRYPTION_KEY 必填,openssl rand -hex 32 生成
TZ 设为 Asia/Shanghai
COOKIE_SECURE 如果你用 http://群晖IP:3258 访问且登录总是跳回登录页,设 COOKIE_SECURE=false 就能解决

环境变量说明ENCRYPTION_KEY 是加密密钥,用于加密存储的敏感数据(API KeysMFASMTPOIDC 等),必须手动设置。可用 openssl rand -hex 32 命令生成 64 位十六进制字符串。

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 新建文件夹 trek 和 子目录
mkdir -p /volume1/docker/trek/{data,uploads}

# 进入 trek 目录
cd /volume1/docker/trek

# 生成加密密钥
openssl rand -hex 32

# 一键启动
docker run -d \
--name=trek \
--restart unless-stopped \
-p 3258:3000 \
-v $(pwd)/data:/app/data \
-v $(pwd)/uploads:/app/uploads \
-e ENCRYPTION_KEY=b19825556240f83d9f350075a2070421501364e362416df0b43ed1f6180eee13 \
-e TZ=Asia/Shanghai \
-e COOKIE_SECURE=false \
mauriceboe/trek

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3.8'

services:
app:
image: mauriceboe/trek:latest
container_name: trek
restart: unless-stopped
ports:
- "3258:3000"
volumes:
- ./data:/app/data # 数据库和日志
- ./uploads:/app/uploads # 上传文件
environment:
- NODE_ENV=production
- PORT=3000
- ENCRYPTION_KEY=b19825556240f83d9f350075a2070421501364e362416df0b43ed1f6180eee13 # 必填,openssl rand -hex 32 生成
- TZ=Asia/Shanghai
- LOG_LEVEL=info
- COOKIE_SECURE=false # 允许 session cookie 通过明文 HTTP 传输,否则 http 协议下无法登录成功

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 trek 和 子目录
mkdir -p /volume1/docker/trek/{data,uploads}

# 进入 trek 目录
cd /volume1/docker/trek

# 生成加密密钥
openssl rand -hex 32

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:3258 即可进入登录界面

默认就是简体中文,如果不是,可以登录之后,在 Settings 中设置为 简体中文

首次启动时,TREK 会自动创建一个管理员账号:

  1. 如果设置了 ADMIN_EMAILADMIN_PASSWORD 环境变量,则使用设定的账号
  2. 否则,管理员的邮箱和密码会输出到容器日志中,执行 docker logs trek 查看

输出示例:

1
2
3
TREK - First Run: Admin Account Created
Email: admin@trek.local
Password: XXXXXidJ4HS1

或者从日志中直接提取

1
2
# 查看管理员初始密码
docker logs trek 2>&1 | grep -E "^(║\s+(Email|Password))" | sed 's/║//g'

第一次需要修改密码

登录后的主界面

  1. 创建新的旅行计划,设置名称、目的地和日期范围

创建成功之后

  1. 通过邮件或邀请链接添加协作成员

  1. 使用地点搜索在地图上标记景点、餐厅和住宿

  1. 拖拽安排每日行程,添加笔记和标签

  1. 设置预算并记录支出,实现多人分摊

注意事项

  1. 加密密钥备份ENCRYPTION_KEY 非常重要,一旦丢失将无法解密已存储的敏感数据,务必妥善保存
  2. 数据持久化:务必挂载 datauploads 两个卷,切勿将卷挂载到 /app 目录,否则会覆盖应用代码导致容器无法启动
  3. 反向代理:如需通过域名访问,建议配置 NginxCaddy 反向代理并启用 HTTPSTREK 使用 WebSocket 实时同步,代理需支持 WebSocket 升级
  4. 安全建议:建议启用 FORCE_HTTPS=true(需配合反向代理)和 TRUST_PROXY=1,并修改默认管理员密码
  5. 网络环境TREK 的地图(OpenStreetMap/Mapbox)、地点搜索(Google Places)、天气预报(Open-Meteo)、Unsplash 图片搜索等均为海外服务,国内网络可能无法直接访问。建议设置网络代理解决,否则部分地图和搜索功能可能不可用

参考文档

TREK: A self-hosted travel/trip planner with real-time collaboration, interactive maps, PWA support, SSO, budgets, packing lists, and more.
地址:https://github.com/liketrek/TREK

mauriceboe/trek - Docker Image
地址:https://hub.docker.com/r/mauriceboe/trek

TREK 在线 Demo
地址:https://demo.liketrek.com