PHP code example of heimrichhannot / deployer-recipes
1. Go to this page and download the library: Download heimrichhannot/deployer-recipes library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
heimrichhannot / deployer-recipes example snippets
# deploy.php
namespace Deployer;
date_default_timezone_set('Europe/Berlin');
import(__DIR__ . '/vendor/heimrichhannot/deployer-recipes/autoload.php');
recipe('contao');
set('rsync_src', __DIR__);
host('www.example.org')
->setPort(22)
->setRemoteUser('www_data')
->set('public_url', 'https://www.example.org')
->set('http_user', 'www_data')
->set('public_dir', 'public')
->set('deploy_path', '/usr/www/users/{{remote_user}}/docroot')
->set('bin/php', 'php82')
->set('bin/composer', 'composer')
->set('release_name', fn() => date('y-m-d_H-i-s'))
/** In case ACL is unavailable, use chmod instead */
// ->set('writable_mode', 'chmod')
;
/** @example Add project-specific files */
add('project_files', [
'config/routes.yaml',
'translations',
]);
/** @example Remove values from any variable */
remove('project_files', [
'files/themes',
'templates'
]);
/** @example Add project-specific files to exclude from deploy */
add('exclude', [
'.githooks',
]);
/** @example Add a shared .htpasswd or any other file */
add('shared_files', [
'{{public_path}}/.htpasswd'
]);
/** @example Ask confirmation before running migrations */
set('ask_confirm_migrate', true);
/** @example Do not create backup on migration */
set('create_db_backup', false);
/** @example Reload PHP-FPM after deployment */
set('reload_php_fcgi', true);
/** @example Don't automatically deploy contao-manager */
set('contao_manager_deploy', false);
/** @example Disable confirmation input when going live */
set('confirm_prod', false);
/** @example Add yarn build task before deploying */
before('deploy', 'ddev:yp');
/** @example Deploy `files/themes`, which are shared and not updated by default */
after('deploy:shared', 'deploy:themes');
/** @example Create symlinks on deployment */
add('symlinks', [
'{{public_dir}}/example' => '../relative/path/to/target',
]);
/** @example Adjust the number of stored releases */
set('keep_releases', 10);
host('stage')
->set('public_url', 'https://stage.example.org')
->setLabels(['env' => 'stage'])
;
host('production')
->set('public_url', 'https://www.example.org')
->setLabels(['env' => 'prod'])
;
broadcast()
->setHostname('www.example.org')
->setPort(22)
->setRemoteUser('www_data')
->set('http_user', 'www_data')
->set('public_dir', 'public')
->set('deploy_path', '/usr/www/users/{{remote_user}}/docroot/{{alias}}')
->set('bin/php', 'php82')
->set('bin/composer', 'composer')
->set('release_name', fn() => date('y-m-d_H-i-s'))
;
foreach (getHosts() as $host) {
$host
->setHostname('www.example.org')
->setPort(22)
->setRemoteUser('www_data')
->set('http_user', 'www_data')
->set('public_dir', 'public')
->set('deploy_path', '/usr/www/users/{{remote_user}}/docroot/{{alias}}')
->set('bin/php', 'php82')
->set('bin/composer', 'composer')
->set('release_name', fn() => date('y-m-d_H-i-s'))
;
}
host('stage') // <- this is the alias
->setRemoteUser('www_data')
->set('deploy_path', '/usr/www/users/{{remote_user}}/docroot/{{alias}}')
; // will be evaluated to /usr/www/users/www_data/docroot/stage
set('db_dump_mode', 'contao');
set('contao_manager_deploy', false);
add('shared_files', [
'{{public_path}}/contao-manager.phar.php',
]);
// this is the default value
set('contao_manager_source', 'https://download.contao.org/contao-manager/stable/contao-manager.phar');
add('symlinks', [
'path/to/link' => '../relative/path/to/target',
'{{public_dir}}/example' => '../relative/path/to/another/target',
]);
/** WIP: Deploy an htaccess file which will be renamed to .htaccess */
set('htaccess_filename', '.htaccess.prod');
after('deploy:shared', 'deploy:htaccess');