Search by

dougkusanagi / laravel-deploy

dougkusanagi

Simple configurable deployment runner for Laravel applications

Package info

github.com/dougkusanagi/laravel-deploy

Language:Shell

pkg:composer/dougkusanagi/laravel-deploy

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.2.2 2026-09-10 11:35 UTC

This package is auto-updated.

Last update: 2026-09-10 11:36:44 UTC


README

Executor de deploy simples para aplicações Laravel em servidores Linux.

Instalação

composer require dougkusanagi/laravel-deploy:^0.2
vendor/bin/deploy init

Se o pacote ainda não estiver disponível no Packagist, registre o repositório do GitHub antes de instalar:

composer config repositories.laravel-deploy vcs https://github.com/dougkusanagi/laravel-deploy.git
composer require dougkusanagi/laravel-deploy:^0.2

Edite deploy.config.sh e execute:

vendor/bin/deploy

O pacote também aceita ./deploy.sh quando o projeto mantém um wrapper na raiz.

Configuração

deploy.config.sh é um arquivo Bash confiável carregado antes da atualização do Git. A configuração mínima é:

DEPLOY_BRANCH="${DEPLOY_BRANCH:-main}"
PHP_FPM_SERVICE="${PHP_FPM_SERVICE:-php8.5-fpm}"
WEB_SERVICE="${WEB_SERVICE:-caddy}"
FRONTEND_INSTALL=(npm ci)
FRONTEND_BUILD=(npm run build)

Defina os arrays de frontend como vazios para desativar essas etapas:

FRONTEND_INSTALL=()
FRONTEND_BUILD=()

Também é possível usar as variáveis DEPLOY_BRANCH, PHP_FPM_SERVICE, WEB_SERVICE, DEPLOY_CONFIG_FILE e HEALTHCHECK_URL.

Etapas

O executor impede dois deploys simultâneos, atualiza a branch configurada com git pull --ff-only, instala dependências PHP sem dev, executa as etapas de frontend, roda migrations isoladas, cria o link de storage, recria caches, recarrega os serviços e verifica a inicialização do Laravel. HEALTHCHECK_URL adiciona uma verificação HTTP.

O próprio Git interrompe a atualização quando alterações locais entram em conflito com o código remoto. Arquivos locais que não impedem o fast-forward não bloqueiam o deploy.

O deploy altera o diretório atual da aplicação. Falhas não desfazem arquivos ou migrations já aplicados; investigue o problema antes de tentar novamente.

Requisitos

  • Linux com Bash e flock;
  • Git e um remote chamado origin;
  • PHP e Composer;
  • Node/npm ou outra ferramenta configurada nos arrays de frontend;
  • sudo e systemctl quando serviços forem configurados.