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

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Despliegue de Baserow

calendar_month Jul 29, 2026 schedule 20 min de lectura visibility 21 vistas
Развёртывание Baserow на VPS: self-hosted no-code база данных
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Despliegue de Baserow en un VPS: base de datos no-code autoalojada

TL;DR

En esta guía detallada, configuraremos y desplegaremos Baserow paso a paso —una potente base de datos no-code de código abierto— en su propio servidor privado virtual (VPS). Aprenderá a instalar Docker, configurar Baserow usando Docker Compose, asegurar el acceso a través de HTTPS con Caddy y configurar copias de seguridad automáticas, obteniendo control total sobre sus datos y aplicaciones.

  • Configuración de un VPS moderno con Ubuntu Server 24.04 LTS para máxima estabilidad y seguridad.
  • Instalación y configuración de Docker y Docker Compose para una gestión eficiente de aplicaciones en contenedores.
  • Despliegue de Baserow versión 1.25.x utilizando imágenes oficiales de Docker.
  • Configuración de acceso seguro a Baserow a través de HTTPS con obtención automática de certificados Let's Encrypt usando Caddy.
  • Implementación de una estrategia de copia de seguridad para la base de datos y los archivos de usuario de Baserow.
  • Obtención de control total sobre su plataforma no-code, garantizando privacidad y flexibilidad.

¿Qué configuramos y por qué?

Схема: Что мы настраиваем и зачем
Diagrama: ¿Qué configuramos y por qué?

En esta guía, nos centraremos en el despliegue de Baserow —una plataforma de código abierto potente y flexible para crear bases de datos no-code. Baserow permite a los usuarios crear y gestionar bases de datos relacionales sin escribir una sola línea de código, ofreciendo una interfaz intuitiva que se asemeja a las hojas de cálculo, pero con la funcionalidad de una base de datos completa. Es una solución ideal para equipos que necesitan estructurar datos rápidamente, automatizar flujos de trabajo y crear aplicaciones sencillas.

Al final, obtendrá una instancia de Baserow completamente funcional, accesible a través de su propio nombre de dominio con una conexión HTTPS segura. Podrá crear bases de datos, tablas, configurar campos, vistas, fórmulas e interfaces API, proporcionando acceso a su equipo o clientes. Todos los datos se almacenarán en su propio servidor, garantizando el máximo control y confidencialidad.

Alternativas: Cloud-managed vs. Self-hosted

En el mercado existen numerosas bases de datos no-code, como Airtable, NocoDB, SeaTable y Google Sheets con extensiones. Se dividen en dos categorías principales:

  • Soluciones Cloud-managed: Son plataformas SaaS donde el proveedor gestiona toda la infraestructura. Son convenientes, no requieren conocimientos técnicos para el despliegue, pero usted depende del proveedor en cuanto a seguridad, escalabilidad, precios y propiedad de los datos. Los ejemplos incluyen Airtable, Smartsheet.
  • Soluciones Self-hosted: Como Baserow, le permiten instalar el software en su propio servidor (VPS o dedicado). Esto le da control total sobre los datos, la seguridad, el rendimiento y la personalización. No está atado a la política de precios de un solo proveedor y puede adaptar el sistema a sus necesidades.

Elegimos Baserow autoalojado en un VPS por varias razones:

  • Control total sobre los datos: Sus datos permanecen en su servidor, lo cual es crucial para proyectos confidenciales, el cumplimiento del GDPR y otras regulaciones.
  • Eficiencia económica: Con un uso moderado y una configuración adecuada, mantener un VPS suele ser más económico que las suscripciones a servicios cloud-managed, especialmente a medida que crece el equipo o el volumen de datos.
  • Flexibilidad y personalización: Posibilidad de ajustar finamente el servidor y Baserow a requisitos específicos, integración con otros servicios autoalojados.
  • Independencia: No depende de cambios en la política, precios o funcionalidad de un proveedor externo.

¿Qué configuración de VPS se necesita para esta tarea?

Схема: Какой VPS-конфиг нужен под эту задачу
Diagrama: ¿Qué configuración de VPS se necesita para esta tarea?

Los requisitos de VPS para Baserow pueden variar mucho dependiendo del número de usuarios, el volumen de datos, la complejidad de las bases y la intensidad del uso de la API. Sin embargo, para un despliegue inicial y equipos pequeños (hasta 5-10 usuarios activos), se pueden considerar las siguientes características mínimas y recomendadas.

Requisitos mínimos (para pruebas o equipos muy pequeños)

  • CPU: 1-2 núcleos (Intel Xeon E3/E5 o AMD EPYC). Baserow es una aplicación Python que puede ser bastante exigente con la CPU en consultas complejas.
  • RAM: 2 GB. Baserow, PostgreSQL y Redis juntos pueden consumir una cantidad significativa de RAM. 2 GB es el mínimo absoluto, con el cual el sistema puede funcionar lentamente o experimentar falta de memoria durante las cargas máximas.
  • Disco: 40 GB SSD. El SSD es críticamente importante para el rendimiento de la base de datos. 40 GB serán suficientes para el sistema operativo, las imágenes de Docker y un pequeño volumen de datos.
  • Red: 100 Mbit/s. Para la mayoría de las tareas, esto es suficiente.

Plan de VPS recomendado para equipos pequeños y medianos (hasta 20-30 usuarios activos)

Para un funcionamiento cómodo y la posibilidad de crecimiento, se recomiendan las siguientes características:

  • CPU: 2-4 núcleos (Intel Xeon o AMD EPYC modernos).
  • RAM: 4-8 GB. Esto garantizará un funcionamiento estable de Baserow, PostgreSQL, Redis y el sistema operativo incluso con un uso activo.
  • Disco: 80-160 GB SSD. Esto proporcionará suficiente espacio para el SO, todos los componentes de Baserow, un volumen significativo de datos y copias de seguridad.
  • Red: 1 Gbit/s. Un alto ancho de banda garantizará una carga rápida de datos y una interfaz receptiva.

Puede encontrar un VPS con las características indicadas, para alquilar un servidor que cumpla con estos requisitos.

Cuándo se necesita un servidor dedicado y no un VPS

Un servidor dedicado (dedicated server) se vuelve necesario cuando:

  • Muy alta carga: Miles de usuarios activos, enormes volúmenes de datos (terabytes) o operaciones muy intensivas con la base de datos.
  • Requisitos estrictos de rendimiento: Se necesita un rendimiento máximo y predecible sin la "vecindad" de otros clientes en el mismo servidor físico.
  • Requisitos de hardware específicos: Se necesitan configuraciones RAID especiales, GPU especializadas u otros componentes de hardware no disponibles en un VPS.
  • Cumplimiento de requisitos regulatorios: Algunas industrias requieren una separación física completa y control sobre el hardware.

Para la mayoría de las tareas de Baserow en las etapas iniciales y medias, un VPS será más que suficiente y económicamente más ventajoso.

Ubicación: qué influye

La elección de la ubicación del VPS es importante por varias razones:

  • Latencia (Latency): Cuanto más cerca esté el servidor de su audiencia objetivo o de usted, menor será la latencia y más rápida la respuesta. Si su equipo está en Europa, elija un centro de datos europeo.
  • Legislación de datos: Diferentes países tienen diferentes leyes de privacidad de datos (por ejemplo, GDPR en la UE). La elección de la ubicación puede afectar los aspectos legales del almacenamiento y procesamiento de la información.
  • Disponibilidad de red: Algunas regiones pueden tener mejor conectividad con ciertas partes del mundo.

Siempre elija una ubicación que esté geográficamente más cerca de los usuarios principales de su instancia de Baserow.

Preparación del servidor

Схема: Подготовка сервера
Diagrama: Preparación del servidor

Después de obtener acceso a su nuevo VPS con el sistema operativo Ubuntu Server 24.04 LTS, lo primero que debe hacer es realizar una serie de configuraciones básicas para mejorar la seguridad y la facilidad de gestión. Todos los comandos se ejecutan como usuario root o usando sudo.

1. Conexión al servidor por SSH

Use su cliente SSH para conectarse:


ssh root@ВАШ_IP_АДРЕС_VPS

Introduzca la contraseña proporcionada por su proveedor.

2. Actualización del sistema

Asegúrese de que todos los paquetes del servidor estén actualizados a las últimas versiones:


sudo apt update         # Actualizar la lista de paquetes
sudo apt upgrade -y     # Actualizar los paquetes instalados sin pedir confirmación
sudo apt autoremove -y  # Eliminar dependencias innecesarias

3. Creación de un nuevo usuario con permisos sudo

Trabajar como root no es seguro. Crearemos un nuevo usuario y le daremos permisos sudo:


sudo adduser baserow_admin      # Crear un nuevo usuario
sudo usermod -aG sudo baserow_admin # Añadir el usuario al grupo sudo

Siga las instrucciones para establecer la contraseña y la información del usuario. Después, cierre la sesión de root e inicie sesión como baserow_admin:


exit
ssh baserow_admin@ВАШ_IP_АДРЕС_VPS

4. Configuración de claves SSH (recomendado)

Para mejorar la seguridad y la comodidad, configure la autenticación por claves SSH. Si no tiene una clave SSH, genérela en su máquina local:


ssh-keygen -t rsa -b 4096 # En su máquina local

Luego, copie la clave pública al servidor:


ssh-copy-id baserow_admin@ВАШ_IP_АДРЕС_VPS # En su máquina local

Una vez que se haya asegurado de que puede iniciar sesión con la clave, desactive la autenticación por contraseña para root y el nuevo usuario en el archivo /etc/ssh/sshd_config:


sudo nano /etc/ssh/sshd_config

Encuentre y modifique/añada las siguientes líneas:


# Desactivar el inicio de sesión para root por contraseña (si está habilitado)
PermitRootLogin prohibit-password

# Desactivar el inicio de sesión por contraseña para todos los usuarios (después de configurar las claves SSH)
PasswordAuthentication no

Reinicie el servicio SSH:


sudo systemctl restart sshd

5. Configuración del Firewall (UFW)

Habilite el firewall básico UFW para proteger el servidor. Permita solo los puertos necesarios:


sudo ufw allow OpenSSH       # Permitir SSH (puerto 22)
sudo ufw allow http          # Permitir HTTP (puerto 80)
sudo ufw allow https         # Permitir HTTPS (puerto 443)
sudo ufw enable              # Habilitar UFW
sudo ufw status verbose      # Verificar el estado del firewall

Confirme la habilitación del firewall presionando y.

6. Instalación de Fail2Ban

Fail2Ban protege contra ataques de fuerza bruta, bloqueando las direcciones IP desde las cuales se producen numerosos intentos fallidos de inicio de sesión:


sudo apt install fail2ban -y    # Instalar Fail2Ban
sudo systemctl enable fail2ban  # Habilitar el inicio automático
sudo systemctl start fail2ban   # Iniciar el servicio

Para una configuración básica, puede crear el archivo /etc/fail2ban/jail.local:


sudo nano /etc/fail2ban/jail.local

Y añada el siguiente contenido:


[DEFAULT]
bantime = 10m
findtime = 10m
maxretry = 5
banaction = ufw

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

Reinicie Fail2Ban para aplicar los cambios:


sudo systemctl restart fail2ban

Ahora su servidor tiene protección básica y está listo para la instalación de Baserow.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Baserow se desplegará utilizando Docker y Docker Compose, que es el enfoque recomendado para la mayoría de las aplicaciones autoalojadas. Esto garantiza aislamiento, facilidad de gestión de dependencias y escalabilidad sencilla.

1. Instalación de Docker Engine

Primero, instalaremos Docker. Estos comandos son válidos para Ubuntu 24.04 LTS y aseguran la instalación de la última versión estable de Docker CE (asumimos Docker Engine 25.x o posterior para 2026).


# Eliminación de versiones antiguas de Docker (si existen)
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg -y; done

# Instalación de paquetes necesarios para trabajar con repositorios
sudo apt update
sudo apt install ca-certificates curl gnupg -y

# Adición de la clave GPG oficial de Docker
sudo install -m 0755 -d /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 a Apt
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualización de la lista de paquetes con el nuevo repositorio
sudo apt update

# Instalación de Docker Engine, Docker CLI y Containerd
sudo apt install docker-ce docker-ce-cli containerd.io -y

Después de la instalación, añada su usuario al grupo docker para ejecutar comandos Docker sin sudo (requerirá un reinicio o volver a iniciar sesión):


sudo usermod -aG docker baserow_admin # Adición del usuario al grupo docker
newgrp docker                          # Aplicación de cambios sin reiniciar

Verifique que Docker esté instalado correctamente:


docker run hello-world # Ejecución de un contenedor de prueba

2. Instalación de Docker Compose

Docker Compose se instala habitualmente como un plugin de Docker (versión 2.x). Para 2026, estará integrado en el Docker CLI.


sudo apt install docker-compose-plugin -y # Instalación de Docker Compose como plugin

Verifique la versión de Docker Compose:


docker compose version # Verificación de la versión de Docker Compose

3. Descarga de la configuración de Baserow Docker Compose

Baserow proporciona archivos de configuración oficiales para Docker Compose. Crearemos un directorio para Baserow y los descargaremos allí.


mkdir baserow && cd baserow # Creación del directorio y navegación al mismo
wget https://gitlab.com/baserow/baserow/-/raw/develop/deploy/docker-compose.yml # Descarga de docker-compose.yml (válido para Baserow 1.25.x)
wget https://gitlab.com/baserow/baserow/-/raw/develop/deploy/.env # Descarga del archivo .env

Asegúrese de descargar los archivos actualizados del repositorio oficial de Baserow. La versión develop a menudo refleja los últimos cambios estables, pero para producción se pueden usar enlaces a versiones específicas.

4. Configuración del archivo .env

El archivo `.env` contiene variables de entorno para la configuración de Baserow, incluyendo secretos y ajustes de dominio. Ábralo para editar:


nano .env # Edición del archivo de variables de entorno

Deberá modificar los siguientes parámetros (ejemplos):

  • BASEROW_PUBLIC_URL: Este debe ser su dominio a través del cual Baserow será accesible (por ejemplo, https://baserow.yourdomain.com).
  • DATABASE_PASSWORD: Genere una contraseña compleja para la base de datos PostgreSQL.
  • SECRET_KEY: Genere una clave secreta compleja.

Ejemplo de cambios en .env:


# ... otras variables ...

BASEROW_PUBLIC_URL=https://baserow.yourdomain.com

# Configuración de la base de datos PostgreSQL
# ...
DATABASE_PASSWORD=YOUR_STRONG_DATABASE_PASSWORD_HERE
# ...

# Clave secreta de Baserow
SECRET_KEY=YOUR_VERY_LONG_AND_COMPLEX_SECRET_KEY_HERE

# ...

Puede generar contraseñas y claves secretas robustas, por ejemplo, utilizando openssl rand -hex 32 o generadores en línea.

5. Inicio de Baserow

Después de configurar el archivo .env, puede iniciar Baserow. Docker Compose descargará automáticamente las imágenes necesarias e iniciará todos los servicios.


docker compose up -d # Inicio de todos los servicios de Baserow en segundo plano

Este comando descargará las imágenes de Docker (PostgreSQL, Redis, Baserow Web, Baserow Backend, Caddy), creará los contenedores y los iniciará. El proceso puede tardar varios minutos dependiendo de la velocidad de su conexión a internet.

6. Verificación del estado de los contenedores

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


docker compose ps # Verificación del estado de los contenedores en ejecución

Debería ver el estado Up para todos los servicios (baserow_backend, baserow_web, caddy, database, redis).

También puede ver los registros de un servicio específico, por ejemplo, el backend:


docker compose logs baserow_backend # Visualización de los registros del backend de Baserow

En este punto, Baserow está en funcionamiento, pero por ahora solo es accesible a través de la dirección IP del servidor y, posiblemente, sin HTTPS. El siguiente paso es configurar el acceso seguro a través de un dominio.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de iniciar Baserow con Docker Compose con éxito, es necesario realizar la configuración final para garantizar un acceso seguro y conveniente. Esto incluye la configuración del nombre de dominio, HTTPS y parámetros adicionales.

1. Configuración de DNS

Para acceder a Baserow por nombre de dominio (por ejemplo, baserow.yourdomain.com), debe crear un registro A en su registrador de nombres de dominio. Especifique su dominio (o subdominio) y la dirección IP de su VPS.


# Ejemplo de registro en su registrador de dominio
Type: A
Host: baserow
Value: SU_DIRECCIÓN_IP_VPS

Espere a que se actualicen los registros DNS (puede tardar desde unos minutos hasta varias horas).

2. Configuración de Caddy para HTTPS

Baserow Docker Compose incluye por defecto el servicio Caddy, que actúa como proxy inverso y gestiona automáticamente los certificados Let's Encrypt para HTTPS. La configuración se realiza a través del archivo Caddyfile.

Por defecto, el archivo Caddyfile ya está configurado en el directorio baserow/caddy. Asegúrese de que en su docker-compose.yml el archivo Caddyfile esté montado en el contenedor Caddy:


# Contenido de docker-compose.yml (fragmento para Caddy)
# ...
  caddy:
    image: caddy:2.7.6-alpine # Versión actual de Caddy para 2026
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - baserow_caddy_data:/data
      - baserow_caddy_config:/config
    depends_on:
      - baserow_web
# ...

Cree el directorio caddy y el archivo Caddyfile dentro de él, si no existen:


mkdir caddy
nano caddy/Caddyfile

Añada o asegúrese de que caddy/Caddyfile contenga lo siguiente (reemplace baserow.yourdomain.com por su dominio):


{
  # Reemplace con su email para notificaciones de Let's Encrypt
  email [email protected]
}

baserow.yourdomain.com {
  reverse_proxy baserow_web:80
}

Después de editar el archivo Caddyfile, si lo ha modificado, es necesario reiniciar solo el servicio Caddy:


docker compose restart caddy # Reinicio del contenedor Caddy

Caddy detectará automáticamente el nuevo dominio, solicitará un certificado Let's Encrypt y configurará HTTPS. Si encuentra problemas, revise los registros de Caddy:


docker compose logs caddy # Visualización de los registros de Caddy

3. Verificación de la operatividad

Después de configurar DNS y Caddy, verifique la disponibilidad de Baserow:

  • Disponibilidad del sitio: Abra su dominio (https://baserow.yourdomain.com) en el navegador. Debería ver la página de registro/inicio de sesión de Baserow.
  • Verificación HTTPS: Asegúrese de que la conexión esté protegida (candado verde en la barra de direcciones).
  • Ping del dominio: Verifique que el dominio se resuelva a la dirección IP correcta.
  • 
    ping baserow.yourdomain.com
    
  • Comprobación de salud de los contenedores: Asegúrese de que todos los contenedores Docker funcionen sin errores.
  • 
    docker compose ps
    docker compose logs
    

Si Baserow se carga, puede registrar al primer usuario (administrador) y comenzar a trabajar con la plataforma.

4. Configuraciones adicionales en .env (si es necesario)

El archivo .env contiene muchas otras configuraciones que pueden ser útiles en el futuro:

  • BASEROW_EMAIL_SMTP_HOST, BASEROW_EMAIL_SMTP_PORT, etc.: Configuración del servidor SMTP para el envío de correo electrónico (notificaciones, restablecimiento de contraseña).
  • BASEROW_PUBLIC_BACKEND_URL: Si utiliza un backend separado, diferente del dominio principal.
  • MEDIA_ROOT: Ruta para almacenar archivos de usuario. Por defecto, es un volumen de Docker.

Consulte siempre la documentación oficial de Baserow para obtener una lista completa y la descripción de todas las variables de entorno.

Importante: Nunca almacene datos confidenciales (contraseñas, claves API) directamente en el código o en archivos de acceso público. El archivo .env debe estar protegido y no debe incluirse en sistemas de control de versiones.

Copias de seguridad y mantenimiento

Esquema: Copias de seguridad y mantenimiento
Esquema: Copias de seguridad y mantenimiento

Las copias de seguridad regulares y el mantenimiento oportuno son críticos para cualquier sistema en producción. Esto garantiza la seguridad de sus datos y la estabilidad del funcionamiento de Baserow.

1. Qué respaldar

Para Baserow, es necesario respaldar los siguientes componentes:

  • Base de datos PostgreSQL: Contiene todos los datos estructurados creados en Baserow. Este es el componente más importante.
  • Archivos de usuario (medios): Todos los archivos subidos por los usuarios a Baserow (imágenes, documentos, etc.). Se almacenan en el volumen de Docker asociado al servicio baserow_backend.
  • Archivos de configuración: docker-compose.yml y .env. Contienen la configuración de despliegue y las claves secretas necesarias para restaurar el sistema.

2. Script simple de copia de seguridad automática

Crearemos un script simple para la copia de seguridad automática. Este script volcará la base de datos, archivará los archivos multimedia y guardará los archivos de configuración. Se asume que usted se encuentra en el directorio ~/baserow.


mkdir -p ~/baserow_backups # Creación del directorio para las copias de seguridad
nano ~/baserow_backups/backup_baserow.sh

Agregue el siguiente contenido al archivo backup_baserow.sh. Reemplace YOUR_DB_USER y YOUR_DB_PASSWORD con los valores de su archivo .env:


#!/bin/bash

# Configuración
BACKUP_DIR="/home/baserow_admin/baserow_backups" # Directorio para almacenar las copias de seguridad
BASEROW_DIR="/home/baserow_admin/baserow"       # Directorio donde se encuentra docker-compose.yml
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# Variables de .env (necesarias para pg_dump)
# Se pueden leer de .env o establecer manualmente
# Ejemplo de lectura de .env (requiere jq, que se puede instalar: sudo apt install jq -y)
# source "$BASEROW_DIR/.env" # Si .env es simple, sin caracteres especiales

# O establecer manualmente si .env tiene caracteres complejos o no se desea parsear
DB_NAME="baserow"
DB_USER="baserow"
DB_PASSWORD="YOUR_STRONG_DATABASE_PASSWORD_HERE" # Reemplace con la contraseña real de .env

# 1. Copia de seguridad de la base de datos PostgreSQL
echo "Dumping PostgreSQL database..."
docker compose -f "$BASEROW_DIR/docker-compose.yml" exec -T database pg_dump -U "$DB_USER" -d "$DB_NAME" > "$BACKUP_DIR/baserow_db_${TIMESTAMP}.sql"
if [ $? -eq 0 ]; then
    echo "Volcado de base de datos exitoso: $BACKUP_DIR/baserow_db_${TIMESTAMP}.sql"
else
    echo "¡Volcado de base de datos FALLIDO!"
    exit 1
fi

# 2. Copia de seguridad de archivos multimedia (volumen Docker)
echo "Archivando archivos multimedia de Baserow..."
# Obtenemos el nombre del volumen para los archivos multimedia
MEDIA_VOLUME=$(docker volume ls -q | grep baserow_data) # Se asume que el nombre del volumen contiene 'baserow_data'
if [ -z "$MEDIA_VOLUME" ]; then
    echo "No se pudo encontrar el volumen de medios de Baserow. Omitiendo la copia de seguridad de medios."
else
    # Creamos un contenedor temporal para copiar datos
    docker run --rm -v "$MEDIA_VOLUME":/data -v "$BACKUP_DIR":/backup_dest alpine tar -czvf "/backup_dest/baserow_media_${TIMESTAMP}.tar.gz" -C /data .
    if [ $? -eq 0 ]; then
        echo "Archivo de archivos multimedia exitoso: $BACKUP_DIR/baserow_media_${TIMESTAMP}.tar.gz"
    else
        echo "¡Archivo de archivos multimedia FALLIDO!"
    fi
fi

# 3. Copia de archivos de configuración
echo "Copiando archivos de configuración..."
cp "$BASEROW_DIR/docker-compose.yml" "$BACKUP_DIR/docker-compose_${TIMESTAMP}.yml"
cp "$BASEROW_DIR/.env" "$BACKUP_DIR/.env_${TIMESTAMP}"
echo "Archivos de configuración copiados."

# Eliminación de copias de seguridad antiguas (por ejemplo, más de 7 días)
echo "Eliminando copias de seguridad antiguas..."
find "$BACKUP_DIR" -type f -name "baserow_db_*.sql" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name "baserow_media_*.tar.gz" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name "docker-compose_*.yml" -mtime +7 -delete
find "$BACKUP_DIR" -type f -name ".env_*" -mtime +7 -delete
echo "Copias de seguridad antiguas eliminadas."

echo "Copia de seguridad de Baserow completada en $TIMESTAMP"

Haga que el script sea ejecutable:


chmod +x ~/baserow_backups/backup_baserow.sh # Hacemos el script ejecutable

3. Programación de copias de seguridad con Cron

Agregue el script a Cron para su ejecución diaria (por ejemplo, a las 3:00 de la madrugada):


crontab -e # Abrir crontab para editar

Agregue la siguiente línea al final del archivo (seleccione el editor nano si se le pregunta):


0 3 * * * /home/baserow_admin/baserow_backups/backup_baserow.sh >> /var/log/baserow_backup.log 2>&1

Esta línea significa: a las 3:00 de la madrugada, cada día, ejecutar el script y redirigir toda la salida al archivo de registro /var/log/baserow_backup.log.

4. Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que los datos de producción es extremadamente arriesgado. Si el servidor falla, perderá tanto los datos como las copias de seguridad. Se recomienda utilizar:

  • Almacenamiento externo compatible con S3: Servicios como AWS S3, Backblaze B2, DigitalOcean Spaces. Se pueden usar utilidades como rclone o s3cmd para la sincronización automática de las copias de seguridad locales con S3.
  • VPS separado: Un VPS económico en otra ubicación, donde se pueden copiar las copias de seguridad por SSH usando rsync.
  • Almacenamiento en red (NAS): Si tiene su propia infraestructura.

Extienda el script de copia de seguridad añadiendo un paso para copiar los archivos a un almacenamiento remoto.

5. Actualizaciones: Rolling vs. Ventana de mantenimiento

Las actualizaciones regulares de Baserow y del software base son importantes para la seguridad y para obtener nuevas funciones.

  • Actualización de Baserow:

    Para actualizar Baserow a una nueva versión (por ejemplo, de 1.24.x a 1.25.x), siga los siguientes pasos:

    1. ¡Realice una copia de seguridad completa! Este es el paso más importante antes de cualquier actualización.
    2. Detenga Baserow:
      
      cd ~/baserow
      docker compose down
                          
    3. Descargue las nuevas versiones de los archivos docker-compose.yml y .env (o compare y actualice los actuales):
      
      wget -O docker-compose.yml https://gitlab.com/baserow/baserow/-/raw/develop/deploy/docker-compose.yml
      # Verifique .env en busca de nuevas variables, si aparecieron en la nueva versión de Baserow
                          
    4. Inicie Baserow con las imágenes actualizadas:
      
      docker compose pull # Descarga de nuevas imágenes
      docker compose up -d # Inicio con nuevas imágenes y migración de la DB, si es necesario
                          
    5. Verifique los registros y la operatividad.

    Esto requerirá una breve ventana de mantenimiento (detención del servicio), ya que la base de datos podría requerir migración. Siempre lea la documentación oficial de actualización de Baserow para la versión específica.

  • Actualización del SO y Docker:

    Actualice regularmente el sistema operativo y Docker Engine:

    
    sudo apt update && sudo apt upgrade -y
    sudo systemctl reboot # Reinicio para aplicar actualizaciones del kernel
                

    Las actualizaciones de Docker también pueden requerir el reinicio de los contenedores o incluso de todo el servidor. Planifique estas operaciones durante períodos de baja actividad.

Solución de problemas + Preguntas frecuentes

Incluso con el enfoque más cuidadoso, pueden surgir problemas. Aquí cubriremos escenarios y preguntas típicas.

El contenedor de Baserow no se inicia o se reinicia constantemente. ¿Qué hacer?

Qué verificar: En primer lugar, revise los registros del contenedor problemático. Por ejemplo, para el backend: docker compose logs baserow_backend. Preste atención a los mensajes de error. Las causas frecuentes son: falta de memoria, variables de entorno incorrectas en .env (especialmente DATABASE_URL, SECRET_KEY, BASEROW_PUBLIC_URL), conflictos de puertos, imágenes o volúmenes de Docker dañados.

Cómo solucionar: Asegúrese de que el VPS tenga suficiente RAM. Verifique la sintaxis y los valores en .env. Si sospecha que los volúmenes están dañados, intente detener Baserow (docker compose down) y, como medida extrema, elimine los volúmenes (docker volume rm baserow_data baserow_caddy_data baserow_caddy_config), y luego inicie de nuevo (¡perdiendo datos si no están respaldados!). A veces ayuda recrear completamente las imágenes: docker compose build --no-cache && docker compose up -d.

No puedo acceder a Baserow por el nombre de dominio, o HTTPS no funciona.

Qué verificar: Asegúrese de que el registro DNS de su dominio (por ejemplo, baserow.yourdomain.com) apunte a la dirección IP correcta de su VPS. Use ping su.dominio o dig su.dominio. Verifique que los puertos 80 y 443 estén abiertos en su VPS (sudo ufw status). Revise los registros de Caddy: docker compose logs caddy en busca de errores al obtener el certificado Let's Encrypt. Asegúrese de que BASEROW_PUBLIC_URL en .env y el dominio en caddy/Caddyfile coincidan.

Cómo solucionar: Corrija el registro DNS. Abra los puertos 80 y 443 en UFW. Si Caddy no puede obtener el certificado, es posible que haya un problema con la resolución DNS, o que el dominio no apunte a su servidor. Asegúrese de que el email en Caddyfile sea correcto.

Baserow funciona muy lento.

Qué verificar: Use htop o top en el VPS para verificar la carga de la CPU y el uso de RAM. La lentitud a menudo está relacionada con la falta de recursos. También revise los registros de Baserow en busca de errores repetitivos que puedan ralentizar el funcionamiento.

Cómo solucionar: Si falta RAM, considere aumentar la cantidad de memoria del VPS. Si la CPU está constantemente cargada, es posible que se necesiten más núcleos. Optimice las consultas en Baserow, evite tablas muy grandes con muchas relaciones y fórmulas complejas si el rendimiento es crítico. Asegúrese de que el subsistema de disco utilice SSD.

¿Qué configuración mínima de VPS es adecuada para Baserow?

Respuesta: Para pruebas o un equipo muy pequeño (1-2 usuarios), la configuración mínima es de 2 núcleos de CPU, 2 GB de RAM y 40 GB de SSD. Sin embargo, para un funcionamiento estable y cómodo con un equipo pequeño (hasta 10-15 personas), se recomienda al menos 2-4 núcleos de CPU, 4 GB de RAM y 80 GB de SSD. Un disco SSD es obligatorio para un buen rendimiento de la base de datos.

¿Qué elegir: VPS o dedicado para esta tarea?

Respuesta: Para la mayoría de los escenarios de uso de Baserow (proyectos personales, equipos pequeños y medianos), un VPS es la elección óptima. Ofrece suficiente rendimiento, flexibilidad y rentabilidad. Un servidor dedicado solo es necesario para cargas muy altas (cientos de usuarios activos, terabytes de datos), requisitos de hardware específicos o normas regulatorias estrictas que exigen un control total sobre el equipo físico. Comience con un VPS y escale a un dedicado si surge una necesidad real.

¿Cómo restablecer la contraseña de administrador de Baserow si la olvidé?

Qué verificar: Si ha configurado SMTP, puede usar la función "Olvidé mi contraseña" en la página de inicio de sesión. Si SMTP no está configurado, deberá restablecer la contraseña a través de la consola de Docker.

Cómo solucionar: Conéctese al servidor por SSH, vaya al directorio de Baserow (~/baserow). Luego, ejecute el comando para restablecer la contraseña del usuario con el correo electrónico especificado:


docker compose exec baserow_backend python3 manage.py reset_user_password --email [email protected]

Este comando generará una contraseña temporal que podrá usar para iniciar sesión y luego cambiarla en la interfaz de Baserow.

Se ha agotado el espacio en el disco del VPS.

Qué verificar: Use df -h para verificar el uso total del disco y du -sh /var/lib/docker/volumes/* para verificar los tamaños de los volúmenes de Docker. A menudo, el espacio es ocupado por imágenes de Docker antiguas, caché o registros.

Cómo solucionar: Limpie los objetos Docker antiguos: docker system prune -a (con precaución, elimina todos los contenedores detenidos, redes no utilizadas, imágenes y volúmenes). Elimine regularmente las copias de seguridad antiguas, especialmente las locales. Considere aumentar el espacio en disco del VPS o transferir las copias de seguridad a un almacenamiento externo.

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

¡Felicidades! Ha desplegado Baserow con éxito en su VPS, configurado acceso seguro a través de HTTPS e implementado una estrategia básica de copia de seguridad. Ahora tiene una base de datos no-code potente, flexible y totalmente controlada, lista para ser utilizada por su equipo o para sus proyectos personales. Ha obtenido control total sobre su infraestructura y datos, lo cual es una ventaja clave de las soluciones autoalojadas.

Aquí hay algunos pasos para seguir adelante:

  • Monitorización: Configure un sistema de monitorización (por ejemplo, Prometheus + Grafana) para rastrear el estado de su VPS y el rendimiento de Baserow. Esto ayudará a identificar problemas de antemano.
  • Escalado: A medida que aumente el número de usuarios o el volumen de datos, considere aumentar los recursos del VPS (CPU, RAM, disco). Para cargas muy grandes, Baserow soporta escalado horizontal, permitiendo ejecutar múltiples instancias de backend y frontend.
  • Integraciones: Utilice la potente API de Baserow para integrarse con sus otras aplicaciones, scripts o servicios externos, automatizando flujos de trabajo y ampliando la funcionalidad.
  • Seguridad adicional: Considere configurar una VPN para acceder al panel de administración, reglas de firewall más complejas o el uso de un sistema de detección de intrusiones.

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Despliegue de Baserow en VPS: base de datos self-hosted
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.