tombroucke/otomaties-deployer

此包的最新版本(1.6.0)没有可用的许可证信息。

部署 Bedrock & Sage

1.6.0 2024-06-11 10:22 UTC

README

安装

composer require tombroucke/otomaties-deployer --dev

示例 deploy.php 文件

<?php
namespace Deployer;

require_once __DIR__ . '/vendor/autoload.php';

$dotenv = \Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();

require 'vendor/tombroucke/otomaties-deployer/deploy.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/acorn.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/auth.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/bedrock.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/cleanup.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/combell.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/composer.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/otomaties.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/sage.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/woocommerce.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/wordfence.php';
require 'vendor/tombroucke/otomaties-deployer/recipes/wp-rocket.php';


/** Config */
set('application', '');
set('repository', '');
set('sage/theme_path', get('web_root') . '/app/themes/themename');
set('sage/build_command', 'build --clean --flush'); // build --clean for bud, build:production for webpack mix
set('sage/public_dir', 'public'); // public for bud, dist for webpack mix

/** Hosts */
host('production')
    ->set('hostname', 'ssh###.webhosting.be')
    ->set('url', '')
    ->set('remote_user', 'examplebe')
    ->set('branch', 'main')
    ->set('deploy_path', '/data/sites/web/examplebe/app/main');

host('staging')
    ->set('hostname', 'ssh###.webhosting.be')
    ->set('url', '')
    ->set('basic_auth_user', $_SERVER['BASIC_AUTH_USER'] ?? '')
    ->set('basic_auth_pass', $_SERVER['BASIC_AUTH_PASS'] ?? '')
    ->set('remote_user', 'examplebe')
    ->set('branch', 'staging')
    ->set('deploy_path', '/data/sites/web/examplebe/app/staging');

/** Notify deploy started */
before('deploy', 'slack:notify');

/** Install theme dependencies */
after('deploy:vendors', 'sage:vendors');

/** Push theme assets */
after('deploy:update_code', 'sage:compile_and_upload_assets');

/** Write revision to file */
after('deploy:update_code', 'otomaties:write_revision_to_file');

/** Reload Combell */
after('deploy:symlink', 'combell:reloadPHP');

/** Clear OPcode cache */
after('deploy:symlink', 'combell:reset_opcode_cache');

/** Cache ACF fields */
after('deploy:symlink', 'acorn:acf_cache');

/** Reload cache & preload */
after('deploy:symlink', 'wp_rocket:clear_cache');

/** Reload cache & preload */
after('deploy:symlink', 'wp_rocket:preload_cache');

/** Remove unused themes */
after('deploy:cleanup', 'cleanup:unused_themes');

/** Notify success */
after('deploy:success', 'slack:notify:success');

/** Unlock deploy */
after('deploy:failed', 'deploy:unlock');

/** Notify failure */
after('deploy:failed', 'slack:notify:failure');

WooCommerce

/** Update WooCommerce tables */
after('deploy:symlink', 'woocommerce:update_database');

WordPress 缓存

/** Update WooCommerce tables */
after('deploy:symlink', 'wordpress:clear_cache');

额外命令

在主机上启用基本认证

dep auth:password_protect_stage staging

创建 bedrock .env 文件

dep bedrock:create_env staging

将仓库认证添加到远程服务器

dep composer:add_remote_repository_authentication

为 Bedrock / deployer 设置 Wordfence 防火墙

dep wordfence:firewall_setup

添加 .htaccess 规则以提高安全性

dep otomaties:htaccess_rules

设置默认的 Wordfence 配置

dep wordfence:default_configuration