INSTALACIÓN DE N8N EN UN SUBDOMINIO SIN AFECTAR TU SITIO WORDPRESS

La idea es instalar n8n en un servidor que ya aloja un dominio con WordPress (y otros sitios basados en WordPress) administrado mediante CloudPanel, sin que la nueva instalación afecte los servicios existentes.

Para lograrlo, lo ideal es ejecutar n8n dentro de un contenedor Docker, lo que permite mantenerlo aislado de las demás aplicaciones. Además, se configura un reverse proxy con Nginx para redirigir el tráfico de un subdominio (por ejemplo, n8n.tu-dominio.com) hacia el contenedor de n8n, asegurando que cada servicio funcione correctamente sin conflictos.

La instalación de Docker se realiza a nivel del sistema operativo o sea en la raíz del sistema y no debe estar restringida a una carpeta específica.

Instrucciones para instalar Docker en tu servidor

Pasos para instalar Docker en un sistema basado en Ubuntu (ajusta según tu distribución si es necesario):

Actualiza el sistema:

sudo apt update sudo apt upgrade -y

Instala las dependencias necesarias:

sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Añade la clave GPG de Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Añade el repositorio de Docker:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Actualiza el índice de paquetes nuevamente:

sudo apt update

Instala Docker:

sudo apt install docker-ce -y

Verifica que Docker esté instalado correctamente:

sudo systemctl status docker

(Opcional) Añade tu usuario al grupo Docker (para ejecutar comandos de Docker sin sudo):

sudo usermod -aG docker $USER

Reinicia tu sesión (para aplicar los cambios de grupo).

Instalación de Docker Compose (opcional pero recomendado)

Si deseas usar Docker Compose, puedes instalarlo así:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Luego, aplica permisos:

sudo chmod +x /usr/local/bin/docker-compose

Ahora ya puedes usar Docker en cualquier parte de tu sistema. Después de instalar Docker, puedes continuar con la instalación de n8n en /opt/n8n.

(sin afectar WordPress en el dominio principal)

Antes de configurar el servidor, debes asegurarte de que n8n.tu-dominio.com apunta a tu IP:

1️⃣ Ve a Cloudflare y entra en la configuración de tu dominio.
2️⃣ En la sección DNS, agrega un nuevo registro:

  • Tipo: A
  • Nombre: n8n
  • IPv4: (la IP de tu servidor)
  • Proxy: Activado

1️⃣ Accede a CloudPanel en tu servidor.
2️⃣ Ve a Websites > Create Website.
3️⃣ Elige la opción Reverse Proxy.
4️⃣ Configura los datos:

  • Domain: n8n.tu-dominio.com
  • Target URL: http://127.0.0.1:5678
    5️⃣ Guarda y crea el sitio.

1️⃣ Acceder al servidor por SSH:

ssh usuario@tu-servidor

2️⃣ Crear una carpeta para n8n:

mkdir -p /opt/n8n && cd /opt/n8n

3️⃣ Crear un archivo docker-compose.yml:

nano docker-compose.yml

4️⃣ Agregar la siguiente configuración:

version: '3'

services:
  n8n:
    image: n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.tu-dominio.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_TUNNEL_URL=https://n8n.tu-dominio.com/
      - GENERIC_TIMEZONE=America/Argentina/Buenos_Aires
    volumes:
      - ~/.n8n:/home/node/.n8n

5️⃣ Guardar el archivo (CTRL + X, luego Y y Enter).

6️⃣ Levantar el contenedor de n8n:

docker compose up -d

Abre en tu navegador:

👉 https://n8n.tu-dominio.com

Si todo está bien, deberías ver la pantalla de inicio de n8n. 🚀

Si quieres añadir seguridad con un usuario y contraseña, agrega estas líneas en docker-compose.yml antes de levantar el contenedor:

      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=tucontraseña

Después, reinicia n8n con:

docker compose down && docker compose up -d

Ahora, cuando entres a n8n.tu-dominio.com, te pedirá usuario y contraseña. 🔐

🚀 ¡Listo! Ahora tienes n8n funcionando en un subdominio sin afectar tu sitio principal en WordPress! y con una instalación segura y fácil de mantener🎯

WordPress funciona con Apache/Nginx dentro de CloudPanel

  • CloudPanel gestiona los sitios en WordPress de manera separada.
  • Docker usa su propio entorno y red, por lo que no toca directamente el servidor web de CloudPanel.

n8n se ejecutará en un puerto específico (Ej: 5678)

  • Tus webs en WordPress seguirán usando los puertos 80 y 443 para HTTP/HTTPS.
  • n8n estará aislado en el puerto 5678 y solo se accederá mediante el Reverse Proxy en n8n/tu-dominio.com.

El Reverse Proxy redirige /n8n sin tocar WordPress

  • CloudPanel manejará las solicitudes y enviará solo el tráfico de /n8n a Docker.
  • WordPress sigue sirviendo tu-dominio.com sin cambios.

Bueno eso es todo.. gracias por llegar hasta acá, cualquier duda estoy atento.. saludos!