Inicio > Recursos > Construye con IA > Supabase EasyPanel

Cómo Instalar Supabase Self-Hosted en EasyPanel (Guía Completa 2026)

Si vienes de Firebase y quieres migrar a open source, Supabase es la alternativa más directa: misma estructura (Auth, Storage, Realtime, API), pero con Postgres debajo y sin que te cobren por cada lectura o escritura. Esta guía cubre la instalación completa en EasyPanel, incluyendo los errores más comunes.

⏱️ Antes de empezar

Tiempo estimado: 30–45 minutos · Nivel: Intermedio (requiere SSH y manejo básico de variables de entorno) · Requisito: VPS con EasyPanel instalado

NocoDB vs Supabase — ¿cuándo usar cada uno?

En el Nivel 2 de la comunidad Innovarketing usamos NocoDB. Aquí la diferencia real:

CaracterísticaNocoDBSupabase
ConceptoAirtable open sourceFirebase open source
Contenedores Docker1 contenedor8+ contenedores
Interfaz visualSpreadsheet, intuitivoDashboard técnico
Autenticación de usuariosNo incluyeCompleta (email, OAuth)
Storage de archivosNoSí (S3-compatible)
Tiempo realNoSí (WebSockets)
Edge FunctionsNoSí (serverless)
RAM mínima recomendada512 MB4 GB
Ideal paraCRMs, bases de datos de clientesApps con login y archivos

Usa NocoDB para CRMs y sistemas de atención para clientes. Usa Supabase cuando construyes una app con usuarios registrados, login propio, archivos o tiempo real.

Requisitos del VPS

⚠️ RAM mínima: 4 GB

Supabase levanta 8+ contenedores simultáneos. Con 2 GB el servidor hará swap constante y EasyPanel mostrará el botón en gris o rojo. Si tienes menos de 4 GB, considera desactivar servicios opcionales (Analytics, imgproxy) o hacer upgrade del VPS.

  • RAM: 4 GB mínimo (8 GB recomendado para producción)
  • vCPU: 2 cores mínimo
  • Almacenamiento: 30 GB libre
  • EasyPanel: ya instalado y corriendo
  • Dominio: con acceso para configurar DNS
1

Generar los JWT Secrets

Este paso es obligatorio antes de tocar EasyPanel. Supabase necesita 3 valores criptográficos que tú generas:

  1. Ve a supabase.com → self-hosting → generate API keys
  2. Genera un JWT Secret (mínimo 32 caracteres aleatorios)
  3. Con ese secret, genera el ANON_KEY y el SERVICE_ROLE_KEY

También puedes generar el JWT Secret desde SSH:

openssl rand -base64 32

📋 Guarda estos 3 valores — los necesitas en todos los pasos siguientes

  • JWT_SECRET — la semilla maestra
  • ANON_KEY — clave pública (para el frontend)
  • SERVICE_ROLE_KEY — clave privada con permisos totales (solo backend)
2

Obtener el docker-compose oficial

⚠️ No uses el template de easypanel-io/compose

Ese repositorio tiene versiones desactualizadas de Supabase. Usa siempre el repositorio oficial.

Conéctate a tu VPS por SSH y ejecuta:

git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker
cp .env.example .env
3

Configurar el archivo .env

nano .env

Variables críticas que debes cambiar:

VariableValor / Instrucción
POSTGRES_PASSWORDPassword seguro (sin @, #, $, %)
JWT_SECRETEl secret generado en el Paso 1
ANON_KEYEl anon key generado en el Paso 1
SERVICE_ROLE_KEYEl service role key del Paso 1
DASHBOARD_USERNAMEadmin
DASHBOARD_PASSWORDPassword del dashboard
SITE_URLhttps://supabase.tudominio.com
API_EXTERNAL_URLhttps://supabase.tudominio.com

⚠️ Caracteres especiales en POSTGRES_PASSWORD

Evita @ # $ % en el password de Postgres — rompen la cadena de conexión entre los contenedores internos de Supabase.

4

Crear el Compose en EasyPanel

  1. EasyPanel → + Create Project → nómbralo supabase
  2. Dentro → + Create Service → selecciona “Compose”
  3. URL del repositorio: https://github.com/supabase/supabase
  4. Compose file path: docker/docker-compose.yml
5

Variables de entorno en EasyPanel

En la sección Environment del Compose service, agrega las mismas variables del .env:

VariableValor
POSTGRES_PASSWORDtu_password
JWT_SECRETtu_jwt_secret
ANON_KEYtu_anon_key
SERVICE_ROLE_KEYtu_service_role_key
DASHBOARD_USERNAMEadmin
DASHBOARD_PASSWORDtu_password_dashboard
SITE_URLhttps://tudominio.com
API_EXTERNAL_URLhttps://tudominio.com
6

Configurar dominios

ServicioPuertoPara qué sirve
Kong (API Gateway)8000API, auth, storage, realtime — acceso principal
Studio3000Dashboard visual para gestionar la base de datos

En EasyPanel agrega dominio → supabase.tudominio.com → puerto 8000

7

Deploy y verificar

  1. Clic en Deploy
  2. Ve a Logs — espera 3 a 5 minutos

✅ Contenedores que deben quedar verdes

  • supabase-db — Postgres
  • supabase-kong — API Gateway
  • supabase-auth — Autenticación
  • supabase-rest — API automática
  • supabase-studio — Dashboard
  • supabase-realtime — WebSockets
  • supabase-storage — Archivos

El botón gris — qué significa y cómo resolverlo

El botón gris en EasyPanel indica que el Compose está detenido porque uno o más contenedores fallaron al arrancar. Si podías entrar al dashboard, algunos servicios corrieron (Kong y Studio), pero probablemente supabase-db o supabase-auth fallaron.

🔍 Diagnóstico rápido

Ve a Logs del Compose → busca el contenedor con texto en rojo → copia ese error. El 90% de las veces es una variable de entorno mal configurada.

El diseño diferente — es completamente normal

El dashboard self-hosted de Supabase tiene un diseño levemente diferente al de supabase.com. La versión cloud incluye features extra (billing, métricas globales, logs de plataforma) que no existen en self-hosted. Para construir tu app es funcionalmente idéntico.

Conectar por MCP o SDK

La única diferencia con la nube es la URL base. Configura así:

SUPABASE_URL=https://supabase.tudominio.com
SUPABASE_ANON_KEY=tu_anon_key
SUPABASE_SERVICE_ROLE_KEY=tu_service_role_key

Todas las librerías de Supabase (JS, Python, etc.) aceptan URL personalizada. Solo cambia el endpoint y todo lo demás funciona igual que en la nube.

Errores comunes y soluciones

Botón gris / contenedor en loop de reinicios

→ 90% de las veces es JWT_SECRET, ANON_KEY o SERVICE_ROLE_KEY mal configurado. Verifica que no tengan espacios al inicio o al final.

Error de conexión a la base de datos

POSTGRES_PASSWORD con caracteres especiales (@ # $). Usa solo letras y números.

Dashboard no carga

→ Espera 5 minutos completos después del deploy. Verifica que el dominio apunta al puerto 8000, no al 3000.

Servidor lento / RAM insuficiente

→ Desactiva temporalmente analytics e imgproxy en el docker-compose.yml. Solución definitiva: upgrade a 4 GB RAM.

SSL no funciona

→ Verifica que los registros DNS apuntan a la IP del VPS y que Traefik en EasyPanel gestiona los certificados automáticamente.

✅ Acceso al Dashboard

  • URL: https://supabase.tudominio.com
  • Usuario: valor de DASHBOARD_USERNAME
  • Password: valor de DASHBOARD_PASSWORD

🖥️ ¿Necesitas un VPS para Supabase?

20% de descuento

Supabase requiere mínimo 4 GB de RAM. Hostinger tiene datacenter en São Paulo, lo que da menor latencia para Chile y LatAm, y mejor rendimiento en benchmarks reales de producción.

  • Plan recomendado: KVM4 o superior (4 GB RAM mínimo para Supabase)
  • Tip: Elige plan de 1 o 2 años para congelar el precio de oferta
Ver Planes VPS con 20% OFF

¿Tienes un error que no está aquí?

Copia el mensaje exacto del Log en EasyPanel y compártelo en el muro de la comunidad. Con eso podemos diagnosticar exactamente qué falla.

Ir a la Comunidad →

¿Listo para instalar tu propio Supabase?

Sigue los 7 pasos de esta guía, revisa los logs si algo falla, y en menos de una hora tendrás Supabase corriendo en tu VPS sin costos por uso.

Open source — sin costos por uso Compatible con Firebase SDK Postgres bajo el capó

VPS para montar tu propio stack open source

Si quieres instalar n8n, NocoDB o Supabase en tu propio servidor, necesitas un VPS confiable. Hostinger tiene servidores en São Paulo (el más cercano para LATAM) con buen rendimiento y soporte en español.

20% de descuento entrando directamente por este link:

Ver planes VPS Hostinger →

Link de afiliado — el precio para ti es el mismo o menor, yo recibo una comisión si contratas.

Javier Vrandecic

Javier Vrandecic

Fundador de InnovArketing | Experto en Automatización con IA

Ingeniero Comercial especialista en automatización con n8n, Claude Code y sistemas open source. Ayudo a emprendedores y empresas en Chile y LatAm a construir sistemas de IA sin depender de SaaS caros. Conferencista en la Universidad de las Américas para el Diplomado de Data Science.

Publicaciones Similares