Laravel · Deploy+

Hosting para Laravel, con deploy en cada push.

PHP 8.3 a 8.5, Composer, Node para Vite, MySQL 8 y Redis, ya preparados. Conectas el repositorio y cada push publica una versión nueva con tus migraciones, sin corte; si algo sale mal, vuelves a la anterior en segundos.
tuapp.com producción

Deploy+v42 publicada

main · a91f3c2 · hace 3 min

  • PHP 8.4 OPcache · Composer 2 ✓
  • MySQL 8 tuapp_prod · 214 MB ✓
  • Redis caché · sesiones · colas ✓
  • Scheduler schedule:run · hace 12 s
  • Colas default · 0 pendientes ✓

PHP 8.1 a 8.5

la versión que pida tu Laravel, por proyecto

Deploy+ incluido

desde GitHub, GitLab, Bitbucket o Gitea

Redis incluido

caché, sesiones y colas en memoria

Rollback en segundos

las últimas versiones siguen en el servidor

Requisitos

Lo que necesita una app Laravel, sin montar servidor.

Los requisitos de la documentación de Laravel, uno a uno, frente a lo que trae cualquier plan de hosting de Hostsuar.
  • PHP 8.3 o superior · Laravel 12: 8.2 De la 5.4 a la 8.5, con la versión que quieras en cada proyecto.
  • Extensiones ctype, curl, dom, fileinfo, filter, hash, mbstring, openssl, pcre, pdo, session, tokenizer, xml Disponibles en el selector de PHP, junto a intl, gd, redis o imagick.
  • Dependencias Composer 2 En la terminal de tu cuenta y en el script de Deploy+.
  • Assets Node y npm para Vite Node por NVM: Deploy+ lo instala antes si tu script lo usa.
  • Base de datos MySQL 8, PostgreSQL o SQLite MySQL 8, y Deploy+ crea la base y escribe el .env al conectar el repositorio.
  • Caché y colas Redis Incluido en todos los planes, sin coste.
  • Scheduler cron cada minuto con schedule:run Cron por minuto desde cPanel.
  • Despliegue Git y SSH Deploy+ con webhook firmado; SSH y Git en tu cuenta, al activarlo.

Requisitos según la documentación de Laravel.

Deploy+

El último tramo, resuelto.

El código ya lo tienes en Git. Deploy+ se encarga de llevarlo a producción como lo harías tú en un servidor propio, con el perfil de Laravel ya preparado.

Despliegue

Un push, una versión nueva, cero segundos de corte

Deploy+ clona el commit en su propia carpeta, ejecuta Composer, el build de Vite, las migraciones y php artisan optimize, y solo si todo sale bien cambia el enlace que la publica. Si un paso falla, la versión anterior sigue en línea.
webhook firmado perfil Laravel sin corte

Deploy #42 · main

perfil Laravel

› git clone a91f3c2 1,8 s

› composer install --no-dev --optimize-autoloader 12,4 s

› npm ci && npm run build vite 21,0 s

› php artisan migrate --force 0,9 s

› php artisan optimize config · rutas · vistas 1,2 s

releases/42 → current 0 s de corte

El perfil

Sabe dónde van public, storage y el .env

Publica desde public, deja storage y el .env fuera del código para que sobrevivan a cada versión y, si lo marcas, crea la base de datos y escribe la conexión.

.env + storage

compartidos entre versiones; el .env lo editas desde el panel

Compartido entre versiones

~/deploy/tuapp/

shared/ → releases/20260905-1012/

.enveditable

storage/del perfil

public/uploads/tuya

Enlazadas en cada versión nueva; un rollback tampoco las toca.

Scheduler y colas

Una línea de cron para el scheduler y las colas

schedule:run cada minuto y, desde routes/console.php, un trabajador que procesa la cola y se para al vaciarla. Con Redis como conexión, los trabajos van en memoria.
schedule:run queue:work Redis

Una línea de cron

cada minuto

* * * * * php ~/tuapp/current/artisan schedule:run

routes/console.php

  • queue:work --stop-when-empty cada minuto
  • emails:resumen-diario 08:00
  • model:prune 02:00
  • siguiente ejecución

Rollback

Volver atrás tarda segundos

El historial guarda cada despliegue con su commit, quién lo lanzó y el registro entero. Las últimas versiones siguen en el servidor: volver a una no clona nada.

5 versiones

guardadas por defecto; tú decides cuántas

Historial de despliegues

5 versiones guardadas
FechaDisparadorTiempo
hoy 10:12 · a91f3c2 Push 38 s
ayer 18:30 · e07b9d4 Manual 41 s
ayer 11:05 · 4c1d8e7 Rollback 2 s
lun 09:48 · 4c1d8e7 Push 35 s

ayer 18:30 · e07b9d4

la versión sigue en el servidor

Volver a esta versión

El script

El script que recomendamos para Laravel.

Es el punto de partida del perfil Laravel. Corre en la versión nueva antes de publicarla: si un comando falla, no se publica.

npm ci && npm run build
solo si tu app compila assets con Vite; Deploy+ instala Node antes
migrate --force
las migraciones corren antes de publicar, contra la base de producción
queue:restart
los trabajadores que estén en marcha terminan su trabajo y recogen el código nuevo
Script de despliegue · perfil Laravel
  1. 1composer install --no-dev --optimize-autoloader --no-interaction
  2. 2npm ci && npm run build
  3. 3php artisan migrate --force
  4. 4php artisan optimize
  5. 5php artisan queue:restart
Variables, comandos bloqueados y Node, en la guía de Deploy+

Forge, VPS o hosting

¿Necesitas un servidor para tu Laravel?

Para la mayoría de apps, no. Lo que cambia es quién administra el servidor y qué procesos puedes tener vivos.
  • El servidor

    Un VPS con Forge
    Lo administras tú; Forge lo configura
    Un VPS a mano
    Lo montas y lo administras tú
    Hostsuar
    Lo administramos nosotros
  • Parches y seguridad

    Un VPS con Forge
    A tu cargo
    Un VPS a mano
    A tu cargo
    Hostsuar
    A nuestro cargo, con antivirus y aislamiento
  • Despliegue

    Un VPS con Forge
    Forge, con tu script
    Un VPS a mano
    Tu propio script
    Hostsuar
    Deploy+ incluido, con rollback
  • Copias

    Un VPS con Forge
    Las que configures
    Un VPS a mano
    Las que configures
    Hostsuar
    80 puntos de restauración incluidos
  • Horizon, Octane, Reverb

    Un VPS con Forge
    Sí
    Un VPS a mano
    Sí
    Hostsuar
    No: las colas, desde el scheduler
  • Soporte

    Un VPS con Forge
    El de la herramienta
    Un VPS a mano
    El tuyo
    Hostsuar
    Técnicos que trabajan con Laravel

Si tu app vive de Horizon, Octane o websockets con Reverb, te conviene un servidor propio. Para el resto, que es casi todo, administrar un servidor es trabajo que no hace falta.

Dudas

Laravel en un hosting, sin letra pequeña.

¿Puedo usar colas de Laravel en un hosting?

Sí. Con la conexión database o redis, el scheduler lanza cada minuto un queue:work --stop-when-empty que procesa lo pendiente y termina. Es lo que encaja en un hosting, donde no hay procesos permanentes. Si tus trabajos no pueden esperar ese minuto o tu cola mueve mucho volumen, te conviene un servidor propio.

¿Funcionan Horizon, Octane o Reverb?

No. Los tres necesitan un proceso que esté siempre en marcha, y eso no es lo que ofrece un hosting compartido. Las colas sin Horizon, Livewire, Inertia, Filament, Sanctum, Socialite o Scout funcionan sin nada especial.

¿Qué versión de PHP necesito?

Laravel 13 pide PHP 8.3 o superior y Laravel 12, PHP 8.2. Tienes de la 5.4 a la 8.5 y la eliges por dominio o por carpeta, así que una app antigua y una nueva conviven en la misma cuenta. En una web publicada con Deploy+, la versión se fija en el .htaccess de tu repositorio, para que viaje con el código en cada despliegue.

¿Puedo tener un entorno de pruebas?

Sí. Conecta el mismo repositorio dos veces: la rama main al dominio y, por ejemplo, develop a staging.tuapp.com, cada una con su .env y su base de datos. Cada push a una rama despliega solo en su sitio.

¿Tengo SSH y Composer?

Sí. Activas el acceso SSH desde las opciones del servicio en el área de clientes, y además tienes la terminal integrada de cPanel, con Git y Composer. Y desde Deploy+ puedes lanzar un comando de artisan sobre la versión publicada sin abrir ninguna terminal.

¿Y si vengo de Forge o de otro hosting?

Conectas el mismo repositorio y Deploy+ lo despliega igual; lo que hay que traer es la base de datos y lo que guardes en storage. Si vienes de otro proveedor, te ayudamos con el traslado.

Guías relacionadas en nuestra documentación

Tu próximo push, en producción.

Cualquier plan trae Deploy+, Redis y el PHP que pide tu versión de Laravel. Lo ha montado gente que trabaja con Laravel cada día; si vienes de otro proveedor, te ayudamos a traerlo. Planes desde 4,10 €/mes.