Alojar n8n uno mismo con Docker Compose: guía completa para servidores alemanes
Cómo instalar n8n con Docker Compose: Postgres en lugar de SQLite, .env, volúmenes y actualizaciones paso a paso.
n8n se puede instalar en un servidor propio con Docker Compose en pocos pasos: crea un archivo compose y un archivo .env con las credenciales, define un volumen para los datos persistentes e inicia la pila con un único comando. Para el uso en producción, la mayoría de los operadores cambian de la base de datos SQLite incluida a PostgreSQL, porque varios workflows en ejecución simultánea y las copias de seguridad periódicas funcionan así de forma más fiable. Este artículo muestra la estructura del archivo compose, las variables de entorno necesarias, los volúmenes y el proceso de actualización. Actualizado: julio de 2026.
¿Cómo se instala n8n con Docker Compose?
La instalación se realiza mediante un archivo compose.yaml que inicia el contenedor de n8n, combinado con un archivo .env para los valores específicos del servidor. En un servidor Linux, compruebe primero si Docker y Docker Compose están instalados, por ejemplo con los comandos docker --version y docker compose version. A continuación, cree un directorio de proyecto con el compose.yaml, el archivo .env y una subcarpeta local-files para el intercambio de archivos entre n8n y el host. El inicio se realiza con el comando docker compose up -d, tras lo cual n8n es accesible a través del dominio configurado o, en una instalación sencilla de un solo contenedor sin reverse proxy, en http://localhost:5678. La documentación oficial de n8n ofrece para ello una configuración lista para usar con Docker Compose, que además incluye Traefik como reverse proxy para los certificados TLS.
SQLite o PostgreSQL: ¿qué base de datos tiene sentido?
Por defecto, n8n utiliza SQLite y almacena las credenciales, los workflows y el historial de ejecución sin configuración adicional en el archivo database.sqlite del directorio .n8n. Para cambiar a PostgreSQL, defina las variables de entorno adecuadas en el archivo compose, tal como se describe en la documentación sobre la selección de la base de datos.
- DB_TYPE: establecer en postgresdb para reemplazar SQLite
- DB_POSTGRESDB_HOST y DB_POSTGRESDB_PORT: dirección y puerto del servidor Postgres
- DB_POSTGRESDB_DATABASE: nombre de la base de datos, el valor predeterminado es n8n
- DB_POSTGRESDB_USER y DB_POSTGRESDB_PASSWORD: credenciales de la base de datos
- DB_POSTGRESDB_SCHEMA: esquema dentro de la base de datos, el valor predeterminado es public
Importante: incluso con PostgreSQL, el volumen para el directorio /home/node/.n8n sigue siendo necesario, porque allí se sigue almacenando la clave de cifrado de las credenciales.
¿Qué debe contener el archivo .env?
El archivo .env agrupa todos los valores que difieren de un servidor a otro, para que el propio compose.yaml permanezca sin cambios. Según la guía oficial sobre la instalación con Docker, al menos las siguientes variables deben estar allí.
- DOMAIN_NAME y SUBDOMAIN: determinan juntas la dirección en la que n8n es accesible, por ejemplo n8n.ejemplo.es
- GENERIC_TIMEZONE y TZ: controlan la zona horaria de los nodos de programación y los comandos del sistema
- SSL_EMAIL: dirección de contacto para la emisión automática de certificados a través de Traefik
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: debe estar en true para proteger los permisos de los archivos de configuración
Dado que este archivo contiene contraseñas y credenciales, no debe estar en un repositorio Git público.
¿Qué volúmenes y directorios necesita n8n?
Para un funcionamiento permanente, son relevantes varias ubicaciones de almacenamiento que deben conservarse en cada reinicio.
- n8n_data: montado en /home/node/.n8n, contiene la base de datos SQLite, si se utiliza, así como la clave de cifrado
- traefik_data: almacena los certificados TLS si utiliza el reverse proxy incluido
- local-files: directorio local en el host para el intercambio de archivos, vinculado a través de la variable N8N_RESTRICT_FILE_ACCESS_TO
Sin estos volúmenes, los workflows, las credenciales y los certificados se pierden cada vez que se reconstruye el contenedor.
¿Cómo se actualiza n8n con Docker Compose?
Una actualización se realiza mediante tres comandos en el directorio del archivo compose: docker compose pull descarga la nueva versión de la imagen, docker compose down detiene la pila en ejecución y docker compose up -d la reinicia con la imagen actual. Los volúmenes no se ven afectados, por lo que los workflows y las credenciales se conservan. Quien desee fijar una versión concreta en lugar de actualizar automáticamente a la última versión estable, puede indicar una etiqueta de versión concreta en el compose.yaml, según la documentación por ejemplo docker.n8n.io/n8nio/n8n:1.81.0, en lugar de la etiqueta next para versiones beta inestables. Quien quiera una configuración limpia desde el principio, mejor planifica minuciosamente una vez en lugar de reparar problemas del servidor más adelante. Exactamente eso es lo que se encarga de hacer NordFlux en el marco de la configuración de n8n a precio fijo, incluida la decisión entre SQLite y PostgreSQL adecuada al uso real.
Preguntas frecuentes sobre n8n Docker Compose
¿Necesito un dominio propio para ejecutar n8n con Docker Compose?
No, no es obligatorio. Para una instalación sencilla de un solo contenedor, basta con un volumen mapeado y el puerto 5678, n8n es entonces accesible localmente en http://localhost:5678. Un dominio solo es necesario si desea utilizar la configuración descrita en la guía oficial con Traefik como reverse proxy y un certificado TLS automático.
¿Dónde almacena n8n mis credenciales y workflows?
Todo se encuentra en el volumen montado que apunta al directorio /home/node/.n8n dentro del contenedor. Allí se encuentra el archivo de base de datos si se usa SQLite, y, independientemente de la base de datos elegida, también la clave de cifrado de las credenciales almacenadas. Sin este volumen, todos los datos se pierden en el próximo reinicio del contenedor.
¿Cómo actualizo n8n sin pérdida de datos?
La secuencia docker compose pull, docker compose down y docker compose up -d actualiza la imagen sin tocar los volúmenes. Como los workflows, las credenciales y la base de datos se encuentran en los volúmenes, se conservan durante la actualización. Antes de saltos de versión importantes, no obstante, merece la pena revisar las notas de la versión, porque las variables de entorno pueden cambiar entre versiones.
¿Puedo elegir entre una versión fija de n8n y la versión beta?
Sí, las imágenes de Docker se publican con diferentes etiquetas. Una etiqueta de versión concreta como 1.81.0 fija una versión estable, mientras que la etiqueta next ofrece la versión beta inestable para quienes desean probar nuevas funciones de antemano. Para servidores de producción, una etiqueta de versión fija es la opción más fiable.
NordFlux UG (haftungsbeschränkt)
NordFlux crea empleados digitales para las organizaciones: automatizaciones y agentes KI que asumen el trabajo repetitivo. Usted mantiene el control.
¿Preguntas concretas sobre automatización o IA?
En un análisis inicial gratuito hablamos directamente de su caso. Sin compromiso.