Guía práctica para desplegar una aplicación de Laravel en Cloudways utilizando despliegue vía Git, configuración del servidor y manejo de entorno de producción.
Antes de comenzar asegúrate de contar con:
- Cuenta en Cloudways.
- Repositorio del proyecto en GitHub.
- Acceso a SSH.
- Entorno local configurado con:
- WSL2 (si utilizas Windows) para trabajar con un entorno Linux.
- Acceso a una terminal de Linux (bash o zsh).
- Hacer la prueba de todas las peticiones de nuestra API (también se puede recurrir a tests para no hacerlo manualmente).
- Accede al sitio de Cloudways.
- Regístrate con Start Free o inicia sesión.
- En el panel selecciona Flexible -> My Servers -> Add Server.
- Elige Custom App como tipo de aplicación.
- Define los siguientes datos:
- Server Name
- Application Name
- Project Name
- Selecciona el proveedor de infraestructura (por ejemplo DigitalOcean 1GB).
- Elige la ubicación del servidor.
- Haz clic en Launch Now.
Cloudways comenzará a crear el servidor automáticamente.
Dirígete a:
Server Management → Settings & Packages
Asegúrate de usar PHP 8.2 o superior.
Configura:
- Execution limit: 30 seconds
- Upload size: 20 MB
- Error reporting: production
Configura:
- Max input variables: 1000
- Max input time: 30
Security → Shell Access
Para mayor seguridad, se puede agregar el IP de la maquina que tendra acceso:
- Bloquea todas las IP por defecto.
- Agrega tus IPs permitidas para:
- Acceso a la aplicación
- Acceso a MySQL
Esto evita accesos no autorizados al servidor.
En el panel de Cloudways:
Application Management → Deployment via Git
- Genera una clave SSH.
- Copia la clave pública generada.
- Ve a tu repositorio en GitHub.
Abre:
Settings → Deploy Keys
Agrega una nueva clave de despliegue:
Nombre sugerido:
Cloudways API Products
Pega la clave pública.
Luego vuelve a Cloudways.
- Copia el comando SSH sugerido. (Eliminando la extensión git)
- Pégalo en Cloudways para autenticar el repositorio.
- Selecciona la rama que quieres desplegar (por ejemplo
main). - Haz clic en Start Deployment.
Cloudways descargará el proyecto desde GitHub.
En:
Application Management → Application Settings
Cambia el Webroot a:
public_html/public
Esto es necesario porque el archivo index.php de Laravel se encuentra dentro de la carpeta public.
Obtén las credenciales desde:
Server Management
Conéctate desde la terminal:
ssh USER@IP_DEL_SERVIDORcd applications/TU_APP/public_htmlcomposer install --no-dev --optimize-autoloaderInstalar dependencias frontend:
npm installCompilar assets:
npm run buildCopia el archivo de ejemplo:
cp .env.example .envEdita el archivo .env. (nano .env)
Configuraciones recomendadas:
APP_ENV=production
APP_DEBUG=false
Configura las credenciales de base de datos proporcionadas por Cloudways:
Application Management → Access Details -> Database
Copiamos los valores dentro del archivo .env:
DB_DATABASE=...
DB_USERNAME=...
DB_PASSWORD=...
php artisan migrate --forceEl flag --force evita confirmaciones interactivas en producción.
php artisan db:seedphp artisan key:generateAccede a la URL pública de tu aplicación en Cloudways.
Application Management → Access Details -> Application URL
Con estos pasos ya tenemos listo nuestro proyecto corriendo en producción.
🎉 ¡Felidades por llegar a esta lección y desplegar tu aplicación! 🎉