Reusable Deployer 8 tasks and recipes for Statik.be projects.
- PHP 8.3+
- Deployer 8.x
composer require --dev statikbe/deployer-tasks<?php
namespace Deployer;
require 'vendor/statikbe/deployer-tasks/recipe/laravel.php';
set('application', 'my-app');
set('repository', 'git@github.com:statikbe/my-app.git');
host('production')
->set('hostname', 'prod.example.org')
->set('deploy_path', '/var/www/my-app');<?php
namespace Deployer;
require 'vendor/statikbe/deployer-tasks/recipe/craft.php';
// ...host configRequire an individual task file and wire the hook yourself:
require 'vendor/statikbe/deployer-tasks/recipe/tasks/voight.php';
after('deploy', 'statik:voight');| Task | Description |
|---|---|
statik:reload-phpfpm |
Reload PHP-FPM safely with mutex, debounce, and opcache validation. Wired by both starters to after('deploy:symlink', ...). |
statik:voight |
Download and run the Voight versioning script in the release path. |
More tasks (composer install with secret env, local-build asset rsync, maintenance banner, config-file sync) ship in upcoming releases.
If the probe URL is behind .htaccess basic auth, configure the credentials in your project's deploy.php after the require line:
require 'vendor/statikbe/deployer-tasks/recipe/laravel.php';
set('basic_auth_user', 'htaccess_user');
set('basic_auth_password', 'htaccess_password');
host('production')->set(/* ... */);Both values must be set; if either is empty the task runs without auth. You can also source them from the environment (e.g. set('basic_auth_user', getenv('BASIC_AUTH_USER'));) — handy for Bitbucket Pipelines repository variables. Per-host overrides work too: host('staging')->set('basic_auth_user', '...');.
The application's .env no longer needs BASIC_AUTH_USER / BASIC_AUTH_PASSWORD for this task. Existing projects should remove those keys from .env and move them to deploy.php via the set() calls above.
composer install
composer test # Pest — currently no tests; helper classes in src/ will get unit tests
composer format # Laravel Pint
composer analyse # PHPStan (exits non-zero until src/ has PHP files; recipe/ is intentionally excluded since Deployer's global functions need stubs)The recipes are smoke-tested by loading them through Deployer:
vendor/bin/dep --file=tests/fixtures/laravel-deploy.php list
vendor/bin/dep --file=tests/fixtures/craft-deploy.php listMIT — see LICENSE.