Módulo 13

Módulo 13: Despliegue en Oracle Cloud — Infraestructura Gratuita

Convierte una instancia OCI Always Free en un servidor productivo de n8n con HTTPS real, usando Docker Compose y Cloudflare Tunnel.

Fase 3 · Arquitectura ~60 min Guía práctica

OCI Always Free Tier — Lo que Realmente Obtienes

Oracle Cloud ofrece una capa gratuita permanente (Always Free) ideal para alojar n8n de por vida sin costo mensual:

Recurso Límite Always Free
Instancias Compute 2 × Ampere A1 (ARM) o 1 × AMD E2.1.Micro
CPU / RAM (A1) Hasta 4 OCPUs y 24 GB de memoria (flexible)
Storage en bloque Hasta 200 GB total
Base de datos 2 × Autonomous Database (20 GB c/u)
Networking 1 VCN, 10 MBps de egress

Por qué A1 es ideal para n8n

El procesador Ampere A1 (ARM) con 2 OCPUs + 12 GB RAM corre n8n + PostgreSQL + Redis con holgura. Es infraestructura de producción sin costo mensual — el santo grial del consultor de automatización independiente.

Paso a Paso: De 0 a n8n Productivo

Fase 1 — Crear la instancia

  1. En OCI Console: Compute → Instances → Create Instance
  2. Imagen: Ubuntu 22.04 LTS (aarch64 para ARM)
  3. Shape: VM.Standard.A1.Flex, 2 OCPUs, 12 GB RAM
  4. Red VCN pública, subred pública con security list que permita SSH (22) desde tu IP
  5. Upload tu SSH key pair y crea la instancia

Fase 2 — Instalar Docker en la instancia

ssh ubuntu@<IP_PUBLICA>

# Actualizar sistema e instalar Docker + Compose plugin
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo usermod -aG docker $USER
sudo systemctl enable docker --now

# Verificar instalación
docker --version
docker compose version

Cloudflare Tunnel — HTTPS sin Abrir el Puerto 5678

La forma segura de exponer n8n no es abrir el puerto 5678 al mundo, sino crear un túnel saliente hacia Cloudflare. Esto:

# Dentro de la instancia
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64 -O cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

# Autenticar (abre URL, inicia sesión en Cloudflare)
cloudflared tunnel login

# Crear el túnel
cloudflared tunnel create n8n-tunel

# Enrutar el subdominio
cloudflared tunnel route dns n8n-tunel n8n.tudominio.com

# Ejecutar (apuntando a localhost:5678)
cloudflared tunnel --url http://localhost:5678 run n8n-tunel

Advertencia oficial

El túnel de cloudflared --url es para desarrollo local. Para producción, configura cloudflared como servicio con un archivo config.yml con tu token y hostname fijo. La documentación de n8n advierte: "It isn't safe to use it in production."

docker-compose.prod.yml — Producción

Una vez el túnel lleva n8n.tudominio.com al puerto 5678 de la instancia, levanta n8n con persistencia completa:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.tudominio.com
      - N8N_PROTOCOL=https
      - N8N_ENCRYPTION_KEY=<openssl rand -hex 24>
      - GENERIC_TIMEZONE=America/Bogota
      - TZ=America/Bogota
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n_user
      - DB_POSTGRESDB_PASSWORD=<tu_password>
    volumes:
      - n8n_data:/home/node/.n8n

  postgres:
    image: postgres:16
    restart: unless-stopped
    environment:
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n_user
      - POSTGRES_PASSWORD=<tu_password>
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  postgres_data:

Regla de oro de la encryption key

N8N_ENCRYPTION_KEY cifra tus credenciales. Genera una con openssl rand -hex 24 y guárdala en un gestor de contraseñas. Si la pierdes, pierdes acceso a todas tus credenciales almacenadas.

Checklist del Módulo 13

Desafío de Arquitecto

n8n Productivo en OCI, sin Costo

Ejecuta el despliegue completo de tu instancia y verifica cada hito:

  1. Crea la instancia A1 en OCI con Ubuntu 22.04 (2 OCPUs, 12 GB)
  2. Instala Docker y Compose, levanta docker compose up -d con tu archivo prod
  3. Configura Cloudflare Tunnel apuntando n8n.tudominio.comlocalhost:5678
  4. Verifica: abre https://n8n.tudominio.com en el navegador y el login de n8n carga con candado HTTPS válido
  5. Reinicia la instancia (sudo reboot) y confirma que n8n vuelve a estar activo solo (restart: unless-stopped)
  6. Documenta: IP, URL, zona horaria, y dónde guardas tu encryption key