// Engineering Log
n8n y servicios backend: Parte 4 — Appwrite
Publicado el 22.09.2026
// Ruta rapida
Este articulo pertenece al tema Python y automatizacion.
Appwrite — una plataforma backend de código abierto que originalmente se diseñó para instalar en un servidor propio. El código se distribuye bajo la licencia BSD-3-Clause. Existe también la versión en la nube Appwrite Cloud, pero el escenario principal es la instalación autónoma en Docker.
De qué consta Appwrite
- Databases — almacenamiento de datos estructurados. Actualmente el servicio se llama TablesDB: los datos están en tablas y filas (antes — en colecciones y documentos).
- Auth — registro, inicio de sesión, sesiones, equipos de usuarios.
- Storage — archivos con permisos de acceso.
- Functions — funciones del servidor que se ejecutan por eventos, por programación o por solicitudes HTTP.
- Realtime — suscripción de clientes a cambios en datos, usuarios y archivos.
Todas las funcionalidades están disponibles a través de una única REST API, y en la consola de administración pueden gestionarse manualmente.
Qué base hay dentro
En los artículos sobre Appwrite a menudo se escribe que funciona sobre PostgreSQL. Para la mayoría de las instalaciones existentes esto no es cierto: hasta la versión 2.0 Appwrite usaba MariaDB. En Appwrite 2.0, lanzado el 7 de septiembre de 2026, PostgreSQL se convirtió en la base por defecto para nuevas instalaciones autónomas. El asistente de instalación ofrece elegir entre PostgreSQL, MariaDB o MongoDB.
La elección se hace una sola vez: no es posible migrar una instalación existente de una base a otra. Las instalaciones antiguas tras la actualización a 2.0 permanecen en MariaDB.
Instalación en su propio servidor
Los requisitos mínimos según la documentación son 2 núcleos de CPU, 4 GB de RAM, 2 GB de memoria swap y Docker Compose versión 2. La instalación se realiza a través del asistente de configuración en el navegador en el puerto 20080: se establecen los parámetros principales, se generan claves de seguridad y se crea la cuenta de administrador. Si el servidor está remoto, hay que abrir temporalmente el puerto 20080 en el cortafuegos y cerrarlo después de la instalación.
Para una instalación de producción se necesitarán además un nombre de dominio y HTTPS, copia de seguridad de la base y de los volúmenes de archivos, así como un plan de actualizaciones: Appwrite se actualiza junto con el esquema de datos, por lo que antes de actualizar es obligatorio disponer de una copia reciente.
Para proyectos con datos personales de ciudadanos rusos, la instalación autónoma en un proveedor ruso cubre el requisito de almacenamiento inicial de datos en bases situadas en el territorio de Rusia. La versión en la nube está alojada en el extranjero.
Cómo conectar Appwrite a n8n
No existe un nodo Appwrite integrado en n8n; todas las operaciones se realizan con el nodo HTTP Request.
- En la consola de Appwrite cree un proyecto y una API key con los permisos necesarios (permisos / scopes). Dé a la clave solo los permisos que necesita el proceso: por ejemplo, lectura y escritura de filas, sin gestión de usuarios.
- En n8n cree credenciales del tipo Header Auth o establezca las cabeceras en el propio nodo.
- Configure el HTTP Request.
La petición para crear una fila en una tabla es así:
POST https://appwrite.example.ru/v1/tablesdb/{databaseId}/tables/{tableId}/rows
Content-Type: application/json
X-Appwrite-Project: <ID del proyecto>
X-Appwrite-Key: <clave API>
{
"rowId": "unique()",
"data": {
"name": "Иван Петров",
"email": "ivan@example.ru"
}
}La cadena "unique()" en lugar del identificador pide a Appwrite que lo genere automáticamente. Si el registro corresponde a un objeto en un sistema externo, es mejor pasar un identificador propio y estable: así una petición repetida no creará un duplicado.
Cómo Appwrite avisa a n8n sobre cambios
Los webhooks se configuran en la consola del proyecto: Settings → Webhooks. Se indica la dirección del nodo Webhook en n8n y los eventos a los que hay que reaccionar — creación de usuario, cambio de fila, subida de archivo y otros.
Cada petición de Appwrite incluye cabeceras: X-Appwrite-Webhook-Events (qué eventos se dispararon), X-Appwrite-Webhook-Project-Id, X-Appwrite-Webhook-User-Id y X-Appwrite-Webhook-Signature. La firma es un HMAC-SHA1 de la cadena «URL del webhook + cuerpo de la petición» con la clave de firma del webhook, codificado en Base64. En n8n se verifica con el nodo Crypto y se compara con la cabecera; las peticiones con firma incorrecta se descartan.
Si se necesita lógica que sea más conveniente ejecutar dentro de Appwrite, el evento lo procesa una Function, y esta a su vez llama a n8n.
Ejemplos de procesos
Bienvenida a un usuario nuevo. Webhook de creación de usuario → Webhook en n8n → verificación de la firma → correo mediante el servidor SMTP de la empresa y tarea al gestor en el CRM.
Sincronización de clientes desde el CRM. Trigger del CRM para un nuevo cliente → HTTP Request crea una fila en la tabla customers con el identificador del cliente del CRM como rowId.
Procesamiento de archivos subidos. Webhook de subida de archivo en Storage → n8n recibe metadatos → si supera el tamaño o el tipo no es válido — notificación al administrador.
Cuándo elegir Appwrite
- Se necesita un backend con autorización, archivos y funciones, alojado en su propio servidor.
- Al equipo le resulta más conveniente una REST API unificada y una consola que trabajar directamente con SQL.
- El proyecto comienza ahora: en Appwrite 2.0 se puede elegir PostgreSQL desde el principio.
Si son importantes consultas SQL complejas y acceso directo a la base desde n8n, es más cómodo Supabase: allí la base es un PostgreSQL normal, al que se conecta el nodo Postgres.
Errores típicos
- Clave API con todos los permisos. La fuga de tal clave abre todo el proyecto; cree claves separadas para cada integración.
- Webhook sin verificación de firma. La dirección del nodo Webhook puede conocerla cualquier tercero y enviar eventos falsos.
- Actualizar sin copia de seguridad. La actualización cambia el esquema de datos; no es posible revertir sin copia.
- El puerto del asistente de configuración quedó abierto después de la configuración.
// Tarea parecida
Si estas resolviendo algo parecido
Este articulo pertenece a uno de los temas principales de trabajo. Puedes seguir leyendo sobre el tema, ir a la pagina principal para entender a que me dedico o abrir directamente los servicios.
Tema del articulo
Python y automatizacion
Bots, integraciones, servicios internos, automatizacion de procesos y workflows.
Tareas frecuentes de esta tema
- Crear un bot, integracion o herramienta interna
- Eliminar trabajo manual con Python y APIs
- Conectar servicios y automatizar todo el flujo
// Siguiente paso
Si necesitas ayuda con este tema y no solo otro articulo, es mejor ir directo a la pagina del servicio. La pagina principal y la seleccion de materiales quedan como rutas secundarias.
Abrir servicios// Reviews
Reseñas relacionadas
Como siempre, rápido y de calidad. Para asuntos con los servidores, me dirijo a Mijaíl.
¡Como siempre, rápido y de calidad! Para asuntos relacionados con los servidores, me dirijo a Mijaíl.
// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
Respondo en un día laborable (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related