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
- En OCI Console: Compute → Instances → Create Instance
- Imagen: Ubuntu 22.04 LTS (aarch64 para ARM)
- Shape: VM.Standard.A1.Flex, 2 OCPUs, 12 GB RAM
- Red VCN pública, subred pública con security list que permita SSH (22) desde tu IP
- 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:
- No expone puertos en la instancia (solo 22 y 443 salientes)
- Otorga HTTPS automático con certificado válido
- Permite usar un subdominio propio:
n8n.tudominio.com
# 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:
- Crea la instancia A1 en OCI con Ubuntu 22.04 (2 OCPUs, 12 GB)
- Instala Docker y Compose, levanta
docker compose up -dcon tu archivo prod - Configura Cloudflare Tunnel apuntando
n8n.tudominio.com→localhost:5678 - Verifica: abre
https://n8n.tudominio.comen el navegador y el login de n8n carga con candado HTTPS válido - Reinicia la instancia (
sudo reboot) y confirma que n8n vuelve a estar activo solo (restart: unless-stopped) - Documenta: IP, URL, zona horaria, y dónde guardas tu encryption key