Deploy a Producción
Llegó el momento de llevar tu aplicación Laravel al mundo real. En esta lección aprenderás las mejores opciones para desplegar: Laravel Forge (la opción recomendada) y Laravel Cloud.
¿Por qué Forge o Cloud?
Existen muchas formas de desplegar Laravel: servidores compartidos, VPS configurados manualmente, Heroku, DigitalOcean App Platform, etc. Sin embargo, las herramientas oficiales de Laravel ofrecen la mejor experiencia:
- Optimizadas para Laravel: Configuración perfecta de PHP, Nginx, colas, etc.
- Soporte oficial: Creadas y mantenidas por el equipo de Laravel
- Despliegues sin downtime: Tu aplicación nunca deja de funcionar
- SSL automático: Certificados Let's Encrypt configurados automáticamente
Laravel Forge (Recomendado)
Laravel Forge es un panel de gestión de servidores que te permite provisionar y administrar servidores VPS optimizados para Laravel. Es la opción más versátil y la que recomendamos.
¿Qué es Laravel VPS?
Desde octubre de 2025, Forge incluye Laravel VPS, servidores propios que puedes crear con un solo clic en menos de 10 segundos. Ya no necesitas proveedores externos como DigitalOcean o AWS.
Ventajas de Laravel VPS:
- Provisioning instantáneo: Servidor listo en segundos (no minutos)
- Precio competitivo: Desde ~6$/mes por un VPS básico
- Facturación unificada: Todo en una sola factura de Forge
- Terminal integrado: SSH colaborativo en tiempo real desde el navegador
- Métricas en vivo: CPU, memoria y ancho de banda en tiempo real
Planes de Forge
Forge tiene tres planes con tarifa plana mensual (el VPS se paga aparte):
- Hobby (12$/mes): VPS ilimitados, 1 servidor externo, despliegues sin downtime
- Growth (19$/mes): Servidores ilimitados, 5% descuento en VPS, soporte estándar
- Business (39$/mes): 15% descuento en VPS, equipos y organizaciones, soporte prioritario
Multi-cliente: El plan Business permite crear organizaciones separadas para cada cliente, con facturación y accesos independientes. Ideal para agencias y freelancers.
Características principales
- Zero-downtime deployments: Habilitado por defecto en sitios nuevos
- SSL automático: Certificados Let's Encrypt sin configuración manual
- Dominios Forge: Cada sitio obtiene un subdominio
.on-forge.comgratuito - Backups automáticos: De base de datos y archivos
- Colas y workers: Gestión integrada de procesos en segundo plano
- Múltiples sitios: Un servidor puede alojar varias aplicaciones
Desplegar con Forge: paso a paso
1. Crear cuenta en forge.laravel.com
2. Crear servidor (Laravel VPS o proveedor externo)
- Selecciona región cercana a tus usuarios
- Elige tamaño según tus necesidades (1GB RAM mínimo)
- Espera ~10 segundos si es Laravel VPS
3. Conectar repositorio Git
- GitHub, GitLab o Bitbucket
- Forge obtiene acceso de solo lectura
4. Crear sitio
- Indica el dominio (o usa el subdominio .on-forge.com)
- Selecciona el repositorio y rama
- Forge clona el código automáticamente
5. Configurar variables de entorno
- Copia tu .env de producción
- Genera APP_KEY nuevo: php artisan key:generate --show
- Configura base de datos, mail, etc.
6. Primer despliegue
- Click en "Deploy Now"
- Forge ejecuta: git pull, composer install, npm build, migrate...
Script de despliegue típico
Forge genera automáticamente un script de despliegue que puedes personalizar:
cd /home/forge/tudominio.com
git pull origin main
composer install --no-dev --optimize-autoloader
npm ci
npm run build
php artisan migrate --force
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan queue:restart
Laravel Cloud
Laravel Cloud es la plataforma PaaS (Platform as a Service) oficial de Laravel. A diferencia de Forge donde gestionas servidores, en Cloud solo te preocupas del código.
¿Cuándo elegir Cloud sobre Forge?
- Quieres cero gestión de servidor
- Necesitas autoescalado automático
- Prefieres pagar por uso real (ideal para tráfico variable)
- Quieres preview environments por cada PR
Planes de Cloud
- Starter (0$/mes + uso): Pay-as-you-go, ideal para proyectos personales, hibernación automática
- Growth (20$/mes + uso): Autoescalado hasta 10x, workers de colas, preview environments
- Business (200$/mes + uso): Autoescalado ilimitado, WAF, hasta 10 usuarios
Características de Cloud
- Serverless Postgres: Base de datos que escala automáticamente y se pausa cuando no hay tráfico
- Preview environments: Entorno completo por cada Pull Request
- Hibernación: Tu app se pausa cuando no hay tráfico (ahorro de costes)
- Múltiples regiones: US, Canadá, EU, Asia Pacific
Forge vs Cloud: ¿cuál elegir?
Ambas son excelentes opciones. La elección depende de tus necesidades:
ELIGE FORGE SI:
✓ Quieres control total del servidor
✓ Tienes tráfico predecible (coste fijo)
✓ Gestionas múltiples clientes (organizaciones separadas)
✓ Necesitas software específico en el servidor
✓ Presupuesto ajustado (~18$/mes: 12$ Forge + 6$ VPS)
ELIGE CLOUD SI:
✓ Prefieres no gestionar servidores
✓ Tu tráfico es muy variable (pago por uso)
✓ Quieres preview environments automáticos
✓ Necesitas autoescalado sin configuración
✓ Tu proyecto puede hibernar cuando no hay tráfico
Nuestra recomendación: Para la mayoría de proyectos, Forge + Laravel VPS ofrece el mejor equilibrio entre control, precio y facilidad de uso. Cloud es ideal para startups con tráfico impredecible o equipos que prefieren cero operaciones.
Preparar tu aplicación para producción
Antes de desplegar, asegúrate de seguir estas buenas prácticas:
1. Variables de entorno
# Producción: NUNCA uses estos valores en local
APP_ENV=production
APP_DEBUG=false
APP_URL=https://tudominio.com
# Genera una key nueva para producción
# php artisan key:generate --show
APP_KEY=base64:TuClaveSecretaAqui...
# Base de datos de producción
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=tu_app_production
DB_USERNAME=forge
DB_PASSWORD=password_seguro
# Drivers optimizados para producción
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
2. Optimizaciones de producción
# Cachear configuración (muy importante)
php artisan config:cache
# Cachear rutas
php artisan route:cache
# Cachear vistas Blade
php artisan view:cache
# Optimizar autoloader de Composer
composer install --no-dev --optimize-autoloader
# Compilar assets para producción
npm run build
3. Checklist pre-deploy
□ APP_DEBUG=false
□ APP_ENV=production
□ APP_KEY generado para producción
□ Tests pasando (php artisan test)
□ Sin errores en el log
□ Migraciones probadas
□ Assets compilados (npm run build)
□ .env.example actualizado
□ README con instrucciones de deploy
Resumen
- Laravel Forge es la opción recomendada: control total, precio predecible y ahora con VPS propios desde ~6$/mes
- Laravel VPS permite crear servidores en segundos sin proveedores externos
- Laravel Cloud es ideal si prefieres cero gestión de servidor y pago por uso
- Forge Business permite organizaciones separadas para gestionar múltiples clientes
- Ambas plataformas incluyen zero-downtime deployments y SSL automático
- Antes de desplegar:
APP_DEBUG=false, cachear config/rutas/vistas, y ejecutar tests
Ejercicios
Ejercicio 1: Preparar .env de producción
Crea un archivo .env.production.example
para tu proyecto con todas las variables necesarias
para producción. Incluye comentarios explicando
qué debe configurar el desarrollador que despliegue.
Ver solución
# .env.production.example
# Copia este archivo a .env en el servidor y configura los valores
# ============================================
# APLICACIÓN
# ============================================
APP_NAME="Mi Aplicación"
APP_ENV=production
APP_DEBUG=false
# Genera con: php artisan key:generate --show
APP_KEY=
APP_URL=https://tudominio.com
# ============================================
# BASE DE DATOS
# ============================================
# Forge crea usuario 'forge' automáticamente
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mi_app_production
DB_USERNAME=forge
DB_PASSWORD=
# ============================================
# CACHE, SESIONES Y COLAS
# ============================================
# Redis recomendado para producción
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# ============================================
# EMAIL
# ============================================
# Configura tu proveedor (Mailgun, Postmark, SES...)
MAIL_MAILER=smtp
MAIL_HOST=
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="noreply@tudominio.com"
MAIL_FROM_NAME="${APP_NAME}"
# ============================================
# ALMACENAMIENTO
# ============================================
# Para archivos subidos por usuarios
FILESYSTEM_DISK=local
# O usa S3 para escalabilidad:
# AWS_ACCESS_KEY_ID=
# AWS_SECRET_ACCESS_KEY=
# AWS_DEFAULT_REGION=eu-west-1
# AWS_BUCKET=
# ============================================
# LOGS
# ============================================
LOG_CHANNEL=daily
LOG_LEVEL=error
Ejercicio 2: Script de despliegue
Escribe un script de despliegue para Forge que incluya: migraciones, caché de configuración, rutas y vistas, compilación de assets, y reinicio de workers de cola.
Ver solución
#!/bin/bash
# Script de despliegue para Laravel Forge
set -e # Salir si hay errores
cd /home/forge/tudominio.com
echo ">> Activando modo mantenimiento..."
php artisan down --retry=60
echo ">> Obteniendo cambios de Git..."
git pull origin main
echo ">> Instalando dependencias PHP..."
composer install --no-dev --optimize-autoloader --no-interaction
echo ">> Instalando dependencias Node..."
npm ci
echo ">> Compilando assets..."
npm run build
echo ">> Ejecutando migraciones..."
php artisan migrate --force
echo ">> Limpiando cachés antiguas..."
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
echo ">> Generando cachés de producción..."
php artisan config:cache
php artisan route:cache
php artisan view:cache
echo ">> Reiniciando workers de cola..."
php artisan queue:restart
echo ">> Desactivando modo mantenimiento..."
php artisan up
echo ">> ¡Deploy completado!"
Ejercicio 3: Comparar costes
Calcula el coste mensual aproximado de desplegar una aplicación Laravel en: (a) Forge + Laravel VPS básico, (b) Forge + DigitalOcean 2GB, (c) Laravel Cloud plan Growth con uso moderado. ¿Cuál elegirías para un proyecto personal? ¿Y para un cliente?
Ver solución
COMPARATIVA DE COSTES MENSUALES
================================
(a) Forge + Laravel VPS básico
- Forge Hobby: 12$/mes
- Laravel VPS 1GB: ~6$/mes
- TOTAL: ~18$/mes
(b) Forge + DigitalOcean 2GB
- Forge Hobby: 12$/mes
- DigitalOcean Droplet 2GB: 12$/mes
- TOTAL: ~24$/mes
(c) Laravel Cloud Growth
- Plan base: 20$/mes
- Compute (asumiendo app activa 8h/día): ~15$/mes
- Base de datos serverless: ~10$/mes
- TOTAL: ~45$/mes (variable según uso)
RECOMENDACIÓN:
--------------
Proyecto personal: Forge + Laravel VPS (~18$/mes)
- Más económico
- Control total
- Ideal para aprender
Cliente pequeño/mediano: Forge + Laravel VPS (~18$/mes)
- Coste predecible
- Fácil de gestionar
- Plan Business si gestionas varios clientes
Startup con tráfico variable: Laravel Cloud
- Autoescalado automático
- Pago por uso real
- Preview environments para el equipo
Nota: Cloud puede ser más económico si tu app tiene
poco tráfico gracias a la hibernación automática.
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¿Quieres dominar el deploy de Laravel?
Aprende CI/CD, monitorización, backups automáticos y más en nuestros cursos premium con proyectos reales.
Ver cursos premium