🚀 Despliegue en Cloudflare Pages

📋 Resumen

Este documento describe el proceso completo para desplegar una aplicación Next.js en Cloudflare Pages, incluyendo la configuración, optimización y despliegue.

🎯 Objetivo: Desplegar un portfolio personal en Cloudflare Pages con Next.js

🔧 Prerrequisitos

  • Node.js 18+instalado
  • Cuenta en Cloudflareconfigurada
  • Código en GitHub(recomendado)
  • Wrangler CLIinstalado

📦 Instalación de Wrangler CLI

npm install -g wrangler

🔐 Autenticación en Cloudflare

wrangler login

⚙️ Configuración del Proyecto

1. Configuración de Next.js para Cloudflare Pages

Archivo: next.config.ts

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
  // Configuración de imágenes
  images: {
    formats: ['image/webp', 'image/avif'],
    deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
    imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'avatars.githubusercontent.com',
        port: '',
        pathname: '/u/**',
      },
    ],
    unoptimized: true, // Necesario para output: export
  },
  
  // Headers de seguridad
  async headers() {
    return [
      {
        source: '/(.*)',
        headers: [
          {
            key: 'X-Frame-Options',
            value: 'DENY',
          },
          {
            key: 'X-Content-Type-Options',
            value: 'nosniff',
          },
          {
            key: 'Referrer-Policy',
            value: 'origin-when-cross-origin',
          },
        ],
      },
    ];
  },
  
  // Configuración de compresión
  compress: true,
  
  // Configuración para Cloudflare Pages
  output: 'export', // Exporta archivos estáticos
  trailingSlash: true,
};

export default nextConfig;

🚀 Proceso de Despliegue

1. Construir la aplicación

npm run build
📝 Este comando:
  • • Compila la aplicación Next.js
  • • Genera archivos estáticos en el directorio out/
  • • Optimiza imágenes y assets
  • • Crea sitemap.xml y robots.txt

2. Desplegar en Cloudflare Pages

wrangler pages deploy out --project-name=portfolio
📝 Este comando:
  • • Sube los archivos estáticos a Cloudflare Pages
  • • Crea un nuevo proyecto si no existe
  • • Genera una URL temporal para el despliegue

🌐 Configuración de Dominio Personalizado

Opción 1: Desde el Dashboard de Cloudflare

Recomendado
  1. 1. Ir al Dashboard de Cloudflare Pages
  2. 2. Seleccionar proyecto portfolio
  3. 3. Configurar dominio personalizado
  4. 4. Escribir: andrescosta.dev
  5. 5. Hacer clic en "Continue"

✨ Ventajas de Cloudflare Pages

Gratis

500 builds por mes

Rápido

CDN global de Cloudflare

Automático

Se actualiza con cada push a GitHub

SSL

Certificado HTTPS automático

📝 Notas Importantes

⚠️ Configuraciones críticas:
  • output: 'export': Necesario para generar archivos estáticos
  • unoptimized: true: Para imágenes en export
  • dynamic: 'force-static': Para API routes en export
  • trailingSlash: true: Para compatibilidad con Cloudflare Pages
📅 Fecha de creación: 22 de Julio, 2025
👨‍💻 Autor: Andrés Costas Moreno
📄 Versión: 1.0