elijahcruz/ecdeployer
Composer 安装命令:
composer create-project elijahcruz/ecdeployer
包简介
Deploy projects using a simple CLI
README 文档
README
Deploy your project onto multiple servers with ease.
Requirements
- PHP 8.1 or higher
- Composer
- SSH access to your servers
- OpenSSL PHP Extension
- YAML PHP Extension
- We're assuming you have an SSH key at
~/.ssh/id_rsa.
Installation
To install, all it takes is a simple composer require
composer global require elijahcruz/ecdeployer
Usage
Commands
Init
You can use the init command to create a new deploy.json file in your project.
ecdeploy init
Note that if a deploy.json file already exists, it will as if you want it to be overwritten.
If you add --laravel it will create a deploy.json file with the default laravel configuration.
If you add --gitignore it will add the deploy.json file to your .gitignore file.
If you add --format= you can then choose between a json, php or a yaml file.
Deploy
You can use the deployment command to deploy your project to your servers.
ecdeploy deploy
Using --all will deploy to all servers.
Using --tags will deploy to all servers with the specified tags.
If you don't select any options, it will prompt you to select which servers you want to deploy to. You can select multiple servers by separating them with a comma.
Encryption
You can encrypt and decrypt your deployment file using the encrypt and decrypt commands.
These will create a new file with the extension .enc in the same directory as the deployment file.
If you add --remove it will remove the original file if you are using encrypt, and it will remove the encrypted file if you're using decrypt.
Configuration
deploy.json
The deploy.json file is where you configure your servers and your project.
{
"name": "myproject",
"repo": "git@github.com:myproject/myproject.git",
"servers": [
{
"name": "prod-server",
"host": "192.168.1.1",
"user": "root",
"port": 22,
"tags": [
"prod"
],
"path": "~/myproject",
"commands": [
"before",
"during",
"after",
"node"
]
}
],
"commands": {
"before": [
"php artisan down",
"php artisan optimize:clear",
"git pull origin master",
"composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader"
],
"queue-pause": [
"php artisan horizon:pause"
],
"during": [
"php artisan migrate --force",
"php artisan config:cache",
"php artisan route:cache",
"php artisan view:cache"
],
"node": [
"npm install",
"npm run build"
],
"after": [
"php artisan up"
],
"queue-resume": [
"php artisan horizon:continue"
]
}
}
Servers
All servers are defined in the servers array. Each server has the following properties:
- Name: The name of the server
- Host: The IP address or domain of the server
- User: The user to connect to the server with
- Port: The port to connect to the server with
- Tags: An array of tags to identify the server with.
- Path: The path to the project on the server
- Commands: An array of the command stages to run on the server
Commands
All commands are defined in stages. The stages are run in the order they are defined in the commands array. So in the example above, node will run before after, even though after is defined before node in the server's command array.
The stages names can be anything you want, and you can have as many stages as you want. The only exception is the node stage.
You also don't need to create the path on the server, it will be created automatically if it doesn't exist.
Contributing
Please see CONTRIBUTING for details.
License
The MIT License (MIT). Please see License File for more information.
elijahcruz/ecdeployer 适用场景与选型建议
elijahcruz/ecdeployer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 06 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「cli」 「console」 「laravel」 「Laravel Zero」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 elijahcruz/ecdeployer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 elijahcruz/ecdeployer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 elijahcruz/ecdeployer 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This class provides you with an easy-to-use interface to progress bars.
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
A Laravel package to retrieve data from Google Search Console
Additional artisan commands for Laravel
A table generator class for the PHP CLI.
Slim starter / Slim skeleton package to boost your development with Slim framework
统计信息
- 总下载量: 13
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-06-01