Laravel · Deploy+
Alojamento para Laravel, com deploy em cada push.
Deploy+v42 publicada
main · a91f3c2 · há 3 min
- PHP 8.4 OPcache · Composer 2 ✓
- MySQL 8 tuapp_prod · 214 MB ✓
- Redis cache em memória ✓
- Scheduler schedule:run · há 12 s
- Filas default · 0 pendentes ✓
PHP 8.1 a 8.5
a versão que o seu Laravel pedir, por projeto
Deploy+ incluído
a partir do GitHub, GitLab, Bitbucket ou Gitea
Redis incluído
cache em todos os planos; persistente a partir do Avanza
Rollback em segundos
as últimas versões continuam no servidor
Requisitos
O que uma app Laravel precisa, sem montar servidor.
- PHP 8.3 ou superior · Laravel 12: 8.2 Da 5.4 à 8.5, com a versão que quiser em cada projeto.
- Extensões ctype, curl, dom, fileinfo, filter, hash, mbstring, openssl, pcre, pdo, session, tokenizer, xml Disponíveis no seletor de PHP, juntamente com intl, gd, redis ou imagick.
- Dependências Composer 2 No terminal da sua conta e no script do Deploy+.
- Assets Node e npm para Vite Node por NVM: o Deploy+ instala-o antes se o seu script o usar.
- Base de dados MySQL 8, PostgreSQL ou SQLite MySQL 8, e o Deploy+ cria a base de dados e escreve o .env ao ligar o repositório.
- Cache, filas e sessões database por omissão desde o Laravel 11 Filas e sessões no seu MySQL ou, a partir do Avanza, em Redis persistente; para a cache, Redis incluído em todos os planos.
- Scheduler cron a cada minuto com schedule:run O Deploy+ deixa-o no seu cron ao publicar, com o PHP da sua versão.
- Implementação Git e SSH Deploy+ com webhook assinado; SSH e Git na sua conta, ao ativá-lo.
Requisitos segundo a documentação do Laravel.
Deploy+
A última etapa, resolvida.
Implementação
Um push, uma versão nova, zero segundos de interrupção
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 · rotas · vistas 1,2 s
O perfil
Sabe onde vão public, storage e o .env
.env + storage
partilhados entre versões; o .env edita-o a partir do painel
Partilhado entre versões
~/deploy/tuapp/shared/ → releases/20260905-1012/
.enveditável
storage/do perfil
public/uploads/sua
Scheduler e filas
O scheduler por cron, as filas no momento
Uma linha de cron
a cada minuto* * * * * php ~/tuapp/current/artisan schedule:run
routes/console.php
- queue:work --stop-when-empty a cada minuto
- emails:resumen-diario 08:00
- model:prune 02:00
- próxima execução
Rollback
Voltar atrás demora segundos
5 versões
guardadas por defeito; você decide quantas
Histórico de implementações
5 versões guardadasontem 18:30 · e07b9d4
a versão continua no servidor
O script
O script que recomendamos para Laravel.
Parte do que o perfil Laravel propõe e acrescenta-lhe as migrações. Corre na versão nova antes de a publicar: se um comando falhar, não é publicada. Depois, o Deploy+ reinicia os seus workers persistentes com o código novo.
- npm ci && npm run build
- só se a sua app compilar assets com Vite; o Deploy+ instala o Node antes
- migrate --force
- as migrações correm antes de publicar, contra a base de dados de produção
- optimize
- coloca em cache a configuração, as rotas, as vistas e os eventos da versão nova; os workers persistentes são reiniciados pelo Deploy+ ao publicá-la
Forge, VPS ou alojamento
Precisa de um servidor para o seu Laravel?
-
O servidor
- Um VPS com Forge
- Administra-o você; o Forge configura-o
- Um VPS gerido manualmente
- Monta-o e administra-o você
- Hostsuar
- Administramo-lo nós
-
Patches e segurança
- Um VPS com Forge
- A seu cargo
- Um VPS gerido manualmente
- A seu cargo
- Hostsuar
- A nosso cargo, com antivírus e isolamento
-
Implementação
- Um VPS com Forge
- Forge, com o seu script
- Um VPS gerido manualmente
- O seu próprio script
- Hostsuar
- Deploy+ incluído, com rollback
-
Cópias
- Um VPS com Forge
- As que configurar
- Um VPS gerido manualmente
- As que configurar
- Hostsuar
- 80 pontos de restauro incluídos
-
Filas e Horizon
- Um VPS com Forge
- Sim
- Um VPS gerido manualmente
- Sim
- Hostsuar
- Sim, a correr a partir do Avanza
-
WebSockets (Reverb)
- Um VPS com Forge
- Sim
- Um VPS gerido manualmente
- Sim
- Hostsuar
- Com um serviço compatível com Pusher; ajudamo-lo a ligá-lo
-
Octane
- Um VPS com Forge
- Sim
- Um VPS gerido manualmente
- Sim
- Hostsuar
- Não: o PHP é servido pelo LiteSpeed
-
Suporte
- Um VPS com Forge
- O da ferramenta
- Um VPS gerido manualmente
- O seu
- Hostsuar
- Técnicos que trabalham com Laravel
O que não encaixa é o que precisa do seu próprio servidor à frente: o Octane, porque aqui o PHP é servido pelo LiteSpeed, e o Reverb, um servidor que escuta na sua própria porta, algo que não suportamos. Para o tempo real, o Laravel comunica de origem com o Pusher e serviços compatíveis. Workers de filas e o Horizon ficam a correr como processos persistentes a partir do Avanza: administrar um servidor para isso é trabalho desnecessário.
Dúvidas
Laravel num alojamento, sem letras pequenas.
Posso usar filas do Laravel num alojamento?
Sim, de duas formas. A partir do plano Avanza, um queue:work ou o Horizon fica a correr como processo persistente: processa cada trabalho no momento e, se cair, volta a arrancar sozinho. O Avanza admite 3 processos, o Max 5 e o Elastic 8. Em qualquer plano, o scheduler pode lançar a cada minuto um queue:work --stop-when-empty que processa o pendente e termina. Tudo conta dentro dos recursos do seu plano.
O Horizon, o Reverb e o Octane funcionam?
O Horizon, sim, a partir do plano Avanza: deixa-o a correr como processo persistente sobre um Redis persistente, ambos a partir da área de cliente. O Reverb, não no próprio alojamento: é um servidor que escuta na sua própria porta, e não damos suporte a programas desse tipo. Para os WebSockets, liga a sua app a um serviço compatível com Pusher, como o Pusher Channels ou o Ably, que o Laravel suporta de origem, e ajudamo-lo a ligá-lo. O Octane, não: aqui o PHP é servido pelo LiteSpeed, e o Octane precisa do seu próprio servidor de aplicação (Swoole, RoadRunner ou FrankenPHP). Livewire, Inertia, Filament, Sanctum, Socialite ou Scout funcionam sem nada de especial.
De que versão de PHP preciso?
O Laravel 13 pede PHP 8.3 ou superior e o Laravel 12, PHP 8.2. Tem da 5.4 à 8.5 e escolhe-a por domínio ou por pasta, por isso uma app antiga e uma nova convivem na mesma conta. Num site publicado com Deploy+, a versão é definida no .htaccess do seu repositório, para que viaje com o código em cada implementação.
Posso ter um ambiente de testes?
Sim. Ligue o mesmo repositório duas vezes: o ramo main ao domínio e, por exemplo, develop a staging.suaapp.pt, cada um com o seu .env e a sua base de dados. Cada push para um ramo implementa só no seu sítio.
Tenho SSH e Composer?
Sim. Ativa o acesso SSH a partir das opções do serviço na área de cliente e, além disso, tem o terminal integrado do cPanel, com Git e Composer. E a partir do Deploy+ pode lançar um comando de artisan sobre a versão publicada sem abrir nenhum terminal.
E se vier do Forge ou de outro alojamento?
Liga o mesmo repositório e o Deploy+ implementa-o da mesma forma; o que é preciso trazer é a base de dados e o que guardar em storage. Se vier de outro fornecedor, ajudamo-lo com a transferência.
Guias relacionados na nossa documentação
- Instalar Laravel en el hosting Ler guia →
- Deploy automático desde GitHub con rollback Ler guia →
- Procesos persistentes: workers de colas y Horizon Ler guia →
- Redis persistente para colas, sesiones y Horizon Ler guia →
- WebSockets en Laravel: Reverb, Pusher y alternativas Ler guia →
- LiteSpeed Cache en Laravel Ler guia →
- Redis como caché de objetos Ler guia →
- Tareas cron en cPanel Ler guia →
- Composer en el hosting Ler guia →