NocoDB Docker Compose es la solución definitiva para crear bases de datos sin código de manera self-hosted. En esta guía completa, aprenderás a desplegar NocoDB de manera profesional, configurar PostgreSQL como backend, y obtener una alternativa gratuita y open-source a Airtable con control total sobre tus datos.

¿Qué es NocoDB?

NocoDB es una plataforma no-code open-source que transforma cualquier base de datos relacional (MySQL, PostgreSQL, SQLite, MSSQL) en una interfaz tipo spreadsheet similar a Airtable. Con más de 61,000 estrellas en GitHub, se ha consolidado como la alternativa líder a Airtable para quienes buscan control total sobre sus datos y sin costos de suscripción.

La principal ventaja de NocoDB frente a Airtable es que puedes self-hostear toda la plataforma en tu propio servidor, evitando vendor lock-in y manteniendo la privacidad de tu información sensible. Además, no tiene límites artificiales de registros ni te obliga a pagar planes enterprise para funcionalidades avanzadas.

Características principales de NocoDB

  • Múltiples vistas: Grid (spreadsheet), Gallery, Form, Kanban, Calendar, y Timeline para visualizar tus datos de diferentes formas
  • API REST automática: Cada tabla genera automáticamente endpoints REST para integrar con otras aplicaciones
  • Permisos granulares: Control de acceso basado en roles sin pagar planes premium
  • Fórmulas y automatizaciones: Crea cálculos complejos y workflows automatizados
  • Integraciones: Conecta con Slack, Discord, AWS S3, Google Cloud Storage, Minio y más
  • Compartir formularios: Genera formularios públicos para recolectar datos desde el exterior
  • Exportación e importación: Migra datos fácilmente desde CSV, Excel o Airtable

NocoDB vs Airtable: Comparativa 2026

Mientras que Airtable cobra $54,000 al año para un equipo de 100 personas en su plan Business, NocoDB Docker Compose es completamente gratuito para instalaciones self-hosted. Esta diferencia de costos es abismal y convierte a NocoDB en la opción ideal para startups, PyMEs y equipos que necesitan gestionar grandes volúmenes de datos sin romper el presupuesto.

Con NocoDB Docker Compose, puedes gestionar millones de filas de datos sin degradación de rendimiento, ya que utiliza bases de datos SQL profesionales como PostgreSQL en lugar de una base de datos propietaria limitada. Esto te da la flexibilidad de escalar horizontalmente cuando sea necesario.

Ventajas de NocoDB sobre Airtable

  • Costo cero: Sin límites de registros, colaboradores o vistas
  • Control total: Tus datos permanecen en tu infraestructura
  • Sin vendor lock-in: Puedes migrar o exportar en cualquier momento
  • Permisos avanzados gratis: Airtable cobra extra por permisos a nivel de campo
  • API sin límites: Airtable tiene rate limits estrictos en su API
  • Compatibilidad SQL: Puedes ejecutar queries SQL directamente si lo necesitas

Casos de Uso de NocoDB

Una instalación de NocoDB Docker Compose es extremadamente versátil y puede adaptarse a múltiples escenarios empresariales. Aquí algunos casos de uso reales implementados por empresas y equipos:

1. CRM (Customer Relationship Management)

Crea un sistema CRM personalizado para gestionar leads, clientes y oportunidades de venta. Usa las vistas Kanban para visualizar el pipeline de ventas, automatiza notificaciones cuando cambia el estado de un lead, y genera formularios públicos para captar nuevos prospectos desde tu sitio web.

2. Gestión de Inventarios

Administra stock, proveedores y pedidos en tiempo real. NocoDB soporta generación de códigos QR para tracking de productos, y puedes crear una app móvil que consuma la API REST para escanear productos en el almacén.

3. Project Management

Reemplaza herramientas como Monday.com o Asana con tu propia solución de gestión de proyectos. Usa vistas Calendar para deadlines, Kanban para tareas, y automatiza actualizaciones de estado basadas en condiciones.

4. Content Management

Gestiona calendarios editoriales, assets multimedia y workflows de aprobación de contenido. Integra con servicios de almacenamiento como S3 o Minio para manejar archivos adjuntos.

5. Sistemas de Tickets y Soporte

Implementa un helpdesk interno o externo donde usuarios puedan reportar incidencias mediante formularios públicos, y tu equipo gestione resoluciones con vistas personalizadas.

Requisitos Previos para NocoDB Docker Compose

Antes de proceder con la instalación, asegúrate de cumplir con los requisitos especificados en la documentación oficial de NocoDB:

Software necesario

Recursos de hardware recomendados

  • CPU: 2 cores mínimo (4 cores recomendado para producción)
  • RAM: 2GB mínimo (4GB+ recomendado)
  • Almacenamiento: 10GB mínimo (SSD recomendado para mejor rendimiento)
  • Red: Conexión estable a internet para pull de imágenes Docker

Conocimientos previos

  • Conceptos básicos de Docker y contenedores
  • Uso de terminal y comandos Linux básicos
  • Nociones de bases de datos relacionales (opcional pero útil)

Arquitectura de NocoDB Docker Compose

La instalación con NocoDB Docker Compose que implementaremos consta de varios componentes trabajando en conjunto:

  • Contenedor NocoDB: La aplicación principal que expone el puerto 8080
  • PostgreSQL: Base de datos donde se almacenan metadatos y datos de usuario
  • Volúmenes persistentes: Para asegurar que los datos sobrevivan reinicios de contenedores
  • Red Docker: Red interna para comunicación entre contenedores

El flujo de datos funciona así: el usuario accede a la interfaz web de NocoDB (puerto 8080), la aplicación procesa las peticiones y se comunica con PostgreSQL para leer/escribir datos. Todo queda encapsulado en contenedores Docker independientes que pueden actualizarse sin afectar los datos.

Instalar NocoDB Docker Compose: Guía Paso a Paso

Vamos a desplegar NocoDB Docker Compose con PostgreSQL en tu servidor. Sigue estos pasos cuidadosamente:

Paso 1: Crear estructura de directorios

Primero, crea un directorio dedicado para tu instalación de NocoDB:

mkdir -p ~/nocodb
cd ~/nocodb

Paso 2: Crear archivo docker-compose.yml

Crea el archivo de configuración principal con el siguiente contenido optimizado para producción:

version: '3.8'

services:
  postgres:
    image: postgres:16-alpine
    container_name: nocodb-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: nocodb
      POSTGRES_USER: nocodb
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ChangeThisSecurePassword123!}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - nocodb_network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U nocodb"]
      interval: 10s
      timeout: 5s
      retries: 5

  nocodb:
    image: nocodb/nocodb:latest
    container_name: nocodb
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      NC_DB: "pg://postgres:5432?u=nocodb&p=${POSTGRES_PASSWORD:-ChangeThisSecurePassword123!}&d=nocodb"
      NC_AUTH_JWT_SECRET: ${JWT_SECRET:-GenerateASecureJWTSecretHere}
      NC_PUBLIC_URL: ${PUBLIC_URL:-http://localhost:8080}
      NC_DISABLE_TELE: "true"
    ports:
      - "8080:8080"
    volumes:
      - nocodb_data:/usr/app/data
    networks:
      - nocodb_network
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/health || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  postgres_data:
    driver: local
  nocodb_data:
    driver: local

networks:
  nocodb_network:
    driver: bridge

Paso 3: Configurar variables de entorno

Crea un archivo .env para gestionar secretos de forma segura:

cat > .env <<EOF
# PostgreSQL Configuration
POSTGRES_PASSWORD=TuPasswordSeguraParaPostgres2026!

# NocoDB Configuration
JWT_SECRET=$(openssl rand -base64 32)
PUBLIC_URL=http://tu-dominio.com:8080

# Optional: Timezone
TZ=Europe/Madrid
EOF

Importante: Cambia POSTGRES_PASSWORD por una contraseña fuerte y única. El JWT_SECRET se genera automáticamente con el comando openssl para mayor seguridad.

Paso 4: Iniciar los contenedores

Levanta los servicios con Docker Compose:

docker compose up -d

Este comando descargará las imágenes necesarias desde Docker Hub (PostgreSQL 16 Alpine y NocoDB latest) y creará los contenedores en modo detached (background).

Paso 5: Verificar el estado de los contenedores

Comprueba que ambos servicios estén corriendo correctamente:

docker compose ps

Deberías ver algo similar a:

NAME                IMAGE                       STATUS         PORTS
nocodb              nocodb/nocodb:latest        Up (healthy)   0.0.0.0:8080->8080/tcp
nocodb-postgres     postgres:16-alpine          Up (healthy)   5432/tcp

Paso 6: Acceder a NocoDB por primera vez

Abre tu navegador y accede a:

http://localhost:8080

O si estás accediendo remotamente, usa la IP del servidor:

http://TU_IP_SERVIDOR:8080

Serás redirigido a la pantalla de creación de cuenta. Introduce:

  • Email: tu correo de administrador
  • Password: contraseña fuerte (mínimo 8 caracteres)

Después de crear la cuenta, ya puedes empezar a usar NocoDB y crear tu primera base de datos.

Configurar NocoDB Docker Compose con SSL/HTTPS

Para usar NocoDB Docker Compose en producción de forma segura, necesitas configurar SSL/HTTPS. La mejor opción es usar Caddy o Traefik como reverse proxy.

Opción 1: Usar Caddy (recomendado)

Añade el servicio de Caddy a tu docker-compose.yml:

  caddy:
    image: caddy:2-alpine
    container_name: nocodb-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    networks:
      - nocodb_network

volumes:
  caddy_data:
  caddy_config:

Crea el archivo Caddyfile:

nocodb.tudominio.com {
    reverse_proxy nocodb:8080
    encode gzip
}

Caddy obtendrá automáticamente certificados SSL de Let’s Encrypt y renovará antes de expirar.

Opción 2: Usar Traefik

Si ya usas Traefik en tu homelab, puedes añadir estas labels al servicio de NocoDB. Consulta nuestro artículo sobre Traefik Docker Compose para la configuración completa.

Variables de Entorno Importantes en NocoDB Docker Compose

El archivo de configuración de NocoDB Docker Compose acepta múltiples variables de entorno para personalizar el comportamiento. Aquí las más importantes:

Variables de base de datos

  • NC_DB: String de conexión a PostgreSQL/MySQL/MSSQL en formato pg://host:port?u=user&p=pass&d=database
  • NC_DB_JSON: Alternativa en formato JSON con configuración Knex.js
  • NC_DB_JSON_FILE: Ruta a archivo JSON con configuración de base de datos

Variables de autenticación

  • NC_AUTH_JWT_SECRET: Secreto para firmar tokens JWT (obligatorio en producción)
  • NC_ADMIN_EMAIL: Email del usuario administrador (auto-setup)
  • NC_ADMIN_PASSWORD: Password del admin (auto-setup)

Variables de configuración general

  • NC_PUBLIC_URL: URL pública donde estará accesible NocoDB
  • NC_DISABLE_TELE: Desactiva telemetría anónima (true recomendado)
  • NC_REDIS_URL: URL de Redis para caché (opcional, mejora rendimiento)
  • NC_TOOL_DIR: Directorio donde se almacenan plugins y extensiones

Variables de límites y seguridad

  • NC_MAX_ATTACHMENTS_ALLOWED: Número máximo de attachments por celda (default: 10)
  • NC_ATTACHMENT_FIELD_SIZE: Tamaño máximo de archivo en bytes (default: 20MB)
  • NC_REQUEST_BODY_SIZE: Tamaño máximo del body en requests (default: 20MB)

Optimización y Best Practices para NocoDB Docker Compose

Sigue estas recomendaciones para obtener el máximo rendimiento y seguridad de tu instalación.

1. Usa PostgreSQL en lugar de SQLite

Aunque SQLite es válido para testing, PostgreSQL ofrece mucho mejor rendimiento en producción, especialmente con múltiples usuarios concurrentes y grandes volúmenes de datos.

2. Configura Redis para caché

Añade un contenedor Redis para mejorar tiempos de respuesta:

  redis:
    image: redis:7-alpine
    container_name: nocodb-redis
    restart: unless-stopped
    networks:
      - nocodb_network

Y actualiza la variable en NocoDB:

NC_REDIS_URL: "redis://redis:6379"

3. Implementa backups automáticos

Crea un script para backup diario de PostgreSQL:

#!/bin/bash
BACKUP_DIR="/backups/nocodb"
DATE=$(date +%Y%m%d_%H%M%S)

docker exec nocodb-postgres pg_dump -U nocodb nocodb | gzip > \
  "$BACKUP_DIR/nocodb_backup_$DATE.sql.gz"

# Mantener solo últimos 7 días
find $BACKUP_DIR -name "nocodb_backup_*.sql.gz" -mtime +7 -delete

Programa este script con cron para ejecución automática. Para más opciones de backup, revisa nuestro artículo sobre Duplicati Docker Compose.

4. Configura límites de recursos

Evita que NocoDB consuma todos los recursos del servidor:

  nocodb:
    # ... otras configuraciones
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 2G
        reservations:
          memory: 512M

5. Actualiza regularmente

Mantén NocoDB actualizado para obtener nuevas funcionalidades y parches de seguridad:

docker compose pull
docker compose up -d

O automatiza con Watchtower Docker Compose para actualizaciones desatendidas.

Troubleshooting NocoDB Docker Compose

Soluciones a problemas comunes que puedes encontrar con tu instalación de NocoDB Docker Compose:

Error: «Database connection failed»

Síntoma: NocoDB no puede conectar con PostgreSQL.

Solución:

  • Verifica que PostgreSQL esté healthy: docker compose ps
  • Revisa que el string NC_DB tenga las credenciales correctas
  • Comprueba los logs: docker compose logs postgres
  • Asegúrate de que el contenedor NocoDB espere a que PostgreSQL esté listo (healthcheck)

Error: «Port 8080 already in use»

Síntoma: Docker no puede bindear el puerto 8080.

Solución:

# Ver qué proceso usa el puerto
sudo lsof -i :8080

# Cambiar el puerto externo en docker-compose.yml
ports:
  - "8081:8080"  # Usa 8081 en lugar de 8080

Error: «JWT token invalid»

Síntoma: Los usuarios no pueden hacer login o son desconectados constantemente.

Solución: Asegúrate de que NC_AUTH_JWT_SECRET sea consistente y no cambie entre reinicios. Guárdalo en el archivo .env.

Problema: Lentitud con muchos registros

Síntoma: Las queries se vuelven lentas con tablas grandes.

Solución:

  • Añade índices en PostgreSQL a las columnas más consultadas
  • Implementa Redis como caché
  • Aumenta los recursos asignados a PostgreSQL
  • Considera usar vistas materializadas para queries complejas

Problema: Archivos adjuntos no se guardan

Síntoma: Los attachments desaparecen después de reiniciar contenedores.

Solución: Asegúrate de tener el volumen nocodb_data correctamente montado en /usr/app/data. Opcionalmente, configura almacenamiento externo (S3, Minio) con las variables NC_S3_*.

Migrar desde Airtable a NocoDB Docker Compose

Si ya tienes datos en Airtable y quieres migrar a tu instalación self-hosted con NocoDB Docker Compose, el proceso es muy sencillo:

Paso 1: Exportar desde Airtable

  • Abre tu base en Airtable
  • Click en «…» → «Download CSV»
  • Descarga cada tabla como archivo CSV separado

Paso 2: Importar a NocoDB

  • En NocoDB, crea un nuevo proyecto
  • Click en «Add new table» → «Import from CSV»
  • Sube cada archivo CSV
  • Mapea los tipos de columna correctamente (text, number, date, etc.)

Paso 3: Recrear relaciones

Las relaciones entre tablas (links) no se migran automáticamente. Deberás recrearlas manualmente:

  • Identifica las columnas de tipo «Link to another record» en Airtable
  • En NocoDB, añade columnas de tipo «Links» entre las tablas correspondientes
  • Configura el tipo de relación (one-to-many, many-to-many)

Paso 4: Recrear vistas y filtros

Crea las vistas personalizadas (Kanban, Calendar, Gallery) que tenías en Airtable. NocoDB soporta todas las mismas vistas con funcionalidades equivalentes.

Integrar NocoDB con Otras Aplicaciones

Una de las grandes ventajas de usar NocoDB Docker Compose es su API REST automática que permite integraciones con cualquier herramienta.

Generar API Token

  • Ve a «Account Settings» en NocoDB
  • Click en «API Tokens»
  • Genera un nuevo token con los permisos necesarios

Ejemplo de uso con curl

# Listar registros de una tabla
curl -X GET \
  'http://localhost:8080/api/v1/db/data/noco/ProjectName/TableName' \
  -H 'xc-auth: TU_API_TOKEN'

# Crear un nuevo registro
curl -X POST \
  'http://localhost:8080/api/v1/db/data/noco/ProjectName/TableName' \
  -H 'xc-auth: TU_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "Name": "Nuevo registro",
    "Status": "Active"
  }'

Integración con n8n

NocoDB tiene nodos oficiales en n8n para automatizar workflows. Puedes conectar ambos servicios para crear automatizaciones complejas. Consulta nuestro artículo sobre n8n Docker Compose para más detalles.

Webhooks y automatizaciones

Configura webhooks para ejecutar acciones cuando se crean, actualizan o eliminan registros. Esto permite notificar a Slack, enviar emails, actualizar otros sistemas, etc.

FAQ sobre NocoDB Docker Compose

¿Cuántos recursos consume NocoDB?

NocoDB es bastante eficiente. Con la configuración que proporcionamos (PostgreSQL + NocoDB), consume aproximadamente 500MB de RAM en idle y puede manejar decenas de usuarios concurrentes con 2GB RAM. Para instalaciones más grandes, recomendamos 4GB+ RAM y usar Redis como caché.

¿Es NocoDB realmente gratuito?

Sí, NocoDB es 100% open-source bajo licencia AGPLv3. Puedes self-hostear sin pagar nada. Existe una versión Cloud (SaaS) de pago opcional, pero no es necesaria si usas NocoDB Docker Compose en tu servidor.

¿Puedo usar MySQL en lugar de PostgreSQL?

Sí, NocoDB soporta MySQL/MariaDB. Solo necesitas cambiar el string de conexión NC_DB a formato MySQL: mysql2://host:3306?u=user&p=pass&d=database y usar la imagen oficial de MySQL o MariaDB.

¿Cómo actualizo NocoDB a la última versión?

Ejecuta estos comandos en el directorio de tu docker-compose.yml:

docker compose pull nocodb
docker compose up -d nocodb

NocoDB realiza migraciones de base de datos automáticamente al iniciar con una nueva versión.

¿Es seguro exponer NocoDB a internet?

Sí, siempre y cuando sigas estas recomendaciones:

  • Usa HTTPS con certificados SSL válidos
  • Configura contraseñas fuertes para todos los usuarios
  • Mantén NocoDB actualizado a la última versión
  • Considera usar autenticación adicional con Authelia Docker Compose
  • Limita el acceso por IP si solo ciertos usuarios deben conectarse

¿Puedo conectar NocoDB a una base de datos existente?

Sí, una de las características más potentes de NocoDB es que puede conectarse a bases de datos SQL existentes (PostgreSQL, MySQL, MSSQL) y convertirlas en una interfaz no-code sin modificar los datos originales. Solo necesitas proporcionar el string de conexión en NC_DB.

Conclusión

NocoDB Docker Compose representa la mejor alternativa open-source y self-hosted a Airtable en 2026. Con más de 61,000 estrellas en GitHub y una comunidad activa, ofrece todas las funcionalidades de Airtable sin límites artificiales ni costos de suscripción.

Hemos cubierto desde la instalación básica con PostgreSQL hasta configuraciones avanzadas con SSL, Redis, y backups automáticos. Ahora tienes todo lo necesario para implementar tu propia plataforma de bases de datos no-code con control total sobre tus datos.

Si buscas más herramientas self-hosted para complementar tu homelab, explora nuestros artículos sobre Portainer Docker Compose para gestión visual de contenedores, o Grafana Docker Compose para monitorización avanzada.

¿Tienes dudas sobre NocoDB Docker Compose? Déjanos un comentario y te ayudaremos a resolver cualquier problema en tu instalación.

Avatar

Por Mid

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x