Techvoyage
Inicio
Una ilustración 3D minimalista y de alta calidad del panel del planificador de viajes autohospedado TREK sobre un fondo de pergamino cálido.

Aloja tus propios itinerarios de viaje con TREK y Docker

Aprende a desplegar TREK con Docker, protegerlo con Cloudflare R2 y Caddy, y usar agentes de IA vía MCP para planificar todos tus itinerarios sin problemas.

Sep 1, 2026 - Actualizado Sep 3, 2026 - 25 MIN DE LECTURA
Índice de contenidos

La parte más tediosa de planificar un viaje es que los PDFs de las reservas de vuelos, las confirmaciones de hoteles, las conversaciones con los compañeros de viaje y las listas de lugares para visitar suelen estar dispersos por todas partes. Y cuando llega el momento de calcular el gasto total y dividir las cuentas, se requiere un esfuerzo enorme para revisar todo ese historial de datos.

TREK es un planificador de viajes de código abierto que puedes autohospedar, reuniendo tu itinerario, reservas, presupuesto y listas de equipaje en un solo lugar. Su servidor MCP integrado permite que los agentes de IA (como Claude Desktop) gestionen directamente los datos de tus viajes.

Esta guía te acompañará paso a paso, desde el despliegue hasta la gestión completa de un viaje real de principio a fin.

1. Cómo desplegar el planificador de viajes TREK usando Docker

Instalar Docker en 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

Generar la clave de cifrado

TREK utiliza una clave para cifrar datos confidenciales. Usa el siguiente comando o esta herramienta en línea para generar tu clave de cifrado:

openssl rand -hex 32

Guárdala en un lugar seguro; si la pierdes, no podrás acceder a los datos cifrados.

Iniciar el contenedor

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 debe estar configurado correctamente — el flujo de descubrimiento OAuth del servidor MCP depende de ello. Establécelo con tu dirección HTTPS pública definitiva desde el principio.

La primera ejecución tardará un poco mientras descarga la imagen:

Verifica que esté funcionando:

docker ps

2. Configuración de enrutamiento de dominio y SSL con Caddy Reverse Proxy

Se requiere HTTPS para las llaves de acceso (passkeys) y OAuth para MCP. El nombre de dominio se aloja en Cloudflare, que incluye un certificado SSL gratuito y protección contra DDoS.

Caddy se configura como el servidor proxy inverso seguro apuntando al puerto 3000. Un ejemplo de Caddyfile es el siguiente:

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

3. Configuración inicial y creación del administrador seguro

Hay dos formas de crear la cuenta de administrador:

  • ADMIN_EMAIL y ADMIN_PASSWORD se configuran como variables de entorno; estos valores se usarán directamente.
  • TREK crea el correo admin@trek.local, el usuario admin y una contraseña generada aleatoriamente que se imprime en los registros del contenedor. Ejecuta docker logs trek para obtenerla.

Si no puedes encontrar la contraseña en los registros, puedes restablecerla con:

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

Se te pedirá que cambies la contraseña la primera vez que inicies sesión.

Haz clic en Admin y actualiza el correo electrónico:

3.1 Copias de seguridad (Backups)

Configura las copias de seguridad automáticas con una política de retención en el panel de administración:

3.2 Almacenar archivos subidos en Cloudflare R2

Almacenar archivos subidos, fotos y copias de seguridad en Cloudflare R2 mantiene el disco del VPS limpio y ligero. TREK admite backends compatibles con S3, y Cloudflare R2 se adapta a esto a la perfección.

  1. Crea un cubo (bucket) R2 llamado trek.
  2. En la sección Account Details, busca tu ID de cuenta:
  3. Haz clic en Manage API Tokens:
  4. Haz clic en Create Account API token con permisos de lectura/escrita para el bucket:
  5. Haz clic en Storage en el panel de ADMINISTRATION:
  6. Haz clic en el botón Add Backend y rellena el endpoint, el bucket y las credenciales:
  7. Haz clic en Apply, y luego en el botón Test. Deberías ver "Connection OK":
  8. Cambia todas las categorías de almacenamiento a Cloudflare R2 y haz clic en Save changes:

3.3 Inicio de sesión con llaves de acceso (Passkeys)

TREK admite llaves de acceso, autenticación de dos factores (2FA) y SSO mediante OIDC. Para las llaves de acceso, introduce tu nombre de dominio y los orígenes permitidos en la configuración, y luego haz clic en Save:

Si no configuras los allowed origins, el registro de las llaves de acceso fallará.

3.4 Clave de API de Google Maps

Una clave de Google Maps enriquece la búsqueda de lugares con calificaciones, horarios de apertura y fotos. Si no tienes una, TREK usará OpenStreetMap automáticamente sin coste alguno, aunque no mostrará calificaciones ni fotos.

Sigue este enlace y haz clic en Get demo key para solicitar una:

Pega la clave en la configuración y haz clic en Test para confirmar la conexión:

3.5 Integración de IA

El modelo de IA se utiliza para analizar correos de confirmación y PDFs de reservas, transformándolos en reservas estructuradas.

Haz clic en Addons en el menú de la izquierda y activa AI Parsing. Selecciona "OpenAI" (u otro proveedor compatible) y rellena los datos correspondientes:

3.6 Acceso MCP

En la sección Addons, activa MCP:

3.7 Plugins

Se recomienda activar los siguientes plugins:

3.8 Crear tu usuario de uso diario

Planifica tus viajes como un usuario estándar, no como administrador. Crea un usuario normal e inicia sesión con él:

Una vez dentro, añade una llave de acceso o configura 2FA para proteger tu cuenta:

Haz clic en + Add a passkey, escribe tu contraseña actual y confirma:

4. Probar el despliegue: importar datos de viajes pasados

Una excelente forma de familiarizarse con TREK es registrar tu historial de viajes.

4.1 Crear el viaje

Haz clic en + New Trip y define la fecha de inicio (Start Date) y finalización (End Date) con las fechas pasadas de tu viaje:

Añade una foto de portada (arrastrándola o pegándola desde el portapapeles) y haz clic en Create New Trip:

4.2 Importar las reservas

Arrastra y suelta todos los archivos de tus vuelos, trenes y transportes:

Con el modelo de IA activado, los PDFs de confirmación de reserva se analizan y extraen de forma estructurada.

Revisa el resultado del análisis y haz clic en Add para registrar los detalles de la reserva:

Si la reserva solo está en un correo electrónico, expórtalo como PDF y súbelo; se aplicará el mismo proceso de extracción automática.

Las siguientes capturas de pantalla muestran cómo se presentan las reservas:

En la página Plan, todos los alojamientos se mostrarán en el mapa:

Haz clic en Atlas en la barra de menú superior para ver la lista y el mapa de todos los países que has visitado:

4.3 Añadir compañeros de viaje

Haz clic en el botón Share:

En la parte inferior de la ventana, puedes añadir invitados:

4.4 Registrar los gastos

Haz clic en Add expense para añadir gastos distintos a las reservas, como seguro médico, transporte local o tarjetas SIM:

4.5 Segmentos del viaje

Esta función requiere que el plugin Trip Segment esté instalado.

Los viajes largos se dividen de forma ordenada en segmentos, mostrando para cada etapa sus propias reservas, lugares y gastos:

4.6 Crear un diario de viaje (Journey) y consultar tu atlas

Agrupa varios viajes en un Journey (diario de ruta) y redacta relatos para compartir la aventura con tus amigos:

5. Diseñar itinerarios personalizados y listas de equipaje

Haz clic en + New Trip, introduce un nombre y define las fechas:

Si aún no tienes las fechas confirmadas, déjalas vacías. Aparecerá un campo de "número de días" (hasta 365). Planifica primero, programa las fechas después.

5.1 Añadir lugares

Este suele ser el paso que más tiempo toma al planificar, y TREK ofrece varias formas de agilizarlo:

1. Clic derecho en el mapa para crear un lugar en esa ubicación exacta (la dirección se geocodifica a la inversa de forma automática):

2. Haz clic en + Add Place/Activity y busca por nombre:

3. Pega una URL de Google Maps (maps.app.goo.gl/… o maps.google.com/…) en el campo de búsqueda. TREK extraerá automáticamente el nombre, la dirección y las coordenadas:

4. Importación masiva — la opción más sencilla de todas. Si ya tienes una lista de lugares pendientes en Google Maps, expórtala como .gpx (también sirven .kml y .kmz) y haz clic en Import file en el panel derecho para importarlo todo de golpe:

Añade primero todos los lugares interesantes, sin preocuparte de si encajan en tu calendario. Ya los asignarás a días específicos más adelante.

5.2 Planes diarios y notas

El plan diario organiza los lugares por días en orden secuencial. Es una lista desplegable para cada día y todo funciona arrastrando y soltando:

Los detalles que marcan la diferencia:

  • Transporte entre paradas: el icono de autobús en la esquina superior izquierda de un día permite añadir transportes intermedios (trenes, autobuses o vuelos en el mismo día):
  • Notas del día: el icono de notas en la esquina inferior izquierda añade comentarios etiquetados con un icono, como "madrugar hoy" o "este museo requiere reserva previa":
  • Horarios asignados: arrastra un lugar del panel derecho a un día y asígnale una hora. Los lugares con hora fija se conectan automáticamente en el mapa:
  • Consulta la página wiki de Planes Diarios y Notas para saber más sobre Optimización de rutas y el Clima.

5.3 Colecciones: listas de lugares reutilizables

Las Colecciones permiten guardar listas de lugares de forma independiente a cualquier viaje. Se pueden compartir con amigos y tener listas para la próxima aventura. Los lugares se copian al añadirse a un viaje, por lo que editar un punto en un viaje no alterará tu colección ni viceversa.

Haz clic en Collections en la barra de menú superior:

Haz clic en + New list para crear una nueva:

Haz clic en + Add a place y rellena los datos:

Nota: el buscador del diálogo "Add a place" parece no funcionar, por lo que deberás introducir los detalles de forma manual.

Si las coordenadas geográficas de los lugares están disponibles, aparecerán en el mapa:

Para organizar los lugares mediante etiquetas, haz clic en el icono de la casilla de verificación:

Selecciona los lugares que quieres agrupar y haz clic en Assign label:

Haz clic en Manage labels para crear las etiquetas de antemano:

Selecciona una etiqueta y haz clic en Assign label:

5.4 Costes y presupuesto

Podemos registrar el resto de gastos del viaje en la pestaña 'Costs'.

Los pagos realizados por tus compañeros de viaje se pueden añadir y dividir en esta misma página.

El panel de liquidación ejecuta un algoritmo voraz (greedy) para calcular el número mínimo de transferencias necesarias para saldar las cuentas entre los miembros.

6. Aprovechar Model Context Protocol (MCP) para planificar viajes con IA

TREK dispone de un servidor MCP integrado, lo que permite a agentes de IA leer y escribir directamente tus datos de viaje a través de más de 150 herramientas y 30 recursos que cubren itinerarios, lugares, presupuestos, equipaje, reservas y colaboración.

6.1 Cloudflare Zero Trust

Dado que TREK se ejecuta detrás de una red de Cloudflare Zero Trust, tendrás que añadir el dominio a la lista de inclusión de Split Tunnels. De lo contrario, tendrás problemas con la autorización OAuth. Puedes consultar este problema de GitHub: issue de github.

Exponer de forma segura Hermes Agent a una red privada mediante Cloudflare Zero Trust y el túnel WARP

Guía relacionada

Cómo exponer Hermes Agent de forma privada con WARP

Aprenda a exponer y acceder globalmente a su Hermes Agent de forma segura con Cloudflare WARP y Zero Trust, sin abrir puertos de entrada en el firewall.

9 MIN DE LECTURA

6.2 Claude Desktop

Haz clic en + New Client para crear un nuevo cliente de agente de IA:

Selecciona la pestaña Claude Desktop y haz clic en Register Client:

Se mostrará un par de ID de cliente y secreto de cliente. Cópialos en un lugar seguro. A continuación, haz clic en Client Configuration para ver la configuración de MCP:

En Claude Desktop, haz clic en Edit Config para abrir el archivo local de configuración de servidores MCP:

Pega la configuración de TREK, sustituyendo los marcadores por tus credenciales:

  "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>\"}"
      ]
    }
  },

Reinicia Claude Desktop y el servidor de TREK aparecerá conectado bajo la sección de Local MCP servers:

Ahora prueba con una instrucción (prompt):

Añadamos un gasto usando lenguaje natural:

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.

Al revisar la pestaña de Costs, se comprueba que el gasto se ha creado indicando que "nadie ha pagado aún", ya que no se especificó un pagador en la orden:

Añadir elementos a la lista de equipaje funciona exactamente igual:

Actualiza la página Packing List y verás que los tres elementos ya están registrados:

6.3 Gemini CLI (registro dinámico)

Gemini CLI admite registro dinámico, lo que significa que no necesitas crear un cliente con antelación. Añade esto a .gemini/settings.json:

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

Ejecuta gemini en la terminal y haz clic en Approve cuando aparezca la solicitud de autorización:

Luego, empieza con una instrucción simple:

6.4 Kimi CLI (registro dinámico)

El mismo enfoque — añade a mcp.json en la carpeta /Users/<user>/.kimi/:

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

Ejecuta kimi mcp auth trek en la terminal y haz clic en Approve:

Una vez autorizado, se mostrarán las herramientas disponibles:

7. Experiencia móvil

TREK es una PWA (aplicación web progresiva) en dispositivos móviles. Un service worker almacena en caché los mapas y los datos de las API, por lo que podrás leer tu itinerario sin conexión a Internet. Sin embargo, las notificaciones push pueden sufrir cierta latencia comparadas con las de una aplicación nativa.

Reflexiones finales

Conectar agentes de IA mediante MCP ahorra gran parte del tedioso trabajo de introducir reservas de vuelos y hoteles. Además, los agentes pueden sugerir puntos de interés según las fechas del viaje y la temporada. Una única conversación con un agente de IA puede cubrir todo el proceso: desde la investigación y la creación del itinerario hasta el control del presupuesto y el equipaje.

Hay algunos pequeños detalles técnicos por pulir. Por ejemplo, al importar reservas desde un PDF, la moneda se establece de forma predeterminada en la moneda base del viaje en lugar de la moneda pagada realmente. Asimismo, al crear una nueva lista en las Colecciones, la imagen de portada añadida desaparece al guardar, aunque se puede volver a añadir manualmente al editar.

Existe una pequeña barrera técnica, ya que necesitas alojar esto en tu propio servidor. TREK está pensado principalmente para personas que viajan con frecuencia y tienen altas expectativas sobre cómo organizar la información de sus viajes. Sugerimos probar la demo oficial en demo.liketrek.com antes de plantearse el autohospedaje.

Referencias:

Artículos relacionados