
Hébergez vos itinéraires de voyage avec TREK et Docker
Découvrez comment déployer TREK avec Docker, le sécuriser via Cloudflare R2 et Caddy, et exploiter des agents d'IA avec MCP pour planifier sans aucun effort.
Sommaire
La partie la plus fastidieuse de la planification d'un voyage réside dans la dispersion des informations : les fichiers PDF de réservation de vol, les confirmations d'hôtel, les discussions avec les compagnons de voyage et les listes de lieux à visiter se retrouvent éparpillés. Et au moment de calculer les dépenses totales et de diviser la facture, un effort considérable est nécessaire pour parcourir toutes ces données de voyage.
TREK est un planificateur de voyage open source qui peut être auto-hébergé, regroupant votre itinéraire, vos réservations, votre budget et vos listes de bagages au même endroit. Le serveur MCP intégré permet aux agents d'IA (tels que Claude Desktop) d'interagir et de manipuler directement vos données de voyage.
Ce guide vous accompagnera étape par étape, depuis le déploiement jusqu'à la gestion complète d'un voyage réel du début à la fin.
1. Comment déployer le planificateur de voyage TREK avec Docker
Installer Docker sur un VPS Ubuntu
# 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
Générer la clé de chiffrement
TREK utilise une clé pour chiffrer les données sensibles. Utilisez la commande suivante ou cet outil en ligne pour générer votre clé de chiffrement :
openssl rand -hex 32
Conservez-la en lieu sûr ; sa perte signifie la perte d'accès à vos données chiffrées.
Démarrer le conteneur
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_URLdoit être correctement configuré — le flux de découverte OAuth du serveur MCP en dépend. Configurez-le dès le départ avec votre adresse HTTPS publique définitive.
Le premier lancement prend un certain temps pour télécharger l'image :

Vérifiez que le conteneur fonctionne :
docker ps

2. Configuration du routage de domaine et SSL avec le reverse proxy Caddy
Le protocole HTTPS est indispensable pour les clés de sécurité (passkeys) et OAuth pour MCP. Le nom de domaine est hébergé sur Cloudflare, qui fournit un certificat SSL gratuit et une protection DDoS.
Caddy est configuré comme reverse proxy sécurisé pointant vers le port 3000. Voici un exemple de Caddyfile :
{$TREK_DOMAIN} {
encode zstd gzip
reverse_proxy host.docker.internal:3000
}
3. Configuration initiale et configuration de l'administrateur sécurisé
Il existe deux façons de créer le compte administrateur :
ADMIN_EMAILetADMIN_PASSWORDsont configurés comme variables d'environnement ; ces valeurs sont utilisées directement.- TREK crée l'e-mail
admin@trek.local, l'identifiantadminet unmot de passe généré de manière aléatoire et affiché dans les logs du conteneur. Exécutezdocker logs trekpour le récupérer.
Si vous ne trouvez pas le mot de passe dans les logs, réinitialisez-le :
docker exec -it -e RESET_ADMIN_EMAIL=admin@trek.local -e RESET_ADMIN_PASSWORD='YourNewPassword' trek node server/reset-admin.js
Il vous sera demandé de modifier ce mot de passe lors de votre première connexion.

Cliquez sur Admin et mettez à jour l'adresse e-mail :
3.1 Sauvegardes (Backups)
Configurez les sauvegardes automatiques avec une politique de rétention dans le panneau d'administration :

3.2 Stocker les fichiers téléchargés sur Cloudflare R2
Le stockage des fichiers transférés, des photos et des sauvegardes dans Cloudflare R2 permet de préserver l'espace disque de votre VPS. TREK prend en charge les backends compatibles S3, et Cloudflare R2 s'y prête parfaitement.
- Créez un bucket R2 nommé
trek. - Dans la section Account Details, trouvez votre ID de compte :

- Cliquez sur Manage API Tokens :

- Cliquez sur Create Account API token avec des permissions d'écriture/lecture sur le bucket :

- Cliquez sur Storage dans le panneau ADMINISTRATION :

- Cliquez sur le bouton Add Backend et renseignez le point de terminaison (endpoint), le bucket et les identifiants :

- Cliquez sur Apply, puis sur le bouton Test. Vous devriez voir s'afficher "Connection OK" :

- Basculez toutes les catégories de stockage vers Cloudflare R2 puis cliquez sur Save changes :

3.3 Connexion par clé de sécurité (Passkeys)
TREK prend en charge les passkeys, l'authentification à deux facteurs (2FA) et l'authentification unique (SSO) via OIDC. Pour utiliser les passkeys, saisissez votre nom de domaine et les origines autorisées dans les paramètres, puis cliquez sur Save :

Si les allowed origins ne sont pas correctement configurées, l'enregistrement de la passkey échouera.
3.4 Clé API Google Maps
Une clé Google Maps permet d'enrichir la recherche de lieux avec des notes, des horaires d'ouverture et des photos. Sans cette clé, TREK bascule automatiquement sur OpenStreetMap, mais sans afficher les notes ni les photos.
Suivez ce lien enlace et cliquez sur Get demo key pour en demander une : 
Collez la clé dans les paramètres et cliquez sur Test pour confirmer la connexion :

3.5 Intégration de l'IA
Le modèle d'IA est utilisé pour analyser les e-mails de confirmation et les fichiers PDF de réservation afin de les transformer en réservations structurées.
Cliquez sur Addons dans le menu de gauche et activez AI Parsing. Sélectionnez "OpenAI" (ou un autre fournisseur compatible) et renseignez les détails :

3.6 Accès MCP
Dans l'onglet Addons, activez MCP :

3.7 Plugins
Les plugins suivants sont recommandés et méritent d'être activés :

3.8 Créer votre utilisateur quotidien
Planifiez vos voyages avec un compte utilisateur standard plutôt qu'avec le compte administrateur. Créez un utilisateur classique et connectez-vous avec :

Une fois connecté, ajoutez une clé de sécurité ou configurez la double authentification (2FA) pour sécuriser le compte :

Cliquez sur + Add a passkey, saisissez votre mot de passe actuel et validez :

4. Tester votre déploiement : importer des données de voyage historiques
Une excellente façon de découvrir TREK est de renseigner l'historique de vos précédents voyages.
4.1 Créer le voyage
Cliquez sur + New Trip et définissez la date de début (Start Date) et de fin (End Date) sur les dates passées de votre séjour :

Ajoutez une image de couverture (glissez-déposez une image ou collez-la depuis le presse-papiers) et cliquez sur Create New Trip :

4.2 Importer les réservations
Déposez-y tous vos fichiers de vol, de train et d'autres moyens de transport :


Une fois le modèle d'IA activé, les PDF de confirmation de réservation sont analysés et convertis en réservations structurées.
Vérifiez les résultats de l'analyse et cliquez sur Add pour enregistrer les détails de la réservation :

Si une réservation se trouve uniquement dans un e-mail, exportez cet e-mail au format PDF et importez-le ; le même traitement d'extraction automatique s'appliquera.
Les captures d'écran suivantes montrent comment les réservations s'affichent :


Sur la page Plan, tous vos hébergements s'afficheront sur la carte :

Cliquez sur Atlas dans la barre de menu supérieure pour voir la liste (et la carte) de tous les pays que vous avez visités :

4.3 Ajouter des compagnons de voyage
Cliquez sur le bouton Share :

En bas de la boîte de dialogue, vous pouvez ajouter des invités :

4.4 Enregistrer les dépenses
Cliquez sur Add expense pour ajouter des dépenses autres que les réservations (comme l'assurance santé, les transports locaux, les cartes SIM) :


4.5 Etapes de voyage
Cette fonctionnalité nécessite l'installation du plugin Trip Segment.
Les longs voyages se découpent de manière harmonieuse en étapes, chaque tronçon affichant ses propres réservations, lieux et coûts :



4.6 Créer un journal de voyage (Journey) et consulter votre atlas
Regroupez vos voyages dans un Journey (journal de bord) et rédigez des récits à partager avec vos amis :




5. Concevoir des itinéraires personnalisés et des listes de bagages
Cliquez sur + New Trip, saisissez un nom et définissez les dates :

Si vous n'avez pas encore arrêté vos dates, laissez les deux champs vides. Un champ indiquant le "nombre de jours" apparaîtra (jusqu'à 365). Planifiez d'abord, programmez les dates plus tard.
5.1 Ajouter des lieux
C'est l'étape la plus chronophage de toute planification, et TREK propose plusieurs approches pour l'accélérer :

1. Faites un clic droit sur la carte pour créer un lieu à cet endroit précis (l'adresse est automatiquement récupérée par géocodage inversé) :


2. Cliquez sur + Add Place/Activity et recherchez par nom :



3. Collez une URL Google Maps (maps.app.goo.gl/… ou maps.google.com/…) dans le champ de recherche. TREK en extrait le nom, l'adresse et les coordonnées :


4. Importation en lot — la méthode la plus simple. Si vous avez déjà une liste de lieux à visiter sur Google Maps, exportez-la au format .gpx (les formats .kml et .kmz fonctionnent également) et cliquez sur Import file dans le panneau latéral droit pour tout importer d'un coup :

Ajoutez d'abord tout ce qui vous intéresse, sans vous soucier de savoir si cela rentre dans votre emploi du temps. Vous attribuerez les lieux aux différents jours par la suite.
5.2 Programmes quotidiens et notes
Le programme quotidien organise les lieux jour par jour, dans l'ordre. Il s'agit d'une liste repliable pour chaque journée, entièrement gérable par glisser-déposer :

Les détails pratiques qui font la différence :
- Transports entre les arrêts : l'icône de bus en haut à gauche d'une journée permet d'ajouter un trajet (train, bus ou avion à l'intérieur de la même journée) :

- Notes journalières : l'icône de bloc-notes en bas à gauche permet d'associer des notes agrémentées d'une icône — "départ matinal aujourd'hui", "réservation obligatoire pour ce musée" :

- Créneaux horaires : glissez un lieu depuis le panneau latéral droit vers une journée, puis attribuez-lui un horaire. Les lieux ayant des horaires définis sont reliés automatiquement sur la carte :

- Veuillez consulter la page wiki des Programmes Quotidiens et Notes pour en savoir plus sur l'Optimisation d'itinéraires et la Météo.
5.3 Collections : listes de lieux réutilisables
Les Collections permettent de conserver des listes de lieux indépendamment de tout voyage. Elles peuvent être partagées avec des amies et réutilisées pour un futur séjour. Les lieux étant copiés dans les voyages, l'édition d'une étape au sein d'un itinéraire n'affectera jamais votre collection de base, et inversement.
Cliquez sur Collections dans la barre de menu supérieure :

Cliquez sur + New list pour en créer une :

Cliquez sur + Add a place et renseignez les détails :

Note : la recherche à l'intérieur de la fenêtre "Add a place" ne semble pas fonctionner, vous devrez donc saisir les informations manuellement.
Si les coordonnées géographiques des lieux sont fournies, ils s'afficheront sur la carte :

Pour organiser vos lieux avec des étiquettes (labels), cliquez sur l'icône de la case à cocher :

Sélectionnez les lieux à regrouper, puis cliquez sur Assign label :

Cliquez sur Manage labels pour créer d'abord les étiquettes :

Sélectionnez une étiquette et cliquez sur Assign label :

5.4 Coûts et budget
Il est possible d'ajouter d'autres dépenses pour le voyage sur l'onglet 'Costs'.

Les paiements effectués par vos compagnons de voyage peuvent être renseignés et divisés sur cette même page.
Le panneau de règlement s'appuie sur un algorithme glouton (greedy) pour calculer le nombre minimal de transferts d'argent nécessaires pour équilibrer les comptes.
6. Exploiter Model Context Protocol (MCP) pour une planification assistée par IA
TREK intègre son propre serveur MCP (Model Context Protocol), permettant aux agents d'IA de lire et de modifier directement vos données de voyage — à l'aide de plus de 150 outils et 30 ressources dédiés aux voyages, lieux, budgets, bagages, réservations et à la collaboration.
6.1 Cloudflare Zero Trust
Étant donné que TREK s'exécute derrière un réseau Cloudflare Zero Trust, vous devrez ajouter votre domaine à la liste d'inclusion des Split Tunnels. Sinon, vous rencontrerez des problèmes d'autorisation OAuth. Référez-vous à cette page d'issue GitHub : ticket github.

Guide connexe
Exposer Hermes Agent en privé via Cloudflare WARP
Apprenez à exposer et à accéder mondialement à votre Hermes Agent en toute sécurité via Cloudflare WARP et Zero Trust, sans ouvrir de port pare-feu entrant.
9 MIN DE LECTURE
6.2 Claude Desktop
Cliquez sur + New Client pour créer un nouveau client d'agent d'IA :

Sélectionnez l'onglet Claude Desktop et cliquez sur Register Client :

Un couple d'ID de client et de secret de client s'affiche. Copiez-les en lieu sûr, puis cliquez sur Client Configuration pour faire apparaître les paramètres MCP :

Dans Claude Desktop, cliquez sur Edit Config pour ouvrir le fichier de configuration des serveurs MCP locaux :

Collez la configuration de TREK en remplaçant les valeurs fictives par vos identifiants :
"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>\"}"
]
}
},
Redémarrez Claude Desktop ; le serveur TREK s'affiche désormais comme connecté sous l'onglet Local MCP servers :

Lancez maintenant une invite (prompt) :

Ajoutons une dépense en langage naturel :
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.

En consultant la page Costs, on constate que la dépense a bien été créée avec la mention "Personne n'a payé pour l'instant", car aucun payeur n'a été spécifié :

L'ajout d'éléments à la liste de bagages s'effectue exactement de la même manière :

Actualisez l'onglet Packing List : les trois éléments y figurent désormais :

6.3 Gemini CLI (enregistrement dynamique)
Gemini CLI prend en charge l'enregistrement dynamique, ce qui signifie qu'aucun client préalablement enregistré n'est requis. Ajoutez ceci à .gemini/settings.json :
"trek": {
"httpUrl": "https://trek.pafor.me/mcp",
"oauth": {
"enabled": true
}
}
Exécutez gemini dans votre terminal et cliquez sur Approve lorsque l'invite d'autorisation apparaît :

Commencez ensuite par une invite simple :


6.4 Kimi CLI (enregistrement dynamique)
Même démarche — ajoutez ceci au fichier mcp.json dans le dossier /Users/<user>/.kimi/ :
"trek": {
"type": "http",
"url": "https://trek.pafor.me/mcp",
"auth": "oauth"
}
Exécutez kimi mcp auth trek dans le terminal et cliquez sur Approve :

Une fois l'autorisation validée, les outils disponibles s'affichent :

7. Expérience mobile
TREK est une PWA (progressive web app) sur les appareils mobiles. Un service worker met en cache les cartes et les données d'API, de sorte que votre itinéraire reste accessible hors ligne. Cependant, les notifications push peuvent accuser un léger retard par rapport à une application native.
Réflexions finales
La connexion d'agents d'IA via MCP évite la pénible saisie manuelle des réservations de vols et d'hôtels. De plus, les agents peuvent proposer des points d'intérêt adaptés à vos dates et saisons de voyage. Un seul échange avec un agent d'IA peut couvrir l'ensemble du flux : de la recherche d'idées à l'élaboration de l'itinéraire, jusqu'au suivi du budget et à la liste de bagages.
On relève toutefois quelques légers désagréments techniques. Par exemple, lors de l'importation de réservations depuis des fichiers PDF, la devise par défaut est celle du voyage plutôt que celle réellement payée. De même, lors de la création d'une nouvelle liste dans les Collections, toute image de couverture ajoutée disparaît à la sauvegarde, même s'il est possible de la rajouter manuellement lors de l'édition ultérieure.
Il existe une légère barrière technique puisque vous devez l'héberger sur votre propre serveur. TREK est avant tout conçu pour les grands voyageurs exigeants quant à l'organisation de leurs données. Nous vous suggérons d'essayer la démo officielle sur demo.liketrek.com avant d'envisager de l'auto-héberger.
Références :
Articles connexes

Collaboration
Auto-héberger Buzz de Block: Espace collaboratif d'agents IA
Découvrez comment auto-héberger le relay Buzz sur un VPS Linux derrière Cloudflare. Créez un espace de travail Nostr où humains et agents IA collaborent.
18 MIN DE LECTURE
Cloudflare
Bâtir un système de mémoire IA persistant sur Cloudflare
Découvrez comment créer une mémoire IA persistante et auto-hébergée sur Cloudflare avec Second Brain et MCP. Partagez votre contexte entre Claude et Obsidian.
9 MIN DE LECTURE
IA & Agents
Comment les compétences d'agents IA remplacent les scripts
Créez des apps Nuxt sur Cloudflare. Découvrez pourquoi nous remplaçons les scripts de build fragiles par des compétences d'agent IA robustes et adaptables.
5 MIN DE LECTURE
Précédent
Comment les compétences d'agents IA remplacent les scripts
Créez des apps Nuxt sur Cloudflare. Découvrez pourquoi nous remplaçons les scripts de build fragiles par des compétences d'agent IA robustes et adaptables.

Suivant
Auto-héberger Buzz de Block: Espace collaboratif d'agents IA
Découvrez comment auto-héberger le relay Buzz sur un VPS Linux derrière Cloudflare. Créez un espace de travail Nostr où humains et agents IA collaborent.