Tutorial

Alojar Maybe en un VPS: gestiona tus finanzas con autonomía

Autoalojamiento8 min de lectura7 pasos

En enero de 2024, Maybe publicó su código fuente bajo la licencia AGPLv3 tras haber funcionado como SaaS comercial. Esta decisión llegó en un momento en que varias aplicaciones de finanzas personales aumentaron sus precios o eliminaron sus planes gratuitos. Maybe permite seguir transacciones, inversiones y patrimonio neto desde una interfaz clara, alojada en la infraestructura que tú controlas. Esta guía explica cómo instalar Maybe en un VPS de ServOrbit con Docker Compose.

Contenido· Por qué alojar tus finanzas en tu propio servidor1/9
  1. 01Por qué alojar tus finanzas en tu propio servidor
  2. 02Qué ofrece Maybe
  3. 03Requisitos del sistema
  4. 04Instalar Maybe en un VPS con Docker Compose
  5. 05Vincular cuentas bancarias
  6. 06Copia de seguridad de PostgreSQL y cifrado
  7. 07Resolución de problemas: errores frecuentes
  8. 08Comparativa: Maybe auto-alojado, YNAB y Monarch Money
  9. 09Para profundizar

Por qué alojar tus finanzas en tu propio servidor

Confiar los datos financieros a un tercero implica aceptar sus condiciones de almacenamiento, sus prácticas de uso de datos y su continuidad comercial. Varios servicios populares aumentaron sus precios entre un 30 y un 60 por ciento entre 2023 y 2025, o simplemente cerraron. El alojamiento propio responde a una preocupación legítima: «mis datos financieros son demasiado sensibles para un servidor que gestiono yo mismo». En la práctica, un VPS correctamente configurado ofrece cifrado en tránsito (TLS), cifrado del volumen PostgreSQL a nivel de disco, copias de seguridad automatizadas y acceso restringido a tu dirección IP o red privada. Eso representa una superficie de ataque mucho menor que un SaaS que agrega datos de decenas de miles de usuarios.

Qué ofrece Maybe

Maybe combina gestión presupuestaria, seguimiento de inversiones y cálculo del patrimonio neto en una sola interfaz autoalojable.

  • Panel de patrimonio neto (activos, pasivos y evolución en el tiempo)
  • Seguimiento de transacciones con categorización automática y reglas personalizables
  • Vinculación de cuentas bancarias vía Plaid (EE.UU. y Canadá) o introducción manual
  • Seguimiento de inversiones y carteras con precios en tiempo real vía Synth Finance
  • Presupuestos y metas de ahorro por categoría
  • Informes mensuales y anuales exportables
  • Asistente IA opcional (requiere clave OpenAI) para análisis de gastos
  • Interfaz multicuenta: pareja, miembros del hogar o clientes

Requisitos del sistema

Maybe es una aplicación Ruby on Rails que funciona con cuatro servicios Docker: el servidor web, un worker Sidekiq para tareas asíncronas, PostgreSQL 16 y Redis. Para uso personal o un equipo pequeño, un VPS con 2 vCPU y 2 GB de RAM es suficiente. Para uso profesional con varios usuarios y sincronización bancaria activa, se recomiendan 4 GB de RAM. El puerto 3000 debe ser accesible (o redirigido desde el puerto 443 mediante un proxy inverso). Reserva 5 GB de almacenamiento para los datos de la aplicación y la base de datos, más el espacio para copias de seguridad.

Instalar Maybe en un VPS con Docker Compose

La instalación se basa en Docker Compose y un archivo .env. Los pasos parten de un VPS Debian 12 limpio.

  1. Instalar Docker Engine

    En Debian/Ubuntu: curl -fsSL https://get.docker.com | sh. Verifica la instalación con docker run hello-world. Docker Compose v2 está incluido desde Docker Engine 23.

  2. Crear el directorio de trabajo

    Ejecuta mkdir -p /opt/maybe && cd /opt/maybe. Este directorio contendrá el archivo compose.yml y el archivo .env.

  3. Descargar el archivo Compose oficial

    Descarga el ejemplo del proyecto: curl -o compose.yml https://raw.githubusercontent.com/maybe-finance/maybe/main/compose.example.yml. Este archivo define los cuatro servicios (web, worker, db, redis) y los volúmenes con nombre.

  4. Crear el archivo .env

    Crea /opt/maybe/.env con el siguiente contenido: SECRET_KEY_BASE=$(openssl rand -hex 64), POSTGRES_PASSWORD=una_contraseña_fuerte, SELF_HOSTED=true, APP_DOMAIN=finanzas.tu-dominio.com. Genera una clave secreta robusta con openssl rand -hex 64.

  5. Iniciar los servicios

    Desde /opt/maybe, ejecuta docker compose up -d. Docker descargará las imágenes ghcr.io/maybe-finance/maybe:stable, PostgreSQL 16 y Redis, y luego arrancará los contenedores. La inicialización de la base de datos tarda entre uno y dos minutos.

  6. Configurar un proxy inverso

    Coloca Nginx o Caddy frente al puerto 3000 para servir Maybe por HTTPS. Con Caddy: añade finanzas.tu-dominio.com { reverse_proxy localhost:3000 } en tu Caddyfile. Caddy gestiona automáticamente el certificado Let's Encrypt.

  7. Crear la primera cuenta

    Accede a https://finanzas.tu-dominio.com. Maybe muestra un formulario de registro en el primer arranque. En modo SELF_HOSTED=true, la primera cuenta creada se convierte en administrador. Desactiva los registros públicos en la configuración si la instancia es personal.

Vincular cuentas bancarias

Maybe admite dos métodos para vincular cuentas. La conexión automática vía Plaid cubre bancos de EE.UU. y Canadá: añade las credenciales de Plaid API (PLAID_CLIENT_ID y PLAID_SECRET) en .env, y luego vincula las cuentas desde la interfaz. Para bancos europeos o latinoamericanos, la introducción manual de transacciones sigue siendo el método principal. Maybe acepta la importación de archivos CSV en formato estándar, lo que permite migrar desde una hoja de cálculo o un exportado del banco. El seguimiento de inversiones se apoya en la API de Synth Finance para cotizaciones: añade SYNTH_API_KEY para activar la valoración automática de carteras.

Copia de seguridad de PostgreSQL y cifrado

La base de datos PostgreSQL se almacena en el volumen Docker maybe_postgres-data. Para hacer copias de seguridad periódicas: crea un script que ejecute docker exec maybe-db-1 pg_dump -U maybe_user maybe_production | gzip > /backups/maybe-$(date +%Y%m%d).sql.gz, y luego prográmalo con un temporizador systemd o cron. Para una estrategia 3-2-1 completa, envía estos volcados cifrados a un almacenamiento de objetos compatible con S3 usando Restic o rclone. Maybe también admite almacenar los archivos de la aplicación en Amazon S3 o Cloudflare R2 mediante las variables ACTIVE_STORAGE_SERVICE, S3_ACCESS_KEY_ID y las claves relacionadas. El cifrado de datos sensibles en la base de datos (claves API, tokens) se basa en las claves ACTIVE_RECORD_ENCRYPTION_* — si no las defines explícitamente, se derivan de tu SECRET_KEY_BASE.

Restringe el acceso a tu instancia Maybe colocándola detrás de una VPN (Tailscale, Headscale) o filtrando el acceso por IP en Nginx con allow 203.0.113.10; deny all;. Una instancia financiera personal no necesita estar expuesta públicamente: el acceso privado reduce drásticamente la superficie de ataque sin comprometer la usabilidad.

Resolución de problemas: errores frecuentes

Los errores más comunes tras instalar Maybe en un VPS, y sus soluciones.

  • web exited with code 1 al arrancar: la base de datos aún no estaba lista. Comprueba con docker compose logs db que PostgreSQL ha iniciado, y luego ejecuta docker compose restart web worker.
  • Página en blanco o error 500 después del registro: verifica que SECRET_KEY_BASE está definido y no está vacío en .env. Una clave ausente impide que Rails descifre la sesión.
  • PG::ConnectionBad en los logs web: la variable DB_HOST debe valer db (el nombre del servicio Docker), no localhost. Revisa tu .env.
  • Las tareas asíncronas (sincronización bancaria, informes) no se ejecutan: el servicio worker no está en marcha. Comprueba con docker compose ps que los cuatro servicios están en estado running.
  • Regresión después de actualizar: tras docker compose pull, ejecuta docker compose up --no-deps -d web worker en lugar de docker compose up -d para evitar recrear innecesariamente los contenedores de base de datos.

Comparativa: Maybe auto-alojado, YNAB y Monarch Money

Esta tabla compara Maybe autoalojado con las principales aplicaciones SaaS de finanzas personales.

Desplace la tabla

CriterioMaybe (auto-alojado)YNABMonarch Money
Coste anualCoste VPS (~5-10 €/mes)109 $/año99,99 $/año
Control de datosTotal — datos en tu servidorNinguno — datos en YNABNinguno — datos en Monarch
Conexión bancariaPlaid (EE.UU./Canadá) o manualPlaid (EE.UU./Canadá/UE parcial)Plaid (EE.UU./Canadá)
Seguimiento de inversionesSí (vía Synth Finance)No nativoSí
Panel de patrimonio netoSíNoSí
Asistente IAOpcional (requiere clave OpenAI)NoSí (incluido)
Mantenimiento requeridoSí — actualizaciones manualesNoNo
LicenciaAGPLv3 (código abierto)PropietariaPropietaria

Para profundizar

El artículo sobre alojar PostgreSQL en un VPS detalla la configuración fina del motor de base de datos para cargas de trabajo de producción. La estrategia de copia de seguridad 3-2-1 con Restic y S3 explica cómo configurar una retención cifrada y versionada. Para proteger el acceso a tu instancia Maybe sin una VPN completa, el artículo sobre Nextcloud ofrece un ejemplo de configuración Nginx con autenticación básica.

Un VPS para alojar tus finanzas con Maybe

ServOrbit ofrece VPS con Debian o Ubuntu, listos para Docker. Despliega Maybe en minutos sobre una infraestructura que controlas por completo.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva