TREK - self-hosted планировщик путешествий: создаете поездку, расставляете точки на карте (что посмотреть, где остановиться), раскладываете по дням, ведете бюджет с мультивалютой, списки вещей и дорожный дневник. Все совместно - участники видят изменения в реальном времени; есть встроенный AI-помощник. Работает self-contained из коробки: карта на Leaflet и OpenStreetMap, поиск мест через OSM, погода через Open-Meteo - без внешних ключей. Это ваш личный TripIt на своем сервере в РФ: план поездки, бюджет и заметки не уходят в чужое облако.
Что внутри
- TREK - веб-приложение на
Node.js/NestJS: поездки, карта, маршрут, бюджет, списки, дневник, участники. SQLite- встроенная база (файл в томе, отдельный сервер БД не нужен).- Фронт на
React/Viteотдается тем же образом; контейнер read-only с hardening. - Встроенный
Caddy- reverse-proxy и авто-TLS (Let's Encrypt) поверх приложения.
Как войти
- Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.3->https://45-15-159-3.fatmetal.net/(этот же адрес - при входе по SSH и в файле кредов/root/trek-credentials.txt). - Администратор создается на первом старте: логин
admin@<ваш-домен>и случайный пароль лежат в файле кредов. Войдите и смените пароль. - Открытую регистрацию новых пользователей включите или закройте в Admin > Settings. Интерфейс переводится на русский (выбор в профиле).
Свой домен
Направьте A/CNAME на этот сервер, задайте DOMAIN=ваш.домен в /etc/trek-mp/params.env, затем bash /opt/trek-mp/install.sh - Caddy перевыпустит сертификат, а APP_URL/ALLOWED_ORIGINS обновятся под новый домен. Полная инструкция - на сервере: cat /root/trek-credentials.txt.
Требования
Ubuntu 24.04, открытые порты 80/443. Два контейнера (TREK + Caddy). Стек легкий: в простое около 310 МБ RAM, база - SQLite-файл, хватает тарифа CPU2-RAM4-DISK50. Своего TLS у приложения нет - его выпускает встроенный Caddy. Базовый функционал работает без внешних ключей; обложки (Unsplash), спутниковые тайлы (Mapbox) и SSO (OIDC) - опционально, по своим ключам.