exolnet/laravel-envoy

基于Capistrano的Laravel Envoy自动化部署模板。

v1.18.1 2023-10-26 13:53 UTC

README

Latest Stable Version Software License Build Status Total Downloads

此仓库包含Laravel Envoy的自动化部署模板。部署流程基于Capistrano

安装

  1. 使用composer安装此包: composer require --dev exolnet/laravel-envoy:"^1.9"

  2. 在你的项目根目录下创建一个Envoy.blade.php文件,内容如下:@import('exolnet/laravel-envoy')

    对于典型的Laravel项目,你应该有一个类似于以下内容的文件

    @import('exolnet/laravel-envoy')
    
    @task('deploy:publish')
        cd "{{ $releasePath }}"
    
        php artisan down
    
        php artisan config:cache
        php artisan event:cache
        php artisan route:cache
        php artisan view:cache
    
        php artisan storage:link
    
        php artisan migrate --force
    
        php artisan up
    @endtask
  3. 在Laravel项目的config/deploy.php中创建你的部署配置。此仓库中提供了示例配置文件,位于config/deploy.php

    对于典型的Laravel项目,你应该有一个类似于以下内容的文件

    <?php
    
    return [
        'name' => 'example',
    
        'default' => 'production',
    
        'environments' => [
            'production' => [
                'ssh_host'       => 'example.com',
                'ssh_user'       => 'example',
                'deploy_path'    => '/srv/example',
                'repository_url' => 'git@github.com:example/example.git',
                'linked_files'   => ['.env'],
                'linked_dirs'    => ['storage/app', 'storage/framework', 'storage/logs'],
                'copied_dirs'    => ['node_modules', 'vendor'],
            ],
        ],
    ];
  4. 享受吧!

升级

请阅读UPGRADE-1.x了解升级到1.x版本的步骤。

用法

以下宏可用

  • vendor/bin/envoy run setup:在远程主机上设置目录结构和仓库
  • vendor/bin/envoy run deploy --commit=abcdef:将提交abcdef部署到远程主机
  • vendor/bin/envoy run deploy:publish --current:在远程主机上运行当前版本的deploy:publish任务
  • vendor/bin/envoy run releases:列出远程主机上的可用版本
  • vendor/bin/envoy run rollback [--release=123456]:回滚到上一个版本或如果指定了123456,则回滚到该版本
  • vendor/bin/envoy run backups:列出远程主机上现有的备份

你也可以使用本地的Envoy命令

  • vendor/bin/envoy tasks:列出可用任务和宏
  • vendor/bin/envoy ssh:连接到远程主机

注意,你也可以使用选项--env=foo与前面的任何命令一起使用,以连接到配置中定义的另一个远程主机。

贡献

请参阅CONTRIBUTINGCODE OF CONDUCT以获取详细信息。

安全性

使用ssh通过git时强制执行SSH StrictHostKeyChecking。如果你的远程git仓库服务器不支持SSHFP/VerifyHostKeyDNS,你需要在远程主机上手动创建known_hosts文件。

如果你发现任何安全相关的问题,请通过security@exolnet.com发送电子邮件,而不是使用问题跟踪器。

致谢

许可

此代码受MIT许可的许可。有关更多信息,请参阅许可文件