bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward

Supabase en VPS: instalación, configuración y mantenimiento

calendar_month 10 de junio de 2026 schedule 23 min de lectura visibility 26 vistas
person
Valebyte Team
Supabase en VPS: instalación, configuración y mantenimiento

¿Qué es Supabase y por qué considerar instalarlo en un VPS?

La instalación y configuración de Supabase en un VPS proporciona a los desarrolladores total flexibilidad y control sobre sus servicios de backend, permitiendo desplegar una potente alternativa de código abierto a Firebase en su propio servidor para aplicaciones escalables, seguras y totalmente gestionadas.

Supabase es una plataforma integral de código abierto que se posiciona como una "alternativa de código abierto a Firebase". Proporciona un conjunto de herramientas y servicios necesarios para construir rápidamente el backend de aplicaciones web y móviles modernas. En el corazón de Supabase se encuentra la potente base de datos relacional PostgreSQL, complementada con una serie de funciones críticas:

  • Postgres Database: Una base de datos de alto rendimiento y fiable, compatible con todas las herramientas PostgreSQL existentes.
  • Authentication: Un sistema completo de autenticación de usuarios con soporte para correo electrónico, contraseña, proveedores sociales (Google, GitHub, etc.) y SMS.
  • Realtime: La capacidad de recibir actualizaciones de la base de datos en tiempo real a través de WebSockets, ideal para chats, notificaciones y aplicaciones interactivas.
  • Storage: Almacenamiento de archivos para datos de usuario, imágenes y otros archivos multimedia, con gestión de acceso.
  • Edge Functions: Funciones serverless basadas en Deno, que permiten ejecutar lógica de backend sin gestionar servidores.
  • PostgREST: Una API RESTful generada automáticamente para su base de datos, que permite interactuar con ella sin escribir código de servidor.
  • Dashboard: Una interfaz web fácil de usar para gestionar la base de datos, usuarios, archivos y configuraciones del proyecto.

Aunque Supabase ofrece una versión en la nube, muchos desarrolladores y empresas eligen Supabase self-hosted en su propio VPS. Esta decisión se debe a una serie de ventajas significativas:

  • Control total sobre los datos: Usted tiene el control total sobre sus datos, su ubicación y seguridad, lo cual es fundamental para cumplir con los requisitos regulatorios (GDPR, HIPAA) y las políticas corporativas.
  • Eficiencia económica al escalar: En una determinada etapa del desarrollo del proyecto, un VPS propio con Supabase puede resultar significativamente más barato que las tarifas de la nube, especialmente con altas cargas o grandes volúmenes de datos. Usted paga solo por los recursos del servidor, no por el uso de cada servicio por separado.
  • Flexibilidad y personalización: Puede configurar cada componente de Supabase según sus necesidades, instalar extensiones adicionales de PostgreSQL, optimizar el rendimiento a nivel del sistema operativo y la base de datos.
  • Ausencia de dependencia del proveedor (Vendor Lock-in): Su backend no está vinculado a un proveedor de nube específico de Supabase, lo que le da libertad para migrar y elegir el hosting.
  • Seguridad: La capacidad de construir una infraestructura aislada y protegida que cumpla con sus estándares de seguridad.

El uso de un VPS para desplegar Supabase es el punto intermedio entre una solución de nube totalmente gestionada y un servidor dedicado. Un VPS proporciona recursos aislados, la capacidad de instalar cualquier sistema operativo y software, y un alto rendimiento a un precio relativamente bajo. Es una opción ideal para proyectos que requieren un backend fiable y escalable, pero sin los costos excesivos de los servicios de nube totalmente gestionados.

Requisitos del sistema para Supabase en un VPS: ¿qué servidor elegir?

La elección del VPS adecuado para la instalación de Supabase es un paso clave que influye directamente en el rendimiento y la estabilidad de su aplicación. Supabase consta de varios componentes, cada uno de los cuales consume ciertos recursos. Los requisitos mínimos pueden ser engañosos para un entorno de producción, por lo que es importante entender qué consume cada servicio.

Componentes obligatorios y su consumo

  • PostgreSQL: El núcleo de Supabase. Consume volúmenes significativos de RAM para el almacenamiento en caché de datos y CPU para el procesamiento de consultas. Cuantos más datos, conexiones activas y consultas complejas, más recursos se necesitarán.
  • PostgREST: Un servidor proxy para PostgreSQL, relativamente ligero, pero requiere CPU para procesar solicitudes HTTP y una pequeña cantidad de RAM.
  • GoTrue (Authentication): Servicio de autenticación. Requiere CPU para operaciones criptográficas y una pequeña cantidad de RAM para almacenar sesiones.
  • Realtime: Servicio para procesar WebSockets. Puede consumir recursos significativos de RAM y CPU con un gran número de conexiones activas y actualizaciones frecuentes.
  • Storage: Almacenamiento de archivos basado en MinIO compatible con S3. Consume espacio en disco y una cierta cantidad de RAM/CPU para procesar cargas/descargas.
  • Kong (API Gateway): Actúa como una puerta de enlace API, enrutando las solicitudes a los servicios Supabase correspondientes. Consume RAM y CPU para procesar el tráfico.
  • Docker y Docker Compose: La propia plataforma de contenerización requiere ciertos recursos para ejecutar y gestionar contenedores.

Recomendaciones de configuración de VPS

Para Supabase en un servidor, tres parámetros son críticamente importantes: el procesador (CPU), la memoria RAM y el subsistema de disco. La red también es importante, pero la mayoría de los proveedores de VPS modernos ofrecen canales suficientemente amplios.

Configuración mínima (para desarrollo y proyectos pequeños)

  • CPU: 2 vCPU. Uno para PostgreSQL, otro para el resto de servicios.
  • RAM: 4 GB. PostgreSQL puede usar hasta 2 GB, el resto de servicios 1-1.5 GB, más el resto para el SO y Docker.
  • Disk: 50 GB NVMe SSD. NVMe es críticamente importante para el rendimiento de la base de datos. HDD o SSD normales serán significativamente más lentos.
  • OS: Ubuntu 22.04 LTS o Debian 12.
  • Costo: Desde $10-15 al mes (por ejemplo, planes Valebyte con NVMe).

Configuración media (para aplicaciones de producción con carga media)

  • CPU: 4 vCPU. Carga distribuida entre PostgreSQL y otros servicios de Supabase.
  • RAM: 8-16 GB. Cuanta más RAM, más eficientemente PostgreSQL almacena los datos en caché, lo que reduce las operaciones de disco.
  • Disk: 100-200 GB NVMe SSD. Suficiente para una base de datos y archivos en crecimiento.
  • OS: Ubuntu 22.04 LTS o Debian 12.
  • Costo: Desde $25-50 al mes.

Configuración de alta carga (para proyectos grandes y alto tráfico)

  • CPU: 6-8+ vCPU. Para un rendimiento máximo y procesamiento paralelo de solicitudes.
  • RAM: 32 GB+. Permite a PostgreSQL mantener la mayor parte de los datos activos en memoria.
  • Disk: 500 GB+ NVMe SSD. Con altos valores de IOPS. Posiblemente, valga la pena considerar RAID10 o almacenamiento en bloques dedicado.
  • OS: Ubuntu 22.04 LTS o Debian 12.
  • Costo: Desde $80-150+ al mes.

Nota importante: siempre elija un VPS con virtualización KVM, ya que proporciona aislamiento completo de recursos y rendimiento garantizado, a diferencia de OpenVZ.

¿Busca un servidor fiable para sus proyectos?

VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.

Ver ofertas →

Instalación paso a paso de Supabase en un VPS usando Docker y Docker Compose

La instalación de Supabase en un VPS a través de Docker y Docker Compose es el enfoque más recomendado y flexible. Permite gestionar fácilmente todos los componentes, actualizarlos y garantizar la portabilidad. Siga estos pasos para desplegar Supabase Docker en su servidor.

Preparación del VPS para la instalación

  1. Actualización del sistema:

    Conéctese a su VPS por SSH y actualice los paquetes del sistema:

    sudo apt update && sudo apt upgrade -y
  2. Instalación de Docker y Docker Compose:

    Si Docker aún no está instalado, ejecute los siguientes comandos. Docker Compose v2 ahora es parte de Docker CLI.

    # Instalación de los paquetes necesarios
    sudo apt install ca-certificates curl gnupg lsb-release -y
    
    # Adición de la clave GPG de Docker
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    
    # Adición del repositorio de Docker
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Actualización del índice de paquetes e instalación de Docker Engine
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
    
    # Adición de su usuario al grupo docker (para no usar sudo con los comandos docker)
    sudo usermod -aG docker $USER
    # Salga de SSH y vuelva a iniciar sesión para que los cambios surtan efecto, o ejecute:
    # newgrp docker
    
    # Verificación de la instalación
    docker run hello-world
    docker compose version
  3. Instalación de Git:
    sudo apt install git -y

Despliegue de Supabase

  1. Clonación del repositorio de Supabase:

    Vaya a su directorio de inicio o a cualquier otro donde desee almacenar los archivos de Supabase, y clone el repositorio oficial:

    cd ~
    git clone --depth 1 https://github.com/supabase/supabase
    cd supabase
  2. Configuración de variables de entorno:

    Copie el archivo de ejemplo de variables de entorno y edítelo. Este es un paso críticamente importante para la seguridad y la funcionalidad.

    cp .env.example .env
    nano .env

    En el archivo .env, deberá configurar varios parámetros clave. Los más importantes son:

    • POSTGRES_PASSWORD: Establezca una contraseña muy compleja para el usuario de PostgreSQL.
    • JWT_SECRET: Genere una clave secreta larga y aleatoria (por ejemplo, usando openssl rand -base64 32).
    • ANON_KEY y SERVICE_KEY: Estas claves también deben generarse. Puede usar openssl rand -base64 32 para cada una.
    • SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS: Configure los parámetros de su servidor SMTP para enviar correos electrónicos de autenticación (confirmación de correo electrónico, restablecimiento de contraseña). Si no los configura, las funciones de autenticación por correo electrónico no funcionarán.
    • AUTH_EXTERNAL_URL: Establezca la URL externa de su instancia de Supabase, por ejemplo, https://supabase.yourdomain.com. Esto es importante para el correcto funcionamiento de los enlaces en los correos electrónicos de autenticación.
    • STORAGE_URL, REALTIME_URL y otras URL: Deben coincidir con su dominio.

    Ejemplo de generación de JWT_SECRET:

    openssl rand -base64 32

    Guarde los cambios en el archivo .env.

  3. Inicio de Supabase:

    Ahora que todo está configurado, inicie todos los servicios de Supabase con Docker Compose:

    docker compose up -d

    El flag -d inicia los contenedores en segundo plano. El proceso puede tardar varios minutos, ya que Docker descargará todas las imágenes necesarias.

  4. Verificación del estado:

    Asegúrese de que todos los contenedores estén iniciados y funcionando:

    docker compose ps

    Debería ver una lista de todos los servicios de Supabase con el estado running.

En este punto, Supabase está funcionando en su servidor, pero solo es accesible a través de las direcciones IP internas de los contenedores. Para acceder desde el exterior y trabajar con HTTPS, es necesario configurar un reverse proxy.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Configuración de Reverse Proxy (Nginx/Caddy) y HTTPS para Supabase en el servidor

Después de la instalación de Supabase a través de Docker Compose, todos sus componentes funcionan en diferentes puertos dentro de la red Docker. Para hacerlos accesibles desde el exterior por un nombre de dominio y asegurar una conexión segura con HTTPS, es necesario configurar un reverse proxy. Consideraremos dos opciones populares: Nginx y Caddy.

Pasos preliminares generales

  1. Vinculación del dominio: Asegúrese de que su dominio o subdominio (por ejemplo, supabase.yourdomain.com) apunte a la dirección IP de su VPS en los registros DNS (registro tipo A).
  2. Apertura de puertos del firewall: Asegúrese de que los puertos 80 (HTTP) y 443 (HTTPS) estén abiertos en su VPS. Si usa UFW (Uncomplicated Firewall), ejecute:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable # si el firewall no estaba activado

Opción 1: Nginx con Certbot (recomendado para usuarios experimentados)

Nginx es un potente y ampliamente utilizado servidor web, ideal para el rol de reverse proxy.

  1. Instalación de Nginx:
    sudo apt install nginx -y
  2. Creación del archivo de configuración de Nginx:

    Cree un nuevo archivo de configuración para su dominio:

    sudo nano /etc/nginx/sites-available/supabase.conf

    Pegue la siguiente configuración, reemplazando supabase.yourdomain.com con su dominio:

    server {
        listen 80;
        server_name supabase.yourdomain.com;
    
        location / {
            proxy_pass http://localhost:8000; # Puerto de Kong API Gateway
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_redirect off;
    
            # Para WebSockets (Realtime)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    
        # Para el panel de control de Supabase (Dashboard)
        location /dashboard {
            proxy_pass http://localhost:3000; # Puerto de Supabase Studio
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    
        # Otros servicios de Supabase (ejemplo)
        # location /auth {
        #     proxy_pass http://localhost:9999; # GoTrue (Authentication)
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        # }
    
        # location /storage {
        #     proxy_pass http://localhost:5000; # Storage (MinIO)
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        # }
    
        # location /realtime {
        #     proxy_pass http://localhost:54321; # Realtime
        #     proxy_set_header Host $host;
        #     proxy_set_header X-Real-IP $remote_addr;
        #     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #     proxy_set_header X-Forwarded-Proto $scheme;
        #     proxy_http_version 1.1;
        #     proxy_set_header Upgrade $http_upgrade;
        #     proxy_set_header Connection "upgrade";
        # }
    }

    Nota importante: Los puertos 8000 (Kong), 3000 (Studio), 9999 (GoTrue), 5000 (Storage), 54321 (Realtime) son puertos que Supabase proporciona *dentro* de la red Docker. Nginx se referirá a ellos como localhost:puerto, porque Nginx también se ejecuta en la máquina host del VPS. Asegúrese de que estos puertos no estén ocupados por otras aplicaciones en el host.

  3. Activación de la configuración y reinicio de Nginx:
    sudo ln -s /etc/nginx/sites-available/supabase.conf /etc/nginx/sites-enabled/
    sudo nginx -t # Verificación de la sintaxis
    sudo systemctl restart nginx
  4. Instalación de Certbot para HTTPS:
    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d supabase.yourdomain.com

    Siga las instrucciones de Certbot. Configurará automáticamente Nginx para HTTPS y agregará una redirección de HTTP a HTTPS.

Opción 2: Caddy (más fácil para principiantes)

Caddy es un servidor web moderno que gestiona automáticamente los certificados HTTPS con Let's Encrypt. Esto lo hace muy fácil de configurar.

  1. Instalación de Caddy:
    sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
    curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
    curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
    sudo apt update
    sudo apt install caddy -y
  2. Creación del archivo de configuración Caddyfile:
    sudo nano /etc/caddy/Caddyfile

    Reemplace el contenido existente con lo siguiente, especificando su dominio:

    supabase.yourdomain.com {
        reverse_proxy /dashboard/* localhost:3000
        reverse_proxy /auth/* localhost:9999
        reverse_proxy /storage/* localhost:5000
        reverse_proxy /realtime/* localhost:54321 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
        reverse_proxy /graphql/* localhost:8000
        reverse_proxy /rest/* localhost:8000
        reverse_proxy localhost:8000 {
            header_up Upgrade {http.request.header.Upgrade}
            header_up Connection {http.request.header.Connection}
        }
    }

    Caddy obtendrá y renovará automáticamente los certificados Let's Encrypt.

  3. Reinicio de Caddy:
    sudo systemctl reload caddy

Ahora su Supabase debería ser accesible en https://supabase.yourdomain.com, y el panel de control en https://supabase.yourdomain.com/dashboard.

Los proveedores de hosting, como Valebyte, ofrecen VPS de alto rendimiento que son ideales para este tipo de despliegues, garantizando la estabilidad y la velocidad de acceso a su instancia de Supabase. Para una comprensión más profunda de los diferentes tipos de hosting, puede consultar el artículo Contenedores vs VM vs Bare-metal: el panorama del hosting en 2026.

Garantía de fiabilidad: copias de seguridad y estrategias de recuperación de Supabase

Las copias de seguridad son la piedra angular de cualquier sistema de producción. Para Supabase self-hosted en un VPS, debe desarrollar una estrategia de copia de seguridad que cubra tanto la base de datos PostgreSQL como los archivos de configuración.

Copia de seguridad de la base de datos PostgreSQL

La base de datos PostgreSQL es el corazón de su proyecto Supabase. Su copia de seguridad regular es críticamente importante. Docker Compose crea un volumen separado para los datos de PostgreSQL, lo que facilita su gestión.

1. Copia de seguridad manual con pg_dump:

Puede realizar una copia de seguridad de la base de datos directamente desde el contenedor de PostgreSQL. Primero, encuentre el nombre del contenedor de PostgreSQL (generalmente supabase_db_1 o similar):

docker ps | grep postgres

Luego, ejecute el comando pg_dump. Reemplace <CONTAINER_NAME> con el nombre de su contenedor de PostgreSQL y <DATABASE_NAME> con el nombre de su base de datos (por defecto postgres o supabase, verifique en .env):

docker exec <CONTAINER_NAME> pg_dump -U postgres -Fc <DATABASE_NAME> > /path/to/backup/supabase_db_$(date +%Y%m%d_%H%M%S).bak

-U postgres: Especifica el usuario de PostgreSQL. -Fc: Crea un formato de archivo personalizado, que es el más flexible para la recuperación. /path/to/backup/: Especifique la ruta en el sistema host donde se guardará la copia de seguridad.

2. Copia de seguridad automática con Cron:

Para automatizar las copias de seguridad, use cron. Cree un script de copia de seguridad, por ejemplo, /usr/local/bin/supabase_backup.sh:

#!/bin/bash

# Ruta donde se guardarán las copias de seguridad
BACKUP_DIR="/var/backups/supabase_db"
# Nombre del contenedor PostgreSQL (verifique con docker ps)
DB_CONTAINER="supabase_db_1" # Ejemplo
# Nombre de la base de datos
DB_NAME="postgres" # Ejemplo, verifique en .env
# Usuario de la base de datos
DB_USER="postgres"

# Creamos el directorio para las copias de seguridad si no existe
mkdir -p $BACKUP_DIR

# Generamos el nombre del archivo de copia de seguridad con marca de tiempo
BACKUP_FILE="$BACKUP_DIR/supabase_db_$(date +%Y%m%d_%H%M%S).bak"

# Realizamos la copia de seguridad
docker exec $DB_CONTAINER pg_dump -U $DB_USER -Fc $DB_NAME > "$BACKUP_FILE"

# Verificamos el éxito de la copia de seguridad
if [ $? -eq 0 ]; then
    echo "Copia de seguridad de Supabase DB creada con éxito: $BACKUP_FILE"
else
    echo "¡Error al crear la copia de seguridad de Supabase DB!"
fi

# Eliminamos las copias de seguridad antiguas (por ejemplo, más de 7 días)
find $BACKUP_DIR -type f -name "supabase_db_*.bak" -mtime +7 -delete
echo "Copias de seguridad antiguas limpiadas."

Haga que el script sea ejecutable:

sudo chmod +x /usr/local/bin/supabase_backup.sh

Agregue una tarea a crontab (por ejemplo, para una copia de seguridad diaria a las 03:00 de la mañana):

sudo crontab -e

Agregue la línea:

0 3 * * * /usr/local/bin/supabase_backup.sh >> /var/log/supabase_backup.log 2>&1

Copia de seguridad de archivos de configuración

Guarde el archivo .env y el directorio supabase/docker, que contiene su configuración y scripts. Esto ayudará a restaurar rápidamente la configuración.

cp ~/supabase/.env /path/to/backup/supabase_env_$(date +%Y%m%d_%H%M%S).env

También considere la posibilidad de hacer una copia de seguridad de los volúmenes de Docker, especialmente si no utiliza MinIO con almacenamiento persistente fuera del contenedor.

Estrategias de recuperación

1. Recuperación de la base de datos:

Para recuperar una base de datos de un archivo .bak, primero detenga Supabase, luego cree una nueva base de datos o limpie la existente, y restaure los datos:

# Detener Supabase
cd ~/supabase
docker compose stop

# (Opcional) Eliminar los volúmenes de datos existentes para una instalación limpia
# docker compose down -v

# Iniciar solo el contenedor PostgreSQL
docker compose up -d db

# Encontrar el nombre del contenedor PostgreSQL
docker ps | grep postgres

# Restaurar la base de datos (reemplace <CONTAINER_NAME>, <DATABASE_NAME> y la ruta de la copia de seguridad)
# Si la base de datos no existe, pg_restore puede crearla, pero a veces es mejor crearla manualmente
docker exec -it <CONTAINER_NAME> psql -U postgres -c "DROP DATABASE IF EXISTS <DATABASE_NAME>;"
docker exec -it <CONTAINER_NAME> psql -U postgres -c "CREATE DATABASE <DATABASE_NAME>;"
docker exec -i <CONTAINER_NAME> pg_restore -U postgres -d <DATABASE_NAME> < /path/to/backup/supabase_db_LATEST.bak

# Iniciar todos los servicios de Supabase
docker compose up -d

2. Recuperación de todo el servidor:

En caso de un fallo total del VPS, necesitará un nuevo VPS. En él:

  1. Instale Docker, Docker Compose, Git.
  2. Clone el repositorio de Supabase.
  3. Copie su archivo .env guardado en el directorio ~/supabase/.
  4. Ejecute docker compose up -d.
  5. Restaure la base de datos desde la copia de seguridad más reciente, siguiendo los pasos anteriores.
  6. Configure el reverse proxy (Nginx/Caddy) y HTTPS.

Recomendaciones importantes para las copias de seguridad:

  • Guarde las copias de seguridad fuera del VPS: Nunca guarde la única copia de seguridad en el mismo servidor que los datos de producción. Utilice almacenamiento en la nube (S3, Backblaze B2) u otro VPS para almacenar las copias de seguridad.
  • Pruebe la recuperación: Pruebe regularmente el proceso de recuperación en un servidor de prueba separado para asegurarse de que las copias de seguridad funcionan.
  • Monitoreo: Configure el monitoreo del éxito de la ejecución de los scripts de copia de seguridad.

La gestión de su propio servidor requiere atención a los detalles, pero le da un control total, lo cual es una de las ventajas de un VPS self-managed.

Actualización de Supabase: cómo mantener su instalación al día

Mantener su instalación de Supabase self-hosted en un VPS actualizada es críticamente importante para la seguridad, la estabilidad y el acceso a nuevas funciones. Dado que Supabase se desarrolla activamente, las actualizaciones regulares son necesarias.

Principios básicos de la actualización de Supabase Docker

El proceso de actualización de Supabase, desplegado a través de Docker Compose, consta de varios pasos:

  1. Detención de los servicios actuales: Antes de actualizar el código, es necesario detener los contenedores en ejecución.
  2. Actualización del código del repositorio de Supabase: Obtención de los últimos cambios del repositorio oficial de GitHub.
  3. Actualización de las imágenes de Docker: Descarga de nuevas versiones de las imágenes de Docker para cada componente de Supabase.
  4. Reinicio de los servicios: Inicio de Supabase con las imágenes actualizadas.
  5. Migraciones de la base de datos: En algunos casos, pueden ser necesarias migraciones del esquema de la base de datos.

Proceso de actualización paso a paso

Ejecute los siguientes comandos en el directorio donde clonó el repositorio de Supabase (por ejemplo, ~/supabase):

cd ~/supabase

1. Verificación del estado actual (opcional):

Antes de actualizar, es útil verificar qué contenedores están en ejecución y qué versiones se utilizan:

docker compose ps

2. Detención de los servicios de Supabase:

Detenga todos los contenedores de Supabase en ejecución. Esto resultará en un breve tiempo de inactividad de su aplicación.

docker compose down

o

docker compose stop

docker compose down también eliminará los contenedores, pero conservará los volúmenes de datos, lo que es un enfoque más limpio antes de una actualización.

3. Actualización del repositorio de Supabase:

Obtenga los últimos cambios del repositorio de GitHub. Asegúrese de no tener cambios locales sin confirmar que puedan entrar en conflicto con la actualización.

git pull origin main

Si tenía cambios locales en archivos como docker-compose.yml (lo cual no se recomienda a menos que sepa lo que está haciendo), es posible que deba resolver conflictos.

4. Actualización de las imágenes de Docker:

Descargue las últimas versiones de todas las imágenes de Docker utilizadas por Supabase.

docker compose pull

Este comando descargará nuevas versiones de las imágenes, si están disponibles.

5. Aplicación de migraciones de la base de datos (si es necesario):

Después de actualizar el código y las imágenes, es posible que deba aplicar migraciones de la base de datos. Supabase generalmente incluye scripts de migración en sus actualizaciones.

docker compose up -d --build

El flag --build garantiza que se tengan en cuenta los cambios locales en el Dockerfile o el contexto de compilación, aunque para las actualizaciones estándar docker compose up -d suele ser suficiente.

Supabase iniciará automáticamente los contenedores y aplicará las migraciones de la base de datos necesarias. Si ocurren errores, verifique los logs del contenedor de PostgreSQL.

docker compose logs db

6. Verificación del estado después de la actualización:

Asegúrese de que todos los contenedores estén nuevamente en ejecución y funcionando correctamente:

docker compose ps

Verifique la disponibilidad de su panel de control de Supabase y la funcionalidad de su aplicación.

Recomendaciones importantes para la actualización:

  • Haga copias de seguridad: Siempre cree una copia de seguridad completa de la base de datos y los archivos de configuración antes de iniciar el proceso de actualización. Esta es su póliza de seguro en caso de problemas imprevistos.
  • Lea el changelog: Antes de actualizar, siempre consulte el changelog oficial de Supabase o el blog. Allí pueden indicarse cambios críticos que requieren acciones o atención adicionales.
  • Pruebe en staging: Si su proyecto es críticamente importante, primero pruebe el proceso de actualización en un entorno de staging que sea lo más parecido posible a la producción.
  • Planifique el tiempo de inactividad: La actualización casi siempre requiere un breve tiempo de inactividad de los servicios. Planifíquelo para un momento de mínima actividad de los usuarios.

Las actualizaciones regulares ayudan a mantener su Supabase en el servidor en un estado actual y seguro, garantizando el acceso a las últimas mejoras y correcciones. Para sistemas grandes y críticamente importantes, donde el tiempo de inactividad mínimo es una prioridad, se deben considerar estrategias de despliegue más complejas, como el despliegue azul-verde o canario, sin embargo, para la mayoría de las instalaciones de VPS, el enfoque descrito anteriormente es suficiente.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Configuración óptima de VPS para Supabase bajo diferentes cargas

La elección de la configuración de VPS para Supabase en un VPS depende directamente de la carga esperada de su aplicación. Recursos insuficientes llevarán a un rendimiento lento y fallos, mientras que recursos excesivos resultarán en gastos innecesarios. Valebyte ofrece una amplia gama de VPS que son ideales para alojar Supabase. Consideremos las configuraciones óptimas para diferentes escenarios.

Factores que influyen en la elección de la configuración

  • Número de usuarios activos: Cuantos más usuarios interactúen simultáneamente con su aplicación, mayor será la carga en la CPU y el servicio Realtime.
  • Volumen y complejidad de los datos: Bases de datos grandes y consultas SQL complejas requieren más RAM para el almacenamiento en caché y una CPU potente para el procesamiento.
  • Frecuencia de operaciones de lectura/escritura: Las operaciones intensivas con la base de datos y el almacenamiento de archivos requieren un subsistema de disco de alto rendimiento (NVMe SSD).
  • Uso de la funcionalidad Realtime: Las aplicaciones con chats, notificaciones o paneles en tiempo real utilizan activamente el servicio Realtime, consumiendo mucha RAM y CPU con un gran número de conexiones simultáneas.
  • Número de Edge Functions: Si utiliza activamente funciones serverless, también consumirán CPU y RAM.

Tabla: Recomendaciones de VPS para Supabase en Valebyte.com

Presentamos una tabla con las configuraciones de VPS recomendadas por Valebyte para varios escenarios de uso de Supabase, incluyendo precios aproximados.

Escenario de uso vCPU RAM (GB) Disco (NVMe SSD) Ancho de banda Costo aproximado/mes. Características
Desarrollo / Pruebas / Proyecto personal 2 4 50 GB 100 Mbps $10 - $15 Ideal para aprender Supabase, pequeños prototipos. No para producción.
Pequeña empresa / Startup (hasta 100 usuarios activos) 4 8 100 GB 200 Mbps $25 - $40 Adecuado para pequeñas aplicaciones de producción, sitios web de presentación, CRM con funcionalidad limitada.
Mediana empresa / Proyecto en crecimiento (100-500 usuarios activos) 6 16 200 GB 500 Mbps $50 - $80 Para aplicaciones con carga moderada, uso activo de Realtime, volumen medio de datos.
Gran proyecto / Servicio de alta carga (500+ usuarios activos) 8+ 32+ 500 GB+ 1 Gbps $100 - $200+ Para aplicaciones escalables, operaciones intensivas con la base de datos, grandes volúmenes de archivos. Posiblemente se requiera clúster de base de datos.
Trabajo intensivo con datos / Backend de ML 12+ 64+ 1 TB+ NVMe (alto IOPS) 1 Gbps+ $250+ Para plataformas analíticas, sistemas con aprendizaje automático que requieren acceso a datos ultrarrápido.

Recomendaciones adicionales para la optimización de VPS para Supabase

  1. Utilice NVMe SSD: Esto no es solo una recomendación, sino un requisito para un buen rendimiento de PostgreSQL. La diferencia con los SSD o HDD normales será colosal.
  2. Monitoreo de recursos: Instale herramientas de monitoreo (Netdata, Prometheus/Grafana) para rastrear el uso de CPU, RAM, E/S de disco y tráfico de red. Esto le ayudará a saber cuándo es el momento de escalar su VPS.
  3. Optimización de PostgreSQL: Después del despliegue, dedique tiempo a optimizar la configuración de PostgreSQL (postgresql.conf) para su volumen de RAM y carga. Los parámetros shared_buffers, work_mem, effective_cache_size son de gran importancia.
  4. Sistema de archivos: Para el volumen de datos de PostgreSQL, se recomienda utilizar el sistema de archivos ext4 o xfs.
  5. Red: Asegúrese de que su proveedor de VPS ofrezca un canal de comunicación estable y suficientemente amplio, especialmente si su aplicación utiliza activamente Realtime o transfiere archivos grandes.
  6. Seguridad: Además del firewall, considere el uso de claves SSH, actualizaciones regulares del SO y Docker, así como la autenticación de dos factores para el acceso al servidor.

La elección correcta y el monitoreo regular de la configuración del VPS permitirán que su instalación de Supabase funcione de manera estable y eficiente, proporcionando una respuesta rápida a sus usuarios y un funcionamiento fiable de la aplicación. Para aquellos que deseen profundizar en la infraestructura del servidor, el artículo ¿Qué es un servidor y un dedicado: Guía completa para principiantes? puede ser muy útil.

Conclusiones

La instalación y configuración de Supabase en un VPS es una solución potente para desarrolladores que buscan control total, flexibilidad y eficiencia económica en su backend. La elección de una configuración óptima de VPS con discos NVMe, una configuración cuidadosa de Docker Compose, la garantía de seguridad mediante un reverse proxy y HTTPS, así como las copias de seguridad y actualizaciones regulares, son factores clave para el éxito. Valebyte ofrece VPS de alto rendimiento, ideales para el despliegue de Supabase, proporcionando una base fiable para su proyecto.

¿Listo para elegir un servidor?

VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.

Empezar ahora →

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.