๐Ÿ“ˆ GitHub Trending

mauriceboe/TREK

github.com/mauriceboe/TREK โ†’

๐Ÿ“– README ๆ‘˜่ฆ

A self-hosted, real-time collaborative travel planner โ€” with maps, budgets, packing lists, a journal, and AI built in.

 

   
 
   
 
   
 
   
 
   
 
   
 
   
   
   
   

 

---

 

 

 

 

 
     
     
     
     
     
     
     
     
 

---

## What you get

 
   
   
 

 
  See all features  

 
 
 

#### ๐Ÿงญ Trip planning

- **Drag & drop planner** โ€” organise places into day plans with reordering and cross-day moves
- **Interactive map** โ€” Leaflet or Mapbox GL with 3D buildings, terrain, photo markers, clustering, route visualization
- **Place search** โ€” Google Places (photos, ratings, hours) or OpenStreetMap (free, no API key)
- **Place import** โ€” shared Google Maps / Naver Maps lists, plus GPX and KML/KMZ/GeoJSON map files
- **Day notes** โ€” timestamped, icon-tagged notes with drag-and-drop reordering
- **Route optimisation** โ€” auto-sort places and export to Google Maps
- **Weather forecasts** โ€” 16-day via Open-Meteo (no key) + historical climate fallback
- **Category filter** โ€” show only matching pins on the map

 
 

#### ๐Ÿงณ Travel management

- **Reservations** โ€” flights, accommodations, restaurants with status, confirmation numbers, files; import from booking confirmation emails and PDFs (KDE Itinerary)
- **Costs** โ€” track and split trip expenses (Splitwise-style): per-person / per-day breakdowns, settle-up, multi-currency
- **Packing lists** โ€” categories, templates, user assignment, progress tracking
- **Bag tracking** โ€” optional weight tracking with iOS-style distribution
- **Document manager** โ€” attach docs, tickets, PDFs to trips / places / reservations (โ‰ค 50 MB each)
- **PDF export** โ€” full trip plan as PDF with cover page, images, notes

 
 
 
 

#### ๐Ÿ‘ฅ Collaboration

- **Real-time sync** โ€” WebSocket. Changes appear instantly across all connected users
- **Multi-user trips** โ€” invite members with role-based access
- **Invite links** โ€” one-time or reusable links with expiry
- **SSO (OIDC)** โ€” Google, Apple, Authentik, Keycloak, or any OIDC provider
- **2FA** โ€” TOTP + backup codes
- **Passkeys** โ€” passwordless WebAuthn login (fingerprint / face / PIN / security key), admin-toggleable
- **Collab suite** โ€” group chat, shared notes, polls, day check-ins

 
 

#### ๐Ÿ“ฑ Mobile & PWA

- **Installable** โ€” iOS and Android, straight from the browser, no App Store needed
- **Offline support** โ€” Service Worker caches tiles, API, uploads via Workbox
- **Native feel** โ€” fullscreen standalone, themed status bar, splash screen
- **Touch optimised** โ€” mobile-specific layouts with safe-area handling

 
 
 
 

#### ๐Ÿงฉ Addons (admin-toggleable)

- **Lists** โ€” packing lists + to-dos with templates, member assignments, optional bag tracking
- **Costs** โ€” expense tracker with splits and settle-up (who owes whom), multi-currency
- **Documents** โ€” file attachments on trips, places, and reservations
- **Collab** โ€” chat, notes, polls, day-by-day attendance
- **Vacay** โ€” personal vacation planner with calendar, 100+ country holidays, carry-over tracking
- **Atlas** โ€” world map of visited countries, bucket list, travel stats, streak tracking, liquid-glass UI
- **Journey** โ€” magazine-style travel journal with entries, photos (Immich/Synology), maps, moods
- **AirTrail** โ€” connect a self-hosted AirTrail instance to import and sync flights into reservations
- **MCP** โ€” expose TREK to AI assistants via OAuth 2.1

 
 

#### ๐Ÿค– AI / MCP

- **Built-in MCP server** โ€” OAuth 2.1 authenticated. 150+ tools, 30 resources
- **Granular scopes** โ€” 27 OAuth scopes across 13 permission groups
- **Full automation** โ€” AI can create trips, plan days, build packing lists, manage budgets, mark countries visited
- **Pre-built prompts** โ€” `trip-summary`, `packing-list`, `budget-overview`
- **Addon-aware** โ€” exposes Atlas, Collab, Vacay when those addons are on

 
 
 
 

#### โš™๏ธ Admin & customisation

- **Dashboard views** โ€” card grid or compact list ยท **Dark mode** โ€” full theme with matching status bar
- **20 languages** โ€” EN, DE, ES, FR, IT, NL, HU, RU, ZH, ZH-TW, PL, CS, AR (RTL), BR, ID, TR, JA, KO, UK, GR
- **Admin panel** โ€” users, invites, packing templates, categories, addons, API keys, backups, GitHub history
- **Notifications** โ€” per-user preferences across email (SMTP), webhook, ntfy, and an in-app notification center
- **Auto-backups** โ€” scheduled with configurable retention ยท **Units** โ€” ยฐC/ยฐF, 12h/24h, map tile sources, default coordinates

 
 
 

 

 

## Get started in 30 seconds

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

Open `http://localhost:3000`. On first boot TREK seeds an admin account โ€” if you set `ADMIN_EMAIL`/`ADMIN_PASSWORD` those are used, otherwise the credentials are printed to the container log (`docker logs trek`).

 

  ยท   Docker Compose   ยท   Helm / Kubernetes   ยท   Install as PWA   ยท   Reverse Proxy   ยท  

 

 

## Tech stack

 

 

Real-time sync via WebSocket (`ws`). Backend on NestJS 11. State with Zustand. Auth via JWT + OAuth 2.1 + OIDC + Passkeys (WebAuthn) + TOTP MFA. Weather via Open-Meteo (no key required). Maps with Leaflet and Mapbox GL.

 

 Docker Compose (production) 

 
 Full compose example with secure defaults 

services:
  app:
    image: mauriceboe/trek:latest
    container_name: trek
    read_only: true
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETUID
      - SETGID
    tmpfs:
      - /tmp:noexec,nosuid,size=64m
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - PORT=3000
      - ENCRYPTION_KEY=${ENCRYPTION_KEY:-}   # generate with: openssl rand -hex 32
      - TZ=${TZ:-UTC}
      - LOG_LEVEL=${LOG_LEVEL:-info}
      - ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-}
      - APP_URL=${APP_URL:-}                 # required for OIDC + email 
2026-06-26

ๅฝ“ๆ—ฅ #4 TypeScript +112 โ˜… today โ˜… 6.5k

๐Ÿ“Œ ่‡ชๆ‰˜็ฎกๆ—…่กŒ่ง„ๅˆ’ๅทฅๅ…ท๏ผŒๆ”ฏๆŒๅœฐๅ›พใ€้ข„็ฎ—ใ€ๆธ…ๅ•ๅ’Œๅไฝœ

่‡ชๆ‰˜็ฎกๆ—…่กŒ/่กŒ็จ‹่ง„ๅˆ’ๅ™จ๏ผŒๆ”ฏๆŒๅฎžๆ—ถๅไฝœใ€ไบคไบ’ๅผๅœฐๅ›พใ€PWAใ€SSOใ€้ข„็ฎ—็ฎก็†ใ€ๆ‰“ๅŒ…ๆธ…ๅ•็ญ‰ๅŠŸ่ƒฝใ€‚