TREK
Свой совместный планировщик путешествий: маршрут точками на карте, бюджет поездки, списки вещей и дневник - с реалтайм-синхронизацией между участниками. План поездки и все заметки остаются на вашем сервере, а не в TripIt или Google. Развернули на Fatmetal Cloud Server, завели реальную поездку и замерили.
Вердикт
- планировать поездки одному или командой без TripIt/Google: карта, бюджет, списки, дневник
- хочется держать план и заметки о поездках у себя, а не в чужом облаке
- работает self-contained из коробки, без обязательных внешних ключей и SaaS
- нужен готовый нативный мобильный клиент как у TripIt/Wanderlog - тут веб
- нужны спутниковые тайлы, авто-обложки и SSO без возни - это опциональные ключи
- нужен движок навигации/роутинга, а не планировщик - это другой класс задач
Что это и какую задачу решает
TREK - веб-приложение для планирования путешествий, которое вы держите у себя. Создаете поездку, расставляете точки на карте (что посмотреть, где остановиться), раскладываете их по дням, ведете бюджет с мультивалютой, списки вещей и дорожный дневник. Все это - совместно: участники поездки видят изменения в реальном времени. Есть встроенный AI-помощник и MCP-интерфейс (опционально).
Проще говоря, это ваш личный TripIt/Wanderlog или связка «Google Мои карты + Таблицы», но на своем сервере: чувствительные данные о поездках, бюджете и планах не уходят в чужое облако. Важный плюс - self-contained из коробки: карта на Leaflet и OpenStreetMap, места ищутся через OSM, погода через Open-Meteo - все без внешних ключей. Проект AGPL-3.0, около 10 тысяч звезд.
Чем отличается от TripIt и Google
Сравнение по тому, что влияет на контроль и приватность планов.
| Параметр | TREK | TripIt / Wanderlog / Google |
|---|---|---|
| Цена | бесплатно, open-source | freemium (Pro платный) либо данные в Google |
| Где план и заметки | на вашем сервере | в облаке вендора |
| Совместная работа | реалтайм между участниками | есть, но в чужом облаке |
| Из коробки без ключей | да (Leaflet/OSM/Open-Meteo) | завязано на сервисы вендора |
| Мобильный клиент | веб (нативного приложения нет) | есть приложения |
Тех-стек и архитектура
Бэкенд на Node.js/NestJS, данные - в SQLite (файл в томе, отдельная БД не нужна), фронт на React/Vite отдается тем же образом. Приложение слушает 127.0.0.1:3000 и наружу напрямую не смотрит; перед ним Caddy держит внешний :443 и сам выпускает валидный TLS. Итого два контейнера, один docker compose.
Контейнер запускается в hardened-режиме: read-only файловая система, cap_drop: ALL, no-new-privileges, tmpfs под /tmp - приятная деталь для сервиса с личными данными. За TLS-прокси обязательны env FORCE_HTTPS=true, TRUST_PROXY=1 и APP_URL/ALLOWED_ORIGINS на домен - иначе куки и ссылки строятся неверно. Наш установщик это проставляет. Проверяли на v3.4.0.
Минимальная конфигурация
Реальные требования против официального минимума.
| Официальный минимум RAM | 1 GB |
| RAM всего стека в простое | ~310 MiB (2 контейнера) |
| Образ на диске | ~2.34 GB |
| Рекомендуем тариф | CPU2-RAM4-DISK50 |
Важно: стек легкий - для личного и семейного планирования хватает тарифа CPU2-RAM4-DISK50 за 500 руб/мес. База - SQLite-файл, отдельный сервер БД разворачивать не нужно.
Развертывание на Fatmetal
Базовый путь - Cloud Server + Ubuntu 24.04 + Docker из маркетплейса.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и готовый к входу TREK.
Рекомендуемая конфигурация: CPU2-RAM4-DISK50
Создать VM
Fatmetal Cloud Server, Ubuntu 24.04, приложение Docker из маркетплейса.
Запустить установщик
curl -o install.sh ССЫЛКА-НА-СКРИПТ bash install.shСкрипт вычисляет домен из IP (magic-DNS), поднимает Caddy с автоматическим TLS, генерит ключ шифрования и пароль администратора. Логин админа установщик пишет в файл кредов.
Войти и настроить
Откройте
https://<IP-или-домен>, войдите администратором из файла кредов, смените пароль. При необходимости включите или закройте открытую регистрацию в Admin > Settings. Интерфейс переводится на русский и еще около десятка языков (выбор в профиле).
Что измерили после запуска
Цифры со свежей установки на живом стенде.
| RAM всего стека в простое | ~310 MiB |
| - trek (app) | 297 MiB |
| - caddy | 12.8 MiB |
| Образ на диске | ~2.34 GB |
| Внешний TLS | валидный Let's Encrypt (Caddy) |
| Версия | 3.4.0 |
Мы завели реальную поездку - «Путешествие по Италии» на десять дней - и расставили точки: Рим, Флоренция, Венеция с координатами, описанием и бюджетом. TREK разложил их на карте OpenStreetMap, показал маршрут по дням и посчитал детали поездки. Карты, места и погода работали без единого внешнего ключа.
Проверено на версии 3.4.0, июль 2026. На новых версиях результаты могут отличаться.
Где может сломаться
Реальные грабли планировщика на облачной VM.
Опциональные внешние ключи. Базовый функционал работает из коробки, но красивые обложки поездок (Unsplash), спутниковые тайлы (Mapbox) и SSO (OIDC) требуют своих ключей. Unsplash без ключа с датацентр-IP иногда блокируется - для обложек лучше завести бесплатный ключ.
Причина. За TLS-прокси приложению нужно знать, что снаружи https. Без FORCE_HTTPS/TRUST_PROXY/APP_URL оно строит небезопасные куки и http-ссылки.
Решение. Проставить эти env на домен (наш установщик делает это сам). При своем домене - обновить APP_URL и ALLOWED_ORIGINS.
Открытая регистрация. Админ создается на первом старте, но регистрация может быть открыта. На публичном инстансе закройте ее в Admin > Settings.
Безопасность и обновления
Внешний TLS держит Caddy (валидный Let's Encrypt автоматически). Контейнер запущен в hardened-режиме (read-only, cap_drop ALL, no-new-privileges). Данные - на вашем сервере. Чек-лист: сменить пароль администратора; решить вопрос с регистрацией (закрыть на публичном инстансе); сохранить ключ шифрования ENCRYPTION_KEY отдельно; настроить бэкап тома с данными.
Обновление - подтянуть свежий образ и перезапустить:
cd /opt/trek
docker compose pull && docker compose up -d
Бэкап - каталоги data (SQLite) и uploads плюс сохраненный ENCRYPTION_KEY (без него зашифрованные поля не восстановить).
Связь с другими стеками
- SSO - TREK умеет OIDC (Google, Authentik, Keycloak); можно завести единый вход через свой провайдер идентификации.
- Обратный прокси - Caddy уже в комплекте и держит TLS; отдельный прокси не нужен.
- Свои фото - интеграция с Immich для картинок мест (в локальной сети - через
ALLOW_INTERNAL_NETWORK).
Когда это НЕ ваш выбор
Нужен нативный мобильный клиент
TREK - веб-приложение (адаптивное), но отдельного приложения в сторах, как у TripIt/Wanderlog, нет. Если критичен офлайн-режим в дороге - это минус.
Нужны спутник, авто-обложки и SSO без возни
Красивые тайлы, картинки и единый вход требуют внешних ключей/настройки. Из коробки - функциональная, но простая карта (OSM) и логин по паролю.
Нужен роутинг-движок
Если задача - строить оптимальные маршруты и навигацию (как OSRM), это другой класс инструментов. TREK планирует поездку, а не прокладывает дорогу.
Частые вопросы
Можно поставить без Docker?
Штатный путь - docker compose (один контейнер приложения + Caddy). Им и разворачиваем.
Хватит ли 1 GB RAM?
Официальный минимум - 1 GB; у нас весь стек в простое - около 310 MiB, так что тарифа CPU2-RAM4-DISK50 хватает с запасом.
Обязательны ли внешние ключи?
Нет. Из коробки работает без ключей (Leaflet/OSM/Open-Meteo). Ключи нужны только для обложек Unsplash, спутниковых тайлов Mapbox и SSO.
Как первый вход?
Админ создается на первом старте (email/пароль из файла кредов). Смените пароль после входа.
Есть русский интерфейс?
Да, русский в списке из примерно полутора десятков языков; выбирается в профиле пользователя.
Как обновлять?
docker compose pull && docker compose up -d.
Что бэкапить?
Каталоги data (SQLite) и uploads плюс ENCRYPTION_KEY.
Что значит лицензия AGPL-3.0?
Свободный open-source: модифицируете и запускаете как сетевой сервис - открываете исходники модификации.
Итог
TREK - зрелый (около 10 тысяч звезд, AGPL-3.0) и легкий совместный планировщик путешествий на своем сервере: весь стек в простое держится в пределах ~310 MiB RAM, карта и погода работают из коробки без внешних ключей, а план поездки, бюджет и заметки остаются у вас. Главное помнить - для красивых обложек и спутниковых тайлов нужны опциональные ключи, а нативного мобильного приложения нет. Для приватного планирования поездок в одиночку или командой - отличный выбор.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.