Cómo instalar Surmai en Docker - Planificador de viajes colaborativo autohospedado en Docker

Surmai | Travel Planning | Docker

Surmai: Planificador de viajes colaborativo autohospedado en Docker

Planifica viajes en familia/grupo. Colaboración en tiempo real. Gestiona actividades, hospedaje, transportes. Privacy-first. React + PocketBase. Offline-first. Open source MIT.

¿Qué es Surmai?


Surmai es un planificador de viajes personal/familiar diseñado para resolver 3 desafíos clave al planificar un viaje: permitir colaboración entre múltiples personas, acceso fácil a todos los documentos durante el viaje, y mantener datos privados. A diferencia de Google Docs (sin structure), Trello (pensado para proyectos), o apps SaaS de viajes (tracking, analytics, ads), Surmai es self-hosted, colaborativo, y completamente privado.

Características principales: Planificación colaborativa en tiempo real. Gestiona transportes (vuelos, hoteles, alquiler auto). Actividades por día. Hospedaje y contactos. Presupuesto compartido. Documentos/recibos adjuntos. Notas colaborativas. Sincronización offline-first (funciona sin internet). React SPA moderna con Mantine UI. PocketBase backend (SQLite por defecto, sin dependencias externas). Soporte multi-idioma. Privacy-first: no cookies, no tracking, no terceros. Open source MIT. Fácil de instalar con Docker.

Para viajeros colaborativos: Planifica tu próximo viaje con familia/amigos sin perder coordinación. Todo centralizado, privado, tu servidor.

Características principales

Colaboración en tiempo real

Múltiples usuarios editan simultáneamente. Cambios syncan en vivo.

Gestión de transportes

Vuelos, trenes, autos. Fechas, horarios, confirmaciones, costos.

Hospedaje & contactos

Hoteles, Airbnbs, casas. Direcciones, teléfonos, checkout/checkin.

Actividades por día

Timeline por fecha. Qué hacer cada día. Horarios, locaciones.

Presupuesto compartido

Gastos. Quién pagó. Split entre viajeros. Liquidación al fin.

Documentos adjuntos

Recibos de reserva, confirmaciones, fotos, itinerarios. Organizados.

Offline-first

Sincroniza offline. Sin internet: funciona igual. Synca cuando vuelve.

Privacy-first

Self-hosted. No cookies, no tracking, no terceros. Datos 100% tuyos.

Multi-idioma

UI en múltiples idiomas. Contribuye traducciones en Weblate.

React + Mantine UI

SPA moderno, responsive, accesible. Funciona en desktop, tablet, móvil.

PocketBase backend

SQLite embebido. Sin dependencias externas. Setup simple.

Open source MIT

Código abierto. Customizable. Contribuye al proyecto.

Requisitos del sistema

  • Docker & Docker Compose
  • 512 MB - 1 GB RAM (muy ligero)
  • 2-5 GB espacio disco (depende fotos/documentos)
  • Puerto 9090 (configurable)
  • PocketBase SQLite (incluido, no requiere PostgreSQL)
  • Navegador moderno para UI React
Ultra-ligero: Surmai consume mínimos recursos. Corre en VPS $5, Raspberry Pi, cualquier servidor.

Instalación con Docker Compose

Paso 1: Crear estructura

mkdir surmai && cd surmai

Paso 2: Crear docker-compose.yml

cat > docker-compose.yml << 'EOF' version: '3.8' services: surmai: image: ghcr.io/rohitkumbhar/surmai:main container_name: surmai-server restart: unless-stopped ports: - "9090:8080" volumes: - surmai-data:/pb_data environment: # Credenciales admin (cambiar!) - SURMAI_ADMIN_EMAIL=admin@example.com - SURMAI_ADMIN_PASSWORD=ChangeMe123#@! # Directorio de datos - PB_DATA_DIRECTORY=/pb_data # Zona horaria - TZ=Europe/Madrid volumes: surmai-data: EOF

Paso 3: Personalizar configuración

# IMPORTANTE: Edita docker-compose.yml y cambia: # - SURMAI_ADMIN_EMAIL → tu email # - SURMAI_ADMIN_PASSWORD → contraseña fuerte (min 9 chars, mayúsculas, números, símbolos)

Paso 4: Iniciar

docker compose up -d # Esperar a que arranque (10-15 segundos) docker logs -f surmai-server

Acceder

http://localhost:9090 - Dashboard Surmai

Primeros pasos

1. Login como admin

  1. Abre http://localhost:9090
  2. Email y password del docker-compose.yml
  3. Ingresa al dashboard

2. Crear un viaje

  1. Click "Create Trip" o "New Trip"
  2. Nombre: "Viaje a Barcelona 2026"
  3. Fechas: desde/hasta
  4. Descripción (opcional)
  5. Guardar

3. Agregar colaboradores

  1. Abre el viaje
  2. Settings/Share → Add Collaborator
  3. Email del viajero
  4. Rol: Editor o Viewer
  5. Reciben invitación para acceder

4. Planificar transportes

  1. Sección "Transportation"
  2. Add Flight/Train/Car
  3. Detalles: fecha, hora, confirma número, costo
  4. Adjunta confirmación de email

5. Agregar hospedaje

  1. Sección "Lodging"
  2. Add Accommodation
  3. Hotel/Airbnb/Casa: nombre, dirección, checkin/checkout
  4. Teléfono de contacto
  5. Precio/noche

6. Planificar actividades por día

  1. Sección "Itinerary" o "Activities"
  2. Por cada día: Add Activity
  3. Qué: visita museos, cena, excursión
  4. Hora, ubicación, notas
  5. Quién va (asigna viajeros)

7. Gestionar presupuesto

  1. Sección "Expenses/Budget"
  2. Add Expense: quién pagó, cuánto, en qué
  3. Categoría: transporte, hospedaje, comida, etc
  4. Surmai calcula quién le debe a quién
  5. Liquidación al fin del viaje

8. Adjuntar documentos

  1. En cualquier actividad/transporte: attach files
  2. Recibos, confirmaciones, fotos, mapas
  3. Disponible offline también

Casos de uso

  • Viajes en familia: Planifica vacaciones. Todos ven itinerario, gastos, documentos.
  • Viajes en grupo: 5-10 amigos viajando juntos. Organiza actividades, split de gastos.
  • Mochileros: Presupuesto compartido, rutas, alojamientos asequibles.
  • Tour organizador: Planifica itinerario para clientes. Documentación centralizada.
  • Parejas en viaje de novios: Colaboración sin perder privacidad ni cookies de empresas.
  • Empresas con viajes corporativos: Centraliza viajes de ejecutivos. Gastos y reembolsos.

HTTPS con Caddy (producción)

Caddyfile

viajes.tudominio.com { reverse_proxy localhost:9090 }

Acceso remoto seguro

https://viajes.tudominio.com con HTTPS automático de Caddy

Comparte con viajeros remotos

Invita colaboradores a https://viajes.tudominio.com. Acceden desde cualquier lugar, cualquier dispositivo.

Gestión y mantenimiento

Ver logs

docker logs -f surmai-server

Backup de datos (importante!)

# SQLite DB está en surmai-data volume docker exec surmai-server sqlite3 /pb_data/data.db ".backup '/pb_data/backup.db'" # O backup manual del volume docker run --rm -v surmai-data:/data -v $(pwd):/backup alpine tar czf /backup/surmai-backup-$(date +%Y%m%d).tar.gz -C /data .

Restore de backup

docker compose down docker run --rm -v surmai-data:/data -v $(pwd):/backup alpine tar xzf /backup/surmai-backup-20260522.tar.gz -C /data docker compose up -d

Reiniciar

docker compose restart surmai-server

Actualizar a versión más reciente

docker compose pull docker compose up -d

Limpiar space (logs antiguos)

docker system prune -a

Acceder a PocketBase Admin UI (avanzado)

La UI de PocketBase también está disponible en http://localhost:9090/_/ para configuración avanzada. Usa misma contraseña admin.

Comparativa con alternativas

vs Google Docs/Sheets

Surmai gana: Estructura para viajes, presupuesto, docs, privacy. Google gana: Más flexible, colaboración robusta.

vs Trello

Surmai gana: Diseñado específicamente para viajes, presupuesto compartido. Trello gana: Más flexible para otros usos.

vs Wanderlog/Roadtrippers (SaaS)

Surmai gana: Self-hosted, privacy, sin suscripción, offline. Wanderlog gana: Integraciones, comunidad, reseñas.

vs Notion

Surmai gana: Self-hosted, privacy, específico para viajes. Notion gana: Más potente, más flexible.

Mejor para: Grupos/familias que viajan juntas. Valoran privacy, offline-first, estructura clara. Sin suscripción. Control total.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.