Por qué la licencia de n8n es un problema para las agencias
n8n cambió a la Sustainable Use License (SUL) en 2022 y la endureció en 2025. La cláusula central prohíbe usar n8n para proveer un servicio comercial a terceros sin acuerdo previo del fabricante. Para una agencia, esto cubre prácticamente todos sus casos de uso: automatizar los flujos de trabajo de un cliente, revender acceso a una instancia compartida, o facturar horas de configuración en una instancia alojada en nombre de un cliente. La SUL establece explícitamente: «You may not make the functionality of the Software available to third parties as a service.» Esta redacción engloba escenarios SaaS internos multi-cliente, dashboards de marca blanca e integraciones entregadas en nombre propio. La consecuencia práctica: una agencia seria debe negociar una licencia comercial con n8n (coste y plazos variables) o encontrar una alternativa realmente open source. Activepieces se posiciona exactamente en ese hueco: mismo paradigma de flow builder visual, licencia MIT sin restricciones de uso comercial, y un ecosistema de conectores que cubre las integraciones habituales de las agencias.
Qué cambia en la práctica con la licencia MIT de Activepieces
- Uso con clientes sin restricciones — despliega Activepieces para cada cliente, factura tus horas de configuración, revende el acceso: ninguna cláusula lo prohíbe.
- Fork y personalización — modifica el código fuente, renombra la interfaz, incorpora Activepieces en tu propia oferta sin pedir permiso.
- Sin licencia comercial que negociar — cero coste de licencia, cero demoras administrativas, cero riesgo de cambio de condiciones en la renovación.
- Auditabilidad total — tu cliente puede inspeccionar el código que procesa sus datos; un argumento de venta en sectores regulados (legal, salud, finanzas).
- Contribuciones de la comunidad — MIT atrae más contribuidores que SUL; el ritmo de nuevos conectores se beneficia directamente.
- Portabilidad de datos — exportar flows en JSON estándar no tiene restricciones; la migración entre instancias o a un fork es posible en cualquier momento.
- Hosting multi-cloud — elige tu datacenter, proveedor cloud o datacenter privado sin informar al fabricante.
Requisitos del sistema antes del despliegue
Activepieces ejecuta dos servicios principales: un servidor Node.js y una base de datos PostgreSQL. Para una instancia de agencia que sirva hasta cinco clientes simultáneos, planifica un mínimo de 2 vCPU y 4 GB de RAM — la misma base que n8n, pero Activepieces incluye un motor de sandbox para piezas personalizadas (TypeScript ejecutado en un worker aislado) que consume memoria adicional en picos. En producción con el modo sandbox activado, 8 GB de RAM permiten procesar flows complejos sin presión de memoria. Para almacenamiento, planifica 20 GB mínimo para logs de ejecución y archivos adjuntos; un volumen separado para PostgreSQL facilitará las copias de seguridad. Puertos a abrir: 80 y 443 para el reverse proxy, 5432 cerrado al público. Activepieces no requiere Redis en configuración básica; Redis es útil solo al activar el modo distribuido. Verifica que Docker Engine ≥ 24 y Docker Compose ≥ 2.20 estén instalados: docker --version y docker compose version.
Desplegar Activepieces con Docker Compose
Crear el directorio de trabajo
Conéctate a tu VPS y crea un directorio dedicado:
mkdir -p /opt/activepieces && cd /opt/activepiecesDescargar el fichero Compose oficial
Descarga
docker-compose.ymldesde el repositorio oficial:curl -fsSL https://raw.githubusercontent.com/activepieces/activepieces/main/docker-compose.yml -o docker-compose.ymlCrear el fichero de entorno
Genera una clave de cifrado y establece las variables esenciales:
cp .env.example .env 2>/dev/null || touch .env
Luego edita.envcon al menos:AP_ENCRYPTION_KEY=$(openssl rand -hex 16)AP_JWT_SECRET=$(openssl rand -hex 32)AP_FRONTEND_URL=https://automations.tudominio.comAP_POSTGRES_PASSWORD=$(openssl rand -hex 24)Iniciar los contenedores
Lanza el stack en segundo plano:
docker compose up -d
Verifica que ambos servicios estánhealthy:docker compose psConfigurar el reverse proxy Nginx
Crea
/etc/nginx/sites-available/activepiecescon el siguiente bloque (adaptaserver_name):server { listen 443 ssl; server_name automations.tudominio.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } }
Activa y recarga:ln -s /etc/nginx/sites-available/activepieces /etc/nginx/sites-enabled/ && nginx -t && systemctl reload nginxObtener certificado TLS
Con Certbot:
certbot --nginx -d automations.tudominio.com --non-interactive --agree-tos -m [email protected]Crear la primera cuenta de administrador
Abre
https://automations.tudominio.comen tu navegador. El asistente de primer inicio te pide crear la cuenta admin. Introduce un correo electrónico y una contraseña fuerte (≥ 16 caracteres).Verificar la versión y activar actualizaciones
Comprueba la versión desplegada en Ajustes → Acerca de. Para actualizar:
docker compose pull && docker compose up -d
Planifica este comando como cron semanal para mantenerte en una versión parcheada.
Conectar un agente IA mediante MCP
El soporte MCP (Model Context Protocol) alcanzó disponibilidad general en Activepieces en marzo de 2025, con el protocolo Streamable HTTP añadido en diciembre de 2025. Expone cada flow de Activepieces como una herramienta MCP invocable por cualquier cliente compatible — Claude Desktop, la API de Anthropic con tools, o un agente GPT-4o mediante la interfaz tools de OpenAI. En la práctica, un flow de Activepieces se convierte en una herramienta que tu agente puede invocar por nombre: create-crm-contact, send-slack-alert, sync-airtable-row. Para activar MCP en una instancia Docker, añade a tu .env: AP_MCP_ENABLED=true. Tras reiniciar (docker compose up -d), Activepieces genera un endpoint MCP en https://automations.tudominio.com/api/v1/mcp. En Claude Desktop, añade este servidor a tu fichero de configuración MCP con la URL y la clave API de una cuenta de servicio de Activepieces. El agente puede entonces listar los flows disponibles y activar uno con parámetros estructurados, sin ningún webhook manual. Para GPT-4o, el mismo endpoint es compatible con el esquema tools de la API de OpenAI: define la URL y la clave API en tu llamada a chat.completions.create y el modelo puede invocar tus automatizaciones como funciones nativas.
La cuestión de los conectores: ¿280 o 500?
Activepieces ofrece alrededor de 280 conectores oficiales frente a los aproximadamente 500 de n8n — una diferencia real que conviene reconocer con honestidad. En la práctica, la mayoría de las agencias raramente utilizan más de treinta conectores en una instancia concreta: CRM, Slack, webhooks entrantes, correo electrónico, Google Sheets, Airtable, Notion. Para estos casos, el catálogo de Activepieces es completo. Cuando falta un conector, el SDK de piezas TypeScript permite escribirlo en pocas horas: la estructura está documentada, el worker sandbox gestiona el ciclo de vida, y la pieza custom se versiona como cualquier otro código. La pregunta real no es «cuántos hay en el catálogo» sino «¿está disponible el conector que necesito hoy?» — y para las integraciones cotidianas de las agencias, la respuesta es sí.
Activepieces vs n8n vs Make — comparativa para agencias
Desplace la tabla
| Activepieces | n8n | Make | |
|---|---|---|---|
| Licencia | MIT — uso comercial libre | Sustainable Use License — uso por terceros restringido | SaaS propietario — sin self-hosting |
| Soporte MCP nativo | Sí (GA marzo 2025, Streamable HTTP dic. 2025) | No (plugins experimentales de terceros) | No |
| Número de conectores | ~280 conectores oficiales + SDK piezas custom | ~500 conectores oficiales | ~1.500 conectores (solo SaaS) |
| Self-hosting | Docker Compose, Kubernetes, Railway | Docker, npm, Kubernetes | No disponible |
| Precio self-hosted | Gratuito (MIT) | Gratuito (fair-code) luego licencia comercial para uso por terceros | suscripción mensual mínima al plan Business (sin opción self-hosting) / mes mínimo |
| Editor visual | Sí, lienzo drag-and-drop | Sí, lienzo drag-and-drop | Sí, lienzo de escenarios |
| Ejecución de código custom | TypeScript en worker en sandbox | JavaScript/Python en nodo de código | No (solo módulos HTTP) |
Hacer copia de seguridad de la base PostgreSQL de Activepieces
Toda la configuración (flows, credenciales, logs de ejecución) vive en PostgreSQL. Una copia de seguridad diaria es suficiente para la mayoría de agencias. Añade esta línea a tu crontab (crontab -e):0 3 * * * docker exec activepieces-postgres pg_dump -U activepieces activepieces | gzip > /opt/backups/activepieces-$(date +%Y%m%d).sql.gz
Prueba la restauración al menos una vez en una instancia de desarrollo: gunzip -c activepieces-20261001.sql.gz | docker exec -i activepieces-postgres psql -U activepieces activepieces. Conserva al menos siete copias rotativas y transfiérelas fuera del VPS.
Resolución de problemas — errores frecuentes
Error: ENCRYPTION_KEY is not set — la variable AP_ENCRYPTION_KEY está ausente o vacía en tu .env. Genera un valor con openssl rand -hex 16 y reinicia el stack. No reutilices la misma clave en instancias distintas: las credenciales cifradas quedarían ilegibles en la otra instancia.
Connection refused en el puerto 8080 — el contenedor activepieces arrancó pero aún no escucha. Consulta los logs: docker compose logs activepieces --tail=50. La causa más frecuente es que PostgreSQL no está listo: reiniciar docker compose restart activepieces suele resolver el problema.
MCP endpoint returns 401 — el agente IA envía una clave API caducada o vinculada a una cuenta sin permisos MCP. En Activepieces, ve a Ajustes → Claves API, regenera la clave de la cuenta de servicio y verifica que la cuenta tiene el rol OPERATOR o ADMIN en el proyecto.
Flow execution stuck on sandbox step — el worker sandbox está esperando recursos CPU. Comprueba la carga con docker stats: si el contenedor activepieces permanece al 100% de CPU más de treinta segundos, el VPS está subdimensionado. Aumenta a 4 vCPU o limita el paralelismo en los ajustes del proyecto de Activepieces.
Próximos pasos y recursos adicionales
Tu instancia de Activepieces está operativa y conectada a tus agentes de IA. El siguiente paso natural es organizar los flows por proyecto de cliente y configurar un sistema de control de versiones (exportación JSON + repositorio Git). Si gestionas varios clientes en la misma instancia, explora los Workspaces de Activepieces, que permiten separar flows, credenciales y logs por cliente. Para profundizar en los temas de este artículo, consulta nuestras guías complementarias: [Instalar Activepieces en un VPS](/blog/installer-activepieces-vps) para una guía de instalación desde cero, [Instalar n8n en un VPS](/blog/installer-n8n-vps) para evaluar ambas soluciones en paralelo, [Zapier vs n8n: coste y migración](/blog/zapier-vs-n8n-cout-migration-2026) para el cálculo completo de ROI, y [Desplegar un servidor MCP de IA autoalojado en VPS](/blog/mcp-serveur-ia-auto-heberge-vps) para profundizar en la arquitectura multi-agente.