laravel-deploy maintained by dougkusanagi
Laravel Deploy
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 exige uma árvore Git limpa, impede dois deploys simultâneos, atualiza a branch configurada com fast-forward, 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 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.