← Blog

Cómo auto-alojar (Self-Host) Supabase en tu propio VPS con Docker

Tutorial · · 9 min de lectura

Supabase se ha consolidado como la alternativa de código abierto preferida a Firebase. Su oferta es tentadora: una base de datos PostgreSQL real, autenticación de usuarios, APIs generadas automáticamente (REST y GraphQL), almacenamiento de archivos y funciones en tiempo real.

Aunque Supabase Cloud ofrece una excelente capa gratuita, tiene limitaciones: tus proyectos se pausan tras una semana de inactividad, el almacenamiento de base de datos está limitado a 500 MB y los costes escalan rápidamente si necesitas más recursos.

La solución es auto-alojar (Self-Host) Supabase en tu propio VPS. Por el precio de un servidor de €5 en Hetzner o DigitalOcean, puedes tener una instancia de Supabase completamente funcional y sin límites artificiales de datos. En esta guía te explicamos cómo hacerlo paso a paso usando Docker Compose y cómo SecuryBlack te ayuda a gestionarlo.


Requisitos previos

Para seguir esta guía necesitarás:

  1. Un servidor VPS limpio (Ubuntu 24.04 recomendado) con al menos 2 GB de RAM (Supabase ejecuta varios servicios en contenedores y 1 GB puede quedarse corto).
  2. Docker y Docker Compose instalados en el servidor.
  3. Un dominio o subdominio apuntando a la IP pública de tu servidor (ej. supabase.tudominio.com).

Paso 1: Clonar el repositorio oficial de Supabase Docker

Supabase proporciona una configuración de Docker optimizada y mantenida oficialmente. Conéctate a tu servidor mediante SSH y clona el repositorio:

# Clonar el repositorio oficial
git clone --depth 1 https://github.com/supabase/supabase.git

# Moverse al directorio de Docker
cd supabase/docker

Paso 2: Configurar las variables de entorno

Copia el archivo de plantilla .env.example a .env para empezar a configurar las contraseñas y claves criptográficas:

cp .env.example .env

Ahora debes generar contraseñas seguras y claves JWT únicas. Supabase incluye un script o puedes usar comandos estándar para crearlas. Es crítico que cambies los siguientes valores en el archivo .env:

  1. POSTGRES_PASSWORD: La contraseña maestra para tu base de datos PostgreSQL.
  2. JWT_SECRET: Una cadena aleatoria larga para firmar los tokens de autenticación de tus usuarios.
  3. ANON_KEY y SERVICE_ROLE_KEY: Claves de API que puedes generar utilizando herramientas online de JWT (usando el JWT_SECRET anterior).

Abre el archivo con tu editor favorito para realizar los cambios:

nano .env

Paso 3: Iniciar Supabase

Una vez configuradas las variables del archivo .env, puedes levantar todo el stack de servicios utilizando Docker Compose:

docker compose up -d

Este comando descargará e iniciará múltiples contenedores:

  • Kong: El API Gateway que enruta las peticiones de tus clientes.
  • GoTrue: El microservicio de autenticación de usuarios.
  • PostgREST: El servidor que convierte tu esquema de base de datos en una API REST instantánea.
  • Realtime: Para suscripciones en tiempo real mediante websockets.
  • Storage: Para gestionar archivos de medios.
  • Studio: El panel de administración visual (dashboard) de tu base de datos (disponible por defecto en el puerto 8000).

Para comprobar que todo está corriendo correctamente:

docker compose ps

Paso 4: Asegurar la instalación con SecuryBlack

Auto-alojar Supabase en un servidor expuesto a internet requiere precauciones importantes de seguridad y fiabilidad que normalmente tendrías que configurar a mano. Al conectar tu VPS a SecuryBlack, tienes ayuda en tres frentes:

  1. Auditoría de puertos (FerroSentry): cada hora detecta si Docker publica el puerto de la base de datos (5432) o el de Studio (8000) saltándose UFW, y te indica cómo cerrarlos (publicarlos solo en 127.0.0.1 o filtrarlos en la cadena DOCKER-USER).
  2. Monitoreo del servidor (OxiPulse): Supabase consume recursos considerables de RAM y CPU al procesar transacciones pesadas. El agente OxiPulse te avisará de inmediato si el VPS se queda sin memoria o almacenamiento.
  3. Backups de Postgres con aviso (TitanVault): programa un volcado (pg_dump) de tu base de datos de Supabase, comprimido y con cifrado opcional, a Cloudflare R2 o cualquier S3; un heartbeat te avisa si una copia no llega. La restauración, pruébala tú: crear una copia no demuestra que se pueda recuperar.

Conclusión

Auto-alojar Supabase te otorga control absoluto sobre tus datos, elimina las limitaciones de la capa gratuita y te permite ahorrar costes significativos. Con Docker Compose, la instalación básica se realiza en menos de 10 minutos, y al complementarlo con SecuryBlack, obtienes la seguridad, observabilidad y tranquilidad que habitualmente solo tendrías en su nube de pago.

Blog

Descubre qué tiene mal tu servidor

Conecta tu primer VPS y recibe la auditoría de seguridad. Gratis durante la beta.