{"id":45617,"date":"2025-12-02T17:50:19","date_gmt":"2025-12-02T16:50:19","guid":{"rendered":"\/co\/tutoriales\/como-instalar-n8n-en-docker"},"modified":"2026-03-10T16:42:46","modified_gmt":"2026-03-10T15:42:46","slug":"como-instalar-n8n-en-docker","status":"publish","type":"post","link":"\/co\/tutoriales\/como-instalar-n8n-en-docker","title":{"rendered":"C\u00f3mo instalar n8n en Docker"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>Instalar n8n en Docker es una forma eficaz de alojar tu mismo esta herramienta de automatizaci&oacute;n de flujos de trabajo. A diferencia de ejecutar n8n directamente en tu servidor privado virtual (VPS), Docker ofrece un entorno contenedorizado que a&iacute;sla n8n de tu sistema principal.<\/p><p>Esto facilita la actualizaci&oacute;n o la degradaci&oacute;n de tus versiones de n8n, la ampliaci&oacute;n de tu configuraci&oacute;n para dar cabida a m&aacute;s flujos de trabajo e incluso la migraci&oacute;n de tu instancia de n8n a otro servidor.<\/p><p>En este art&iacute;culo, aprender&aacute;s a ejecutar n8n utilizando Docker y Docker Compose. Este m&eacute;todo te permite definir el servicio n8n, las variables de entorno y las dependencias, como una base de datos, en un &uacute;nico archivo YAML.<\/p><p>Sigue leyendo para obtener instrucciones paso a paso sobre c&oacute;mo instalar, configurar, proteger y actualizar tu instancia de n8n utilizando Docker.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-autohospedar-n8n-con-docker\">C&oacute;mo autohospedar n8n con Docker<\/h2><p>Para autoalojar n8n con Docker, primero debes instalar Docker y Docker Compose en tu VPS. A continuaci&oacute;n, debes crear un archivo Docker Compose para configurar tu servicio n8n. Por &uacute;ltimo, ejecuta el contenedor n8n utilizando el comando <strong>docker compose up -d<\/strong>.<\/p><p>A continuaci&oacute;n, podr&aacute;s proteger tu configuraci&oacute;n de n8n con SSL y un proxy inverso, modificar las variables de entorno seg&uacute;n sea necesario y actualizar n8n cada vez que se publiquen nuevas versiones.<\/p><p>En las siguientes secciones se explica cada paso con m&aacute;s detalle.<\/p><p><div class=\"protip\">\n                    <h4 class=\"title\">Consejo profesional<\/h4>\n                    <p>Si prefieres <a href=\"\/co\/tutoriales\/como-instalar-n8n\">instalar n8n<\/a> directamente en tu VPS, no te preocupes. Tenemos un tutorial espec&iacute;fico para guiarte a trav&eacute;s del proceso.<\/p>\n                <\/div><\/p><h3 class=\"wp-block-heading\" id=\"h-1-instala-docker-y-docker-compose\">1. Instala Docker y Docker Compose<\/h3><p>En primer lugar, aseg&uacute;rate de que Docker est&aacute; configurado en tu servidor. A partir de Docker <strong>v20.10.0<\/strong>, Docker Compose se incluye por defecto como un complemento, por lo que no es necesario instalarlo por separado.<\/p><p>Si utilizas el <a href=\"\/co\/vps\/hosting-docker\">alojamiento VPS Docker<\/a> de Hostinger, est&aacute;s de suerte: Docker viene preinstalado, por lo que puedes saltarte este paso por completo.<\/p><p>Los usuarios con planes VPS normales de Hostinger pueden <a href=\"\/co\/tutoriales\/como-instalar-y-usar-docker-en-ubuntu\">instalar Docker<\/a> mediante una plantilla preconfigurada o manualmente a trav&eacute;s de la l&iacute;nea de comandos.<\/p><p>Si eliges esta &uacute;ltima opci&oacute;n, verifica la instalaci&oacute;n ejecutando el siguiente <a href=\"\/co\/tutoriales\/linux-comandos\">comando de Linux<\/a> en tu terminal:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker -v<\/pre><p>Esto mostrar&aacute; la versi&oacute;n de Docker instalada, de la siguiente manera:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-docker-v.png\" alt=\"Versi&oacute;n de Docker instalada\" class=\"wp-image-48079\"><\/figure><h3 class=\"wp-block-heading\" id=\"h-2-prepara-el-directorio-de-datos-de-n8n\">2. Prepara el directorio de datos de n8n<\/h3><p>A continuaci&oacute;n, crea directorios para almacenar los datos y los archivos de configuraci&oacute;n de n8n. Ejecuta el siguiente comando para crear el directorio principal de n8n y navega hasta &eacute;l:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir ~\/n8n &amp;amp;&amp;amp; cd ~\/n8n<\/pre><p>Dentro del directorio reci&eacute;n creado, crea un subdirectorio llamado <strong>n8n_data <\/strong>para almacenar los datos persistentes de n8n:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir n8n_data<\/pre><p>Establece la propiedad correcta para los datos persistentes, lo cual es importante cuando ejecutas n8n con Docker:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R 1000:1000 n8n_data<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-mkdir-chown.png\" alt=\"Terminal con comando mkdir\" class=\"wp-image-48080\"><\/figure><h3 class=\"wp-block-heading\" id=\"h-3-crea-un-archivo-docker-compose-para-n8n\">3. Crea un archivo Docker Compose para n8n<\/h3><p>Despu&eacute;s de preparar los directorios para n8n, crea un nuevo archivo Docker Compose para configurar los ajustes de n8n, definir las variables de entorno y especificar los vol&uacute;menes necesarios.<\/p><p>Puedes hacerlo utilizando el <a href=\"\/co\/tutoriales\/instalar-nano-text-editor\">editor de texto nano<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano docker-compose.yml<\/pre><p>Pega el siguiente contenido, sustituyendo <strong>TuUsuario <\/strong>y <strong>TuContrase&ntilde;a <\/strong>por tus credenciales preferidas:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services:\n\n  n8n:\n\n    image: n8nio\/n8n\n\n    ports:\n\n      - \"5678:5678\"\n\n    environment:\n\n      - N8N_BASIC_AUTH_ACTIVE=true\n\n      - N8N_BASIC_AUTH_USER=TuUsuario\n\n      - N8N_BASIC_AUTH_PASSWORD=TuContrase&ntilde;a\n\n    volumes:\n\n      - .\/n8n_data:\/home\/node\/.n8n<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-nano-docker-compose-yml-2048x1244-1.png\" alt=\"Terminal nano Docker Composer\" class=\"wp-image-48081\"><\/figure><p>Una vez hecho esto, guarda los cambios y sal de <strong>nano <\/strong>pulsando <strong>Ctrl + X &rarr; Y &rarr; Intro<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-4-inicia-el-contenedor-n8n\">4. Inicia el contenedor n8n<\/h3><p>Ahora, ejecuta el contenedor n8n con este comando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose up -d<\/pre><p>Ver&aacute;s c&oacute;mo se inicia el proceso del contenedor. Una vez completado, aparecer&aacute;n l&iacute;neas como <strong>&ldquo;Created&rdquo; <\/strong>y <strong>&ldquo;Started&rdquo;<\/strong>, similares a las de la imagen siguiente:<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-docker-compose-up-2048x1064-1.png\" alt=\"Terminal Docker Composer up\" class=\"wp-image-48082\"><\/figure><p>Para verificar si tu contenedor n8n se ha iniciado, abre la siguiente direcci&oacute;n en tu navegador, sustituyendo <strong>tu_vps_ip <\/strong>por la direcci&oacute;n IP de tu propio VPS:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/tu_vps_ip:5678<\/pre><p>Los clientes de Hostinger VPS pueden encontrar la IP de su servidor en hPanel yendo a <strong>VPS &rarr; Administrar &rarr; Detalles de VPS<\/strong>.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/vps-hostinger.png\" alt=\"Panel de control del VPS en hPanel\" class=\"wp-image-48083\"><\/figure><p>Si ves una advertencia de error de cookie segura como la de la imagen siguiente al visitar la direcci&oacute;n, no te preocupes. Tu instancia n8n se est&aacute; ejecutando correctamente. El error se produce porque SSL no est&aacute; configurado para conexiones seguras, pero lo solucionar&aacute;s en el siguiente paso.<\/p><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/n8n-security-error-warning-2048x925-1.png\" alt=\"Alerta de seguridad de n8n\" class=\"wp-image-48084\"><\/figure><h3 class=\"wp-block-heading\" id=\"h-5-protege-n8n-con-ssl-y-un-proxy-inverso-nginx\">5. Protege n8n con SSL y un proxy inverso NGINX<\/h3><p>Para acceder de forma segura a tu instancia de n8n a trav&eacute;s de HTTPS, deber&aacute;s emitir un certificado SSL y configurar un proxy inverso.<\/p><p>En primer lugar, instala el servidor web <a href=\"\/co\/tutoriales\/que-es-nginx\">NGINX<\/a> en tu VPS:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install nginx -y<\/pre><p>Det&eacute;n inmediatamente el servicio NGINX de forma temporal:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl stop nginx<\/pre><p>A continuaci&oacute;n, instala Certbot para obtener tu certificado SSL:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install certbot -y<\/pre><p>Obt&eacute;n una versi&oacute;n independiente del certificado SSL de Certbot. Reemplaza <strong>tudominio.tld <\/strong>por tu dominio real si lo has <a href=\"\/co\/tutoriales\/apuntar-dominio-vps\">dirigido a tu VPS<\/a>. De lo contrario, emite un certificado SSL para tu nombre de host:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo certbot certonly --standalone -d tudominio.tld<\/pre><p>Se te pedir&aacute; que introduzcas una direcci&oacute;n de correo electr&oacute;nico v&aacute;lida, que aceptes los t&eacute;rminos del servicio y, opcionalmente, que te registres para recibir correos electr&oacute;nicos promocionales.<\/p><p>Una vez hecho esto, reinicia NGINX:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl start nginx<\/pre><p>A continuaci&oacute;n, crea un archivo de configuraci&oacute;n para <a href=\"\/co\/tutoriales\/como-configurar-proxy-inverso-nginx\">configurar el proxy inverso con NGINX<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano \/etc\/nginx\/sites-available\/n8n<\/pre><p>Dentro del archivo, pega los detalles de configuraci&oacute;n que se indican a continuaci&oacute;n. Reemplaza <strong>tudominio.tld <\/strong>por tu propio dominio o nombre de host.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">server {\n\n    listen 443 ssl;\n\n    server_name tudominio.tld;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/tudominio.tld\/fullchain.pem;\n\n    ssl_certificate_key \/etc\/letsencrypt\/live\/tudominio.tld\/privkey.pem;\n\n    location \/ {\n\n        proxy_pass http:\/\/localhost:5678;\n\n        proxy_set_header Host $host;\n\n        proxy_set_header X-Real-IP $remote_addr;\n\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\n        proxy_set_header X-Forwarded-Proto $scheme;\n\n    }\n\n}\n\nserver {\n\n    listen 80;\n\n    server_name tudominio.tld;\n\n    return 301 https:\/\/$host$request_uri;\n\n}<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-nano-n8n-2048x1139-1.png\" alt=\"Terminal nano n8n \" class=\"wp-image-48085\"><\/figure><p>Despu&eacute;s de guardar el archivo y salir del editor, ejecuta este comando para habilitar la configuraci&oacute;n:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ln -sf \/etc\/nginx\/sites-available\/n8n \/etc\/nginx\/sites-enabled\/n8n<\/pre><p>Comprueba que la configuraci&oacute;n de NGINX no contenga errores:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nginx -t<\/pre><p>Vuelve a cargar el servicio NGINX para aplicar los cambios:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl reload nginx<\/pre><h3 class=\"wp-block-heading\" id=\"h-6-accede-a-tu-instancia-de-n8n\">6. Accede a tu instancia de n8n<\/h3><p>Ahora, visita tu instancia de n8n utilizando el dominio o el nombre de host que has configurado anteriormente. Ver&aacute;s la p&aacute;gina de registro de la cuenta de propietario de n8n, donde podr&aacute;s registrarte con tus credenciales preferidas.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/n8n-owner-account.png\" alt=\"Inicio de sesi&oacute;n en n8n\" class=\"wp-image-48086\"><\/figure><\/div><p>Despu&eacute;s, abre el panel de control de n8n para empezar a crear flujos de trabajo de automatizaci&oacute;n. Puedes consultar algunos <a href=\"\/co\/tutoriales\/ejemplos-de-flujos-de-trabajo-n8n\">ejemplos de flujos de trabajo de n8n<\/a> para inspirarte.<\/p><p>Si no quieres empezar desde cero, busca plantillas de n8n para soluciones ya preparadas. No olvides explorar las integraciones de n8n para ver qu&eacute; puedes conectar, qu&eacute; herramientas utilizar y los casos de uso de cada integraci&oacute;n.<\/p><h3 class=\"wp-block-heading\" id=\"h-7-modifica-las-variables-de-entorno-de-n8n\">7. Modifica las variables de entorno de n8n<\/h3><p>Al administrar tu instancia de n8n, es posible que debas modificar las variables de entorno para configurar conexiones de bases de datos, habilitar la autenticaci&oacute;n, integrar servicios de terceros o mejorar la seguridad.<\/p><p>Para ello, vuelve a tu terminal y edita tu archivo Docker Compose:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano docker-compose.yml<\/pre><p>En la secci&oacute;n de<strong> entorno<\/strong>, a&ntilde;ade o modifica la configuraci&oacute;n de tu contenedor n8n. Estas son algunas de las variables m&aacute;s utilizadas:<\/p><ul class=\"wp-block-list\">\n<li><strong>N8N_ENCRYPTION_KEY<\/strong>: cifra las credenciales en la base de datos para mayor seguridad.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- N8N_ENCRYPTION_KEY=tuCadenaAleatoriaSegura<\/pre><ul class=\"wp-block-list\">\n<li><strong>N8N_HOST<\/strong>, <strong>N8N_PORT<\/strong>, <strong>N8N_PROTOCOL<\/strong>: garantiza que n8n genere URL correctas, especialmente detr&aacute;s de un proxy inverso o cuando se utiliza SSL.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- N8N_HOST=tudominio.tld\n\n- N8N_PORT=5678\n\n- N8N_PROTOCOL=https<\/pre><ul class=\"wp-block-list\">\n<li><strong>WEBHOOK_URL<\/strong>: establece la URL p&uacute;blica para los webhooks, lo cual es importante si utilizas HTTPS o un dominio personalizado.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- WEBHOOK_URL=https:\/\/tudominio.tld<\/pre><ul class=\"wp-block-list\">\n<li><strong>DB_TYPE<\/strong>, <strong>DB_POSTGRESDB<\/strong>: te permite utilizar PostgreSQL en lugar del SQLite predeterminado para obtener un mejor rendimiento y escalabilidad.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- DB_TYPE=postgresdb\n\n- DB_POSTGRESDB_HOST=tu_host_postgres\n\n- DB_POSTGRESDB_PORT=5432\n\n- DB_POSTGRESDB_DATABASE=tu_nombre_de_base_de_datos\n\n- DB_POSTGRESDB_USER=tu_usuario_db\n\n- DB_POSTGRESDB_PASSWORD=tu_contrase&ntilde;a_de_la_base_de_datos<\/pre><ul class=\"wp-block-list\">\n<li><strong>TZ<\/strong>: establece la zona horaria para n8n.<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">- TZ=UTC<\/pre><p>Guarda el archivo una vez que hayas realizado los cambios necesarios.<\/p><p>A continuaci&oacute;n, ejecuta el siguiente comando de Docker para detener el contenedor n8n:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose down<\/pre><p>Vuelve a iniciar el contenedor con las variables de entorno actualizadas:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose up -d<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-docker-compose-down-up-2048x410-1.png\" alt=\"Terminal Docker Compose up \" class=\"wp-image-48088\"><\/figure><p><div class=\"protip\">\n                    <h4 class=\"title\">Consejo profesional<\/h4>\n                    <p>Si solo quieres reiniciar tu contenedor Docker n8n sin modificar el archivo Compose, utiliza el comando <strong>docker compose restart<\/strong>.<\/p>\n                <\/div><\/p><h3 class=\"wp-block-heading\" id=\"h-8-actualiza-n8n-a-la-ultima-version\">8. Actualiza n8n a la &uacute;ltima versi&oacute;n<\/h3><p>Debes actualizar peri&oacute;dicamente n8n a la &uacute;ltima versi&oacute;n para minimizar los riesgos de seguridad y aprovechar las nuevas funciones y mejoras.<\/p><p>Para actualizar, primero descarga la &uacute;ltima imagen de n8n desde Docker Hub:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker pull n8nio\/n8n<\/pre><p>A continuaci&oacute;n, reinicia el contenedor n8n con la imagen actualizada:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose up -d<\/pre><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/es\/tutoriales\/wp-content\/uploads\/sites\/32\/2025\/09\/terminal-docker-pull-compose-up-2048x453-1.png\" alt=\"Terminal Docker Compose\" class=\"wp-image-48089\"><\/figure><h2 class=\"wp-block-heading\" id=\"h-cuales-son-las-mejores-practicas-para-gestionar-n8n-con-docker\">&iquest;Cu&aacute;les son las mejores pr&aacute;cticas para gestionar n8n con Docker?<\/h2><p>A continuaci&oacute;n, se indican algunos consejos para administrar n8n con Docker, incluidas algunas que ya se han mostrado en este tutorial:<\/p><ul class=\"wp-block-list\">\n<li><strong>Monta vol&uacute;menes Docker:<\/strong> arma un directorio host como <strong>.\/n8n_data:\/home\/node\/.n8n <\/strong>para conservar los flujos de trabajo, las credenciales y los datos de ejecuci&oacute;n fuera del contenedor. Esto garantiza que tus datos sobrevivan a las actualizaciones, los reinicios o la recreaci&oacute;n del contenedor.<\/li>\n\n\n\n<li><strong>Configura las variables de entorno:<\/strong> en <strong>docker-compose.yml<\/strong>, establece las claves API, los secretos webhook, las credenciales de la base de datos y otros datos confidenciales como variables de entorno. Esto mantiene los secretos fuera de los flujos de trabajo y del c&oacute;digo fuente, lo que mejora la seguridad y simplifica la rotaci&oacute;n de claves.<\/li>\n\n\n\n<li><strong>Protege el acceso:<\/strong> habilita siempre la autenticaci&oacute;n b&aacute;sica (<strong>N8N_BASIC_AUTH_ACTIVE=true<\/strong>) y utiliza nombres de usuario y contrase&ntilde;as seguras. Para una comunicaci&oacute;n segura, coloca n8n detr&aacute;s de un proxy inverso como NGINX con SSL, de modo que todos los datos, incluidas las credenciales, se cifren y no se env&iacute;en en texto sin formato.<\/li>\n\n\n\n<li><strong>Realiza copias de seguridad peri&oacute;dicas: <\/strong>haz copias de seguridad peri&oacute;dicas de la carpeta host asignada a <strong>\/home\/node\/.n8n<\/strong>, no de la ruta interna del contenedor. Para un contenedor en ejecuci&oacute;n, utiliza el siguiente comando:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker cp n8n:\/home\/node\/.n8n \/path\/to\/backup\/folder<\/pre><ul class=\"wp-block-list\">\n<li><strong>Establece l&iacute;mites de recursos: <\/strong>en tu archivo<strong> docker-compose.yml<\/strong>, establece l&iacute;mites de CPU y memoria para evitar que n8n utilice en exceso los recursos de tu VPS. Por ejemplo:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">deploy:\n  resources:\n    limits:\n      cpus: '1'\n      memory: 1G<\/pre><ul class=\"wp-block-list\">\n<li><strong>Supervisa los registros y el rendimiento: <\/strong>ejecuta <strong>docker compose logs n8n <\/strong>para revisar los registros y solucionar problemas. Para una supervisi&oacute;n continua, considera la posibilidad de integrar un sistema como LGTM stack para recibir alertas si n8n no funciona o presenta errores.<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-por-que-hostinger-es-la-mejor-opcion-para-alojar-tu-configuracion-de-n8n-docker\">&iquest;Por qu&eacute; Hostinger es la mejor opci&oacute;n para alojar tu configuraci&oacute;n de n8n Docker?<\/h3><p>Docker hace que el autoalojamiento de n8n sea f&aacute;cil y flexible al proporcionar un entorno port&aacute;til y coherente en todos los sistemas. Pero para que funcione de forma fiable las 24 horas del d&iacute;a, los 7 d&iacute;as de la semana, no puedes confiar en tu m&aacute;quina personal, <strong>necesitas un VPS<\/strong>.<\/p><p>Un VPS funciona de forma continua, por lo que tus flujos de trabajo permanecen activos incluso cuando tu ordenador est&aacute; apagado o desconectado. Tambi&eacute;n te permite acceder y gestionar n8n de forma segura desde cualquier lugar, no solo desde tu red local.<\/p><p>El VPS Docker de Hostinger es una excelente opci&oacute;n para autohospedar aplicaciones en contenedores como n8n. Docker y todos los componentes necesarios vienen preinstalados, por lo que puedes implementar n8n r&aacute;pidamente sin necesidad de configuraciones adicionales.<\/p><p>Ofrecemos m&uacute;ltiples centros de datos en diferentes regiones, por lo que puedes elegir un servidor m&aacute;s cercano a ti para minimizar la latencia.&nbsp;<\/p><p>Adem&aacute;s, con la garant&iacute;a de tiempo de actividad del<strong> 99.9% <\/strong>de Hostinger, tus flujos de trabajo de automatizaci&oacute;n permanecen en l&iacute;nea de forma fiable las 24 horas del d&iacute;a.<\/p><p>A partir de<strong> 4.99 &euro; al mes<\/strong>, nuestros planes Docker VPS incluyen hasta<strong> 8 <\/strong>n&uacute;cleos vCPU,<strong> 32 GB <\/strong>de RAM y<strong> 400 GB <\/strong>de almacenamiento NVMe. Puedes empezar con un plan peque&ntilde;o y actualizarlo a uno superior con solo unos clics a medida que aumenten tus necesidades de automatizaci&oacute;n.<\/p><p>La seguridad es una prioridad, con copias de seguridad autom&aacute;ticas, protecci&oacute;n DDoS avanzada y un esc&aacute;ner de malware para mantener tus datos a salvo, bloquear ataques y evitar interrupciones en tu configuraci&oacute;n de n8n.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/co\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/blog.hostinger.io\/co-tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner-1024x300.png\" alt=\"\" class=\"wp-image-29287\" srcset=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner-768x225.png 768w, https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/uploads\/sites\/40\/2023\/02\/ES-VPS-hosting_in-text-banner-1536x450.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-primeros-pasos-docker-para-principiantes\">Primeros pasos: Docker para principiantes<\/h2><p>Si quieres complementar la informaci&oacute;n anterior, mira el videotutorial de la Academia de Hostinger.<\/p><figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Primeros Pasos: Docker Para Principiantes &#128051;\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/BaQnhbZijS4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure><p>\n  <div class=\"youtube-shortcode\">\n    <div class=\"row\">\n      <div class=\"col-7 col-sm-8 d-flex align-items-center\">\n        <img decoding=\"async\" class=\"channel-logo\" src=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/themes\/tutorialsthemeuplift\/public\/images\/youtube-channels\/hostinger-spain.jpg\" alt=\"youtube channel logo\">\n        <div class=\"d-flex flex-column justify-content-between\">\n          <span class=\"slogan d-none d-sm-block\">Suscribirse \u00a1Para m\u00e1s videos educativos!<\/span>\n          <span class=\"channel-name\">Academia de Hostinger<\/span>\n                    <\/div>\n      <\/div>\n      <div class=\"col-5 col-sm-4 d-flex align-items-center justify-content-end\">\n        <a class=\"subscribe-button\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"http:\/\/www.youtube.com\/channel\/UCYmKCu1yo_L0fqKe3U_oMnw?sub_confirmation=1\">\n          <img decoding=\"async\" src=\"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-content\/themes\/tutorialsthemeuplift\/public\/images\/icons\/youtube.svg\" alt=\"subscribe\">\n          <span>Suscribirse<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>\n\n    \n<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi&oacute;n<\/h2><p>El autoalojamiento de n8n con Docker te ofrece un control total, flexibilidad y escalabilidad para la automatizaci&oacute;n de tus flujos de trabajo. Te permite ejecutar una potente herramienta de automatizaci&oacute;n seg&uacute;n tus propios t&eacute;rminos, de forma segura, fiable y con margen para crecer.<\/p><p>A medida que contin&uacute;es creando y gestionando tu configuraci&oacute;n de n8n, esto es lo que puedes hacer a continuaci&oacute;n:<\/p><ul class=\"wp-block-list\">\n<li><strong>Explora ideas de automatizaci&oacute;n:<\/strong> descubre <a href=\"\/co\/tutoriales\/ideas-de-automatizacion-con-n8n\">lo que puedes automatizar con n8n<\/a> para inspirarte y optimizar las tareas repetitivas.<\/li>\n\n\n\n<li><strong>Ampl&iacute;a tu configuraci&oacute;n de n8n:<\/strong> implementa una pila Docker para ampliar n8n a varios servidores y gestionar servicios en un cl&uacute;ster swarm.<\/li>\n\n\n\n<li><strong>Protege tu servidor:<\/strong> sigue las pr&aacute;cticas recomendadas de <a href=\"\/co\/tutoriales\/seguridad-vps\">seguridad de VPS<\/a>, como cambiar el puerto SSH, desactivar el inicio de sesi&oacute;n como root y configurar un firewall, para proteger tu instancia de n8n.<\/li>\n\n\n\n<li><strong>Utiliza n8n con MCP:<\/strong> exp&oacute;n tus flujos de trabajo a los agentes de IA y habilita la automatizaci&oacute;n sensible al contexto <a href=\"\/co\/tutoriales\/como-utilizar-n8n-con-mcp\">integrando n8n con el protocolo de contexto de modelo (MCP<strong>)<\/strong><\/a>.<\/li>\n<\/ul><p>Si a&uacute;n tienes alguna pregunta sobre c&oacute;mo ejecutar y gestionar n8n con Docker, no dudes en dejar un comentario a continuaci&oacute;n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Instalar n8n en Docker es una forma eficaz de alojar tu mismo esta herramienta de automatizaci&oacute;n de flujos de trabajo. A diferencia de ejecutar n8n directamente en tu servidor privado virtual (VPS), Docker ofrece un entorno contenedorizado que a&iacute;sla n8n de tu sistema principal. Esto facilita la actualizaci&oacute;n o la degradaci&oacute;n de tus versiones de [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/co\/tutoriales\/como-instalar-n8n-en-docker\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":353,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"","rank_math_focus_keyword":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-45617","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/n8n-docker","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/executer-n8n-avec-docker","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/como-instalar-n8n-en-docker","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/n8n-docker-hosting","default":0},{"locale":"it-IT","link":"https:\/\/www.hostinger.com\/it\/tutorial\/come-ospitare-n8n-con-docker","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/como-instalar-n8n-en-docker","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/como-instalar-n8n-en-docker","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/como-instalar-n8n-en-docker","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/n8n-docker","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-self-host-n8n-with-docker","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-self-host-n8n-with-docker","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/45617","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/users\/353"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/comments?post=45617"}],"version-history":[{"count":0,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/posts\/45617\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/media?parent=45617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/categories?post=45617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/co\/tutoriales\/wp-json\/wp\/v2\/tags?post=45617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}