Techvoyage
Startseite
Eine hochwertige minimalistische 3D-Illustration des selbstgehosteten Reiseplaner-Dashboards TREK auf einem warmen Pergamenthintergrund.

Hoste deine Reiseplanung selbst mit TREK und Docker

Erfahre, wie du TREK mit Docker deployst, es über Cloudflare R2 und Caddy absicherst und KI-Agents via MCP für eine nahtlose Reiseplanung effizient nutzt.

Sep 1, 2026 - Aktualisiert Sep 3, 2026 - 22 MIN LESEZEIT
Inhaltsverzeichnis

Der mühsame Teil der Reiseplanung besteht darin, dass PDF-Flugbuchungen, Hotelbestätigungen, Unterhaltungen mit Mitreisenden und Listen von Sehenswürdigkeiten an verschiedenen Orten verstreut sind. Wenn es dann an der Zeit ist, die Gesamtausgaben zu berechnen und die Rechnungen aufzuteilen, erfordert es enormen Aufwand, all diese Reisedaten zu durchforsten.

TREK ist ein Open-Source-Reiseplaner, der selbst gehostet werden kann und deine Reiseroute, Buchungen, dein Budget sowie Packlisten an einem einzigen Ort bündelt. Der integrierte MCP-Server ermöglicht es KI-Agents (wie Claude Desktop), Reisedaten direkt zu verwalten.

Dieser Leitfaden führt dich durch alle Schritte – vom Deployment bis hin zur vollständigen Verwaltung einer echten Reise von Anfang bis Ende.

1. So deployst du den TREK-Reiseplaner mit Docker

Docker auf dem Ubuntu-VPS installieren

# Add Docker's official GPG key and set up the Docker repository
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add the official Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update package list
sudo apt update

# Install Docker Engine, Docker Community Edition, and containerd runtime
sudo apt install docker-ce docker-ce-cli containerd.io -y

# Verify docker is installed
docker --version

# Starts automatically when your system boots
sudo systemctl enable docker

Verschlüsselungsschlüssel generieren

TREK verwendet einen Schlüssel zur Verschlüsselung sensibler Daten. Verwende den folgenden Befehl oder dieses Online-Tool, um den Verschlüsselungsschlüssel zu generieren:

openssl rand -hex 32

Speichere ihn an einem sicheren Ort; bei Verlust verlierst du den Zugriff auf die verschlüsselten Daten.

Container starten

docker run -d \
  --name trek \
  -p 3000:3000 \
  -e ENCRYPTION_KEY="<generated_key>" \
  -e APP_URL="https://trek.pafor.me" \
  -v ./data:/app/data \
  -v ./uploads:/app/uploads \
  --restart unless-stopped \
  mauriceboe/trek:latest
  • APP_URL muss korrekt eingestellt sein — der OAuth-Discovery-Flow des MCP-Servers hängt davon ab. Richte sie von Anfang an auf deine endgültige öffentliche HTTPS-Adresse ein.

Der erste Start dauert eine Weile, da das Image heruntergeladen werden muss:

Überprüfe, ob der Container läuft:

docker ps

2. Domain-Routing & SSL mit dem Caddy-Reverse-Proxy einrichten

HTTPS ist für Passkeys und OAuth für MCP zwingend erforderlich. Der Domainname wird bei Cloudflare gehostet, was mit einem kostenlosen SSL-Zertifikat und DDoS-Schutz einhergeht.

Caddy wird als sicherer Reverse-Proxy-Server eingerichtet, um auf Port 3000 zu verweisen. Ein Beispiel für ein Caddyfile sieht wie folgt aus:

{$TREK_DOMAIN} {
  encode zstd gzip
  reverse_proxy host.docker.internal:3000
}

3. Erstkonfiguration & sichere Admin-Einrichtung

Es gibt zwei Möglichkeiten, das Admin-Konto zu erstellen:

  • ADMIN_EMAIL und ADMIN_PASSWORD werden als Umgebungsvariablen definiert; diese Werte werden direkt verwendet.
  • TREK erstellt die E-Mail admin@trek.local, den Benutzernamen admin und ein zufällig generiertes Passwort, das im Container-Log ausgegeben wird. Führe docker logs trek aus, um es abzurufen.

Wenn das Passwort im Log nicht gefunden werden kann, setze es zurück:

docker exec -it -e RESET_ADMIN_EMAIL=admin@trek.local -e RESET_ADMIN_PASSWORD='YourNewPassword' trek node server/reset-admin.js

Beim ersten Login wirst du aufgefordert, das Passwort zu ändern.

Klicke auf Admin und aktualisiere die E-Mail-Adresse:

3.1 Backups

Konfiguriere automatische Backups mit einer Aufbewahrungsrichtlinie (Retention Policy) im Admin-Panel:

3.2 Hochgeladene Dateien auf Cloudflare R2 speichern

Das Speichern von hochgeladenen Dateien, Fotos und Backups in Cloudflare R2 hält die VPS-Festplatte sauber und schlank. TREK unterstützt S3-kompatible Backends, wofür sich Cloudflare R2 perfekt eignet.

  1. Erstelle ein R2-Bucket namens trek.
  2. Suche im Abschnitt Account Details nach deiner Account-ID:
  3. Klicke auf Manage API Tokens:
  4. Klicke auf Create Account API token mit Lese-/Schreibberechtigungen (Read/Write) für das Bucket:
  5. Klicke im ADMINISTRATION-Panel auf Storage:
  6. Klicke auf die Schaltfläche Add Backend und trage Endpunkt, Bucket sowie die Anmeldedaten ein:
  7. Klicke auf Apply und danach auf die Schaltfläche Test. Es sollte die Meldung 'Connection OK' erscheinen:
  8. Stelle alle Speicherkategorien auf Cloudflare R2 um und klicke auf Save changes:

3.3 Passkey-Login

TREK unterstützt Passkeys, Zwei-Faktor-Authentifizierung (2FA) und OIDC Single Sign-On (SSO). Trage für Passkeys deinen Domainnamen und die erlaubten Origins in den Einstellungen ein und klicke auf Save:

Ohne die Konfiguration der allowed origins schlägt die Registrierung von Passkeys fehl.

3.4 Google Maps API-Key

Ein Google Maps-Key reichert die Ortssuche mit Bewertungen, Öffnungszeiten und Fotos an. Ohne Key greift TREK automatisch auf OpenStreetMap zurück – allerdings ohne Bewertungen und Bilder.

Folge diesem Link und klicke auf Get demo key, um einen anzufordern:

Füge den Key in den Einstellungen ein und klicke auf Test, um die Verbindung zu bestätigen:

3.5 KI-Integration

Das KI-Modell wird verwendet, um Buchungsbestätigungs-E-Mails und PDFs in strukturierte Reservierungen zu parsen.

Klicke im linken Menü auf Addons und aktiviere AI Parsing. Wähle 'OpenAI' (oder einen anderen kompatiblen Anbieter) aus und trage die Anbieterdetails ein:

3.6 MCP-Zugriff

Aktiviere unter Addons die Option MCP:

3.7 Plugins

Die folgenden Plugins werden empfohlen und sollten aktiviert werden:

3.8 Erstelle deinen Alltags-Benutzer

Plane Reisen als normaler Benutzer, nicht als Admin. Erstelle einen regulären Account und melde dich damit an:

Füge nach dem Einloggen einen Passkey hinzu oder richte 2FA ein, um den Account abzusichern:

Klicke auf + Add a passkey, gib das aktuelle Passwort ein und bestätige:

4. Testen deines Deployments: Importieren historischer Reisedaten

Ein guter Weg, um TREK kennenzulernen, ist das Erfassen deiner bisherigen Reisehistorie.

4.1 Reise erstellen

Klicke auf + New Trip und setze Start Date und End Date auf die vergangenen Reisedaten:

Füge ein Titelbild hinzu (per Drag & Drop oder aus der Zwischenablage einfügen) und klicke auf Create New Trip:

4.2 Buchungen importieren

Ziehe alle Dateien zu Flügen, Zügen und anderen Transportmitteln hinein:

Bei aktiviertem KI-Modell werden Buchungsbestätigungs-PDFs automatisch geparst und in strukturierte Reservierungen umgewandelt.

Überprüfe das geparste Ergebnis und klicke auf Add, um die Buchungsdetails zu speichern:

Wenn eine Buchung nur als E-Mail vorliegt, exportiere sie als PDF und lade sie hoch – es gilt die gleiche Extraktions-Pipeline.

Die folgenden Screenshots zeigen, wie Buchungen dargestellt werden:

Auf der Plan-Seite werden alle Unterkünfte auf der Karte angezeigt:

Klicke im oberen Menü auf Atlas für eine Liste (und Karte) aller besuchten Länder:

4.3 Reisepartner hinzufügen

Klicke auf die Schaltfläche Share:

Am unteren Ende des Dialogs können Gäste hinzugefügt werden:

4.4 Ausgaben erfassen

Klicke auf Add expense, um sonstige Kosten abseits von Buchungen wie Auslandskrankenversicherung, Nahverkehr oder SIM-Karten hinzuzufügen:

4.5 Reiseabschnitte

Diese Funktion erfordert die Aktivierung des Trip Segment-Plugins.

Längere Reisen lassen sich hervorragend in Segmente unterteilen, wobei jeder Abschnitt eigene Buchungen, Orte und Kosten anzeigt:

4.6 Journey erstellen und Atlas prüfen

Fasse Reisen in einer Journey zusammen und schreibe Berichte, um das Abenteuer mit Freunden zu teilen:

5. Maßgeschneiderte Reiserouten und Packlisten entwerfen

Klicke auf + New Trip, gib einen Namen ein und lege die Reisedaten fest:

Wenn deine Reisedaten noch nicht feststehen, lass beide Felder leer. Es erscheint ein Feld für die Anzahl der Tage (bis zu 365). Erst planen, später terminieren.

5.1 Orte hinzufügen

Dies ist der zeitaufwendigste Schritt bei jeder Reiseplanung. TREK bietet dafür verschiedene Wege an:

1. Rechtsklick auf die Karte, um einen Ort an genau dieser Stelle zu erstellen – die Adresse wird automatisch per Reverse-Geocoding ermittelt:

2. Klicke auf + Add Place/Activity und suche nach dem Namen

3. Kopiere eine Google-Maps-URL (maps.app.goo.gl/... oder maps.google.com/...) in das Suchfeld. TREK liest Namen, Adresse und Koordinaten automatisch aus:

4. Bulk-Import — am einfachsten von allen. Wenn du bereits eine Liste deiner Wunschziele in Google Maps führst, exportiere sie als .gpx (.kml und .kmz funktionieren auch) und klicke im rechten Panel auf Import file, um alles auf einmal zu importieren:

Füge zuerst alles hinzu, was interessant ist, unabhängig davon, ob es in den Zeitplan passt. Ordne die Orte erst später den einzelnen Tagen zu.

5.2 Tagespläne und Notizen

Der Tagesplan organisiert die Orte tagesweise in der richtigen Reihenfolge. Es ist eine einklappbare Liste pro Tag, und alles funktioniert per Drag-and-Drop:

Die Details, die es besonders nützlich machen:

  • Transport zwischen Stopps: Das Bus-Symbol oben links an einem Tag fügt die Verbindung hinzu (Zug, Bus, Flugabschnitte innerhalb des Tages):
  • Tagesnotizen: Das Notiz-Symbol unten links hängt mit Emojis versehene Notizen an — 'heute früh aufstehen', 'dieses Museum erfordert eine Reservierung':
  • Zeitslots: Ziehe einen Ort aus dem rechten Panel in einen Tag und weise ihm eine Uhrzeit zu. Orte mit festgelegten Zeiten werden auf der Karte automatisch verbunden:
  • Weitere Informationen zu Routenoptimierung und Wetter findest du auf der Wiki-Seite zu Tagesplänen und Notizen.

5.3 Collections: Wiederverwendbare Ortslisten

Collections ermöglicht es dir, Ortslisten unabhängig von bestimmten Reisen zu speichern. Sie können mit Freunden geteilt werden und stehen für die nächste Reise bereit. Orte werden in Reisen kopiert, sodass das Bearbeiten eines Eintrags in einer Reise niemals deine Collection verändert und umgekehrt.

Klicke auf Collections in der oberen Menüleiste:

Klicke auf + New list, um eine neue Liste zu erstellen:

Klicke auf + Add a place und fülle die Details aus:

Hinweis: Die Suche innerhalb des 'Add a place'-Dialogs scheint nicht zu funktionieren, daher musst du die Details manuell eingeben.

Wenn Geo-Koordinaten für die Orte verfügbar sind, werden sie auf der Karte angezeigt:

Um Orte mit Labels zu organisieren, klicke auf das Häkchen-Symbol:

Wähle die zu gruppierenden Orte aus und klicke auf Assign label:

Klicke auf Manage labels, um zuerst Labels zu erstellen:

Wähle ein Label aus und klicke auf Assign label:

5.4 Kosten und Budget

Auf der Seite 'Costs' können wir sonstige Ausgaben für die Reise hinzufügen.

Zahlungen von Reisepartnern können auf derselben Seite hinzugefügt und aufgeteilt werden.

Das Settlement-Panel nutzt einen Greedy-Matching-Algorithmus, um die minimale Anzahl an Überweisungen zu berechnen, die nötig ist, um zu klären, wer wem wie viel schuldet.

6. Model Context Protocol (MCP) für KI-gestützte Reiseplanung nutzen

TREK verfügt über einen integrierten MCP-Server (Model Context Protocol), der es KI-Agents ermöglicht, deine Reisedaten direkt zu lesen und zu schreiben – mit über 150 Tools und 30 Ressourcen für Reisen, Orte, Budgets, Packlisten, Buchungen und Kollaboration.

6.1 Cloudflare Zero Trust

Da TREK hinter einem Cloudflare Zero Trust-Netzwerk läuft, musst du die Domain zur Einschlussliste für Split-Tunnel hinzufügen. Andernfalls treten Probleme bei der OAuth-Autorisierung auf. Bitte lies dazu dieses GitHub-Issue: github issue.

Sichere Freigabe des Hermes Agent in einem privaten Netzwerk mittels Cloudflare Zero Trust und WARP-Tunnel

Verwandte Anleitung

Den Hermes Agent privat mit Cloudflare WARP freigeben

Erfahren Sie, wie Sie mit Cloudflare WARP und Zero Trust weltweit sicher auf Ihren Hermes Agent zugreifen können, ohne eingehende Firewall-Ports zu öffnen.

9 MIN LESEZEIT

6.2 Claude Desktop

Klicke auf + New Client, um einen KI-Agenten-Client zu erstellen:

Wähle den Reiter Claude Desktop und klicke auf Register Client:

Ein Paar aus Client-ID und Client-Secret wird angezeigt. Kopiere sie an einen sicheren Ort. Klicke dann auf Client Configuration, um die MCP-Konfiguration anzuzeigen:

Klicke in Claude Desktop auf Edit Config, um die lokale Konfigurationsdatei für MCP-Server zu öffnen:

Füge die TREK-Konfiguration ein und ersetze die Platzhalter durch deine Zugangsdaten:

  "mcpServers": {
    "trek": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://trek.pafor.me/mcp",
        "--static-oauth-client-info",
        "{\"client_id\": \"<your_client_id>\", \"client_secret\": \"<your_client_secret>\"}"
      ]
    }
  },

Starte Claude Desktop neu. Der TREK-Server wird nun unter Local MCP servers als verbunden angezeigt:

Führe nun einen Prompt aus:

Fügen wir eine Ausgabe in natürlicher Sprache hinzu:

For the West Europe trip, the Grab from KLIA1 to the hotel cost RM115.90 on 26/4/2025. Please add it as an expense without split to the trip.

Beim Überprüfen der Costs-Seite sehen wir, dass die Ausgabe mit 'No one paid yet' erstellt wurde, da kein Zahler genannt wurde:

Das Hinzufügen zur Packliste funktioniert genauso:

Aktualisiere die Seite Packing List und die drei Artikel sind da:

6.3 Gemini CLI (Dynamische Registrierung)

Gemini CLI unterstützt eine dynamische Registrierung, es ist also kein vorab erstellter Client erforderlich. Füge dies zu .gemini/settings.json hinzu:

    "trek": {
      "httpUrl": "https://trek.pafor.me/mcp",
      "oauth": {
        "enabled": true
      }
    }

Führe gemini im Terminal aus und klicke auf Approve, wenn die Autorisierungsaufforderung erscheint:

Beginne dann mit einem einfachen Prompt:

6.4 Kimi CLI (Dynamische Registrierung)

Gleicher Ansatz — füge dies der Datei mcp.json im Ordner /Users/<user>/.kimi/ hinzu:

    "trek": {
      "type": "http",
      "url": "https://trek.pafor.me/mcp",
      "auth": "oauth"
    }

Führe kimi mcp auth trek im Terminal aus und klicke auf Approve:

Nach der Autorisierung werden die verfügbaren Tools aufgelistet:

7. Mobile Nutzererfahrung

TREK ist eine PWA (Progressive Web App) auf Mobilgeräten. Ein Service Worker cacht Kartenkacheln und API-Daten, sodass deine Reiseroute auch offline lesbar bleibt. Bei Push-Benachrichtigungen kann es im Vergleich zu einer nativen App jedoch zu gewissen Verzögerungen kommen.

Fazit

Die Anbindung von KI-Agents über MCP erspart viel mühsame Arbeit beim Erfassen von Flug- und Unterkunftsbuchungen. Darüber hinaus können Agents interessante Orte basierend auf deinen Reisedaten und der Jahreszeit vorschlagen. Ein einziges Gespräch mit einem KI-Agenten kann die gesamte Kette abdecken – von der Recherche und dem Erstellen der Reiseroute bis hin zur Budgetverfolgung und dem Packen.

Es gibt ein paar kleinere technische Mängel. Beispielsweise wird beim Importieren von Buchungen aus PDFs standardmäßig die Basiswährung der Reise und nicht die tatsächlich bezahlte Währung verwendet. Auch verschwindet beim Erstellen einer neuen Liste in Collections ein während der Erstellung hinzugefügtes Titelbild beim Speichern, obwohl es beim anschließenden Bearbeiten manuell wieder hinzugefügtes werden kann.

Es gibt eine gewisse technische Hürde, da du die Anwendung auf einem eigenen Server hosten musst. TREK ist in erster Linie für Menschen gedacht, die häufig reisen und hohe Ansprüche an die Organisation ihrer Reisedaten haben. Wir empfehlen, die offizielle Demo unter demo.liketrek.com auszuprobieren, bevor du ein Self-Hosting in Betracht ziehst.

Referenzen:

Ähnliche Artikel