Saltar al contenido principal

Servidor Dedicado: Configura Supabase en Linux

Esta guía fue creada con los siguientes productos:

(Los detalles pueden variar según los productos de diferentes proveedores, pero los conceptos principales permanecen igual)

Introducción

Supabase es una plataforma de desarrollo Postgres open-source que ofrece una base de datos Postgres completa junto con autenticación, APIs instantáneas, tiempo real y almacenamiento, convirtiéndola en una alternativa open-source a Firebase.

img

¿Estás pensando en alojar este servicio por tu cuenta? Te guiaremos paso a paso para configurarlo y ajustarlo, junto con todo lo que necesitas tener en cuenta.

Requisitos Previos

Antes de instalar Supabase, asegúrate de que tu entorno de hosting cumple con los siguientes requisitos para garantizar una instalación fluida y un rendimiento óptimo.

HardwareMínimoRecomendación ZAP-Hosting
CPU1 núcleo de CPU4 núcleos de CPU
RAM4 GB8 GB
Espacio en disco25 GB25 GB

El software requiere que todas las dependencias necesarias estén instaladas y que se ejecute en un sistema operativo soportado. Asegúrate de que tu servidor cumple con los siguientes requisitos antes de continuar con la instalación:

Dependencias: Git, Docker (Engine y Compose)

Sistema Operativo: Última versión de Ubuntu/Debian compatible con Docker 2

Verifica que todas las dependencias estén instaladas y que la versión del sistema operativo sea la correcta para evitar problemas de compatibilidad durante la instalación de Supabase.

Preparación

Antes de configurar Supabase, necesitas preparar tu sistema. Esto incluye actualizar tu sistema operativo a la última versión e instalar todas las dependencias necesarias. Estas preparaciones aseguran un entorno estable y ayudan a prevenir problemas durante o después de la instalación.

Actualizar Sistema

Para asegurarte de que tu sistema está ejecutando el software y las mejoras de seguridad más recientes, siempre debes realizar primero una actualización del sistema. Para ello, ejecuta el siguiente comando:

sudo apt update && sudo apt upgrade -y

Esto garantiza que tu sistema tenga los últimos parches de seguridad y versiones de software antes de continuar.

Instalar dependencias

Una vez completado el proceso de actualización, puedes proceder con la instalación de las dependencias.

Git

Los datos de Supabase se descargarán a través de GitHub. Por ello, primero debes instalar Git. Para hacerlo, ejecuta el siguiente comando:

sudo apt install git-all

Docker

Supabase se desplegará y ejecutará en tu máquina usando un contenedor Docker. Por eso, primero debes instalar Docker. Para hacerlo, ejecuta el siguiente comando:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Un tutorial completo del proceso de instalación y cómo usar Docker está disponible en nuestra guía Docker.

Instalación

Ahora que se han cumplido todos los requisitos y se han completado las preparaciones necesarias, puedes proceder con la instalación de la aplicación Supabase.

Clona el repositorio de Supabase, crea un directorio de proyecto dedicado y copia los archivos Docker y el archivo de entorno de ejemplo dentro de él.

git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project

cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env

Cambia al directorio del proyecto, descarga las últimas imágenes de contenedor y lanza la stack en modo detached.

cd supabase-project
docker compose pull
docker compose up -d

img

Ahora puedes acceder a Supabase Studio a través de http://<tu-ip>:8000. Se te pedirá un usuario y contraseña. Por defecto, las credenciales son:

  • Usuario: supabase
  • Contraseña: this_password_is_insecure_and_should_be_updated

img

Credenciales por Defecto

Tu app está corriendo con credenciales por defecto. Asegura tus servicios lo antes posible usando las instrucciones a continuación.

Configuración

Nunca debes desplegar con valores por defecto o de ejemplo. Debes reemplazar todos los placeholders con secretos fuertes y únicos, revisar la configuración según tus requisitos de seguridad y reiniciar todos los servicios para aplicar los cambios.

Genera claves API seguras antes de exponer cualquier servicio. Comienza eligiendo un secreto JWT de 40 caracteres. Puedes usar el valor proporcionado o crear el tuyo propio. Guarda este secreto localmente en un lugar seguro. No lo compartas ni lo subas a control de versiones. Usa el secreto para generar un JWT y luego deriva las claves API anon y service usando el formulario referenciado en la documentación de Supabase: https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys

Ejecuta el formulario dos veces para producir ambas claves. Actualiza tu ./docker/.env con:

  • ANON_KEY: clave anon
  • SERVICE_ROLE_KEY: clave service

Actualiza los secretos requeridos en ./docker/.env. Estos valores deben estar configurados para un despliegue funcional:

  • POSTGRES_PASSWORD: contraseña para el rol postgres
  • JWT_SECRET: consumido por PostgREST y GoTrue
  • SITE_URL: URL base de tu sitio
  • SMTP_*: credenciales del servidor de correo
  • POOLER_TENANT_ID: ID de tenant usado por el pooler Supavisor

Protege el Dashboard con nuevas credenciales antes de usar en producción. Edita ./docker/.env:

  • DASHBOARD_USERNAME: usuario del dashboard
  • DASHBOARD_PASSWORD: contraseña del dashboard

Puedes definir múltiples usuarios para el dashboard en ./docker/volumes/api/kong.yml:

basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two

Para habilitar todas las funciones del dashboard fuera de localhost, configura SUPABASE_PUBLIC_URL en ./docker/.env con la URL o IP que usarás para acceder al dashboard.

Aplica los cambios de configuración reiniciando la stack:

docker compose down
docker compose up -d

Conclusión y más Recursos

¡Felicidades! Ahora has instalado y configurado Supabase con éxito en tu Servidor Dedicado. También te recomendamos echar un vistazo a los siguientes recursos, que pueden ofrecerte ayuda y guía adicional durante la configuración de tu servidor:

¿Tienes preguntas específicas que no se cubren aquí? Para más dudas o asistencia, no dudes en contactar a nuestro equipo de soporte, ¡disponible todos los días para ayudarte! 🙂