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é?
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?
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
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
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.