sven / forge-cli
Requires
- php: ^7.2
- sven/file-config: ^3.0
- symfony/console: ^4.0 || ^5.0
- symfony/process: ^4.0 || ^5.0
- themsaid/forge-sdk: ^2.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2021-08-03 10:57:53 UTC
README
Forge CLI
⚠️ 注意
此包已废弃:请使用 官方的 laravel/forge-cli
包。
使用此包,您可以通过命令行与您的 Laravel Forge 服务器和站点交互。创建和列出服务器、添加站点、安装仓库,无需离开命令行。所有可用命令的概述可以在 此处 找到。
安装
通过 composer
$ composer global require sven/forge-cli
设置
确保 Composer 的全局 bin
目录包含在您的路径中。此目录位于 macOS / Linux 上的 ~/.composer/vendor/bin
,以及 Windows 上的 %APPDATA%/Composer/vendor/bin
。
在使用命令之前,您必须提供一个 API 令牌。要生成新的令牌,请访问 此页面,给令牌命名(如 ForgeCLI
)并单击“创建新令牌”。
然后,在命令行上执行以下命令
$ forge authorize
当提示时,粘贴您的 API 密钥。您可以选择将密钥直接作为命令的参数传递
$ forge authorize <your_key_here>
如果您的 Forge 账户上的 API 密钥已更改,您需要再次运行相同的命令。一个隐藏的配置文件将被保存到您的家目录中(macOS / Linux 上的 ~/.forge.json
,Windows 上的 %USERPROFILE%/.forge.json
)。
用法
以下列出了带有解释的命令列表。您还可以通过安装包并运行 forge list
或 forge help {command}
来找到命令及其参数的列表。
服务器
server:list
显示与您的账户关联的所有服务器。
$ forge server:list +----------------+--------+----------------+-------------+-------+ | Name | Id | IP Address | Region | Ready | +----------------+--------+----------------+-------------+-------+ | sparkling-reef | 124833 | 95.85.60.157 | Amsterdam 2 | Yes | +----------------+--------+----------------+-------------+-------+
server:show
显示有关您服务器的信息。
$ forge server:show {serverId} Name: sparkling-reef IP Address: 95.85.60.157 Size: 512MB Region: Amsterdam 2 PHP version: php71 Created: 2017-03-13 20:59:16
server:make
创建新的服务器。
$ forge server:make --provider=ocean2 --credentials={credentialId} --region=ams2 --ip=127.0.0.1 --private-ip=192.168.1.1 --php=php71 --database=some_database --install-maria --load-balancer --network={otherServerId} --network={anotherServerId}
server:update
更新您服务器的元数据。这将仅更新 Forge 中的数据,而不会对您的服务器进行任何实际更改。
$ forge server:update {serverId} --name=sluggish-cheetah --size=1GB --ip=127.0.0.1 --private-ip=192.168.1.1 --max-upload-size=256 --network={otherServerId} --network={anotherServerId}
服务器:重启
重启您的一台服务器。您需要确认您的操作。
$ forge server:reboot {serverId}
服务器:删除
删除现有服务器。您需要确认您的操作。
$ forge server:delete {serverId}
网站
site:list
显示服务器上安装的所有网站。
$ forge site:list {serverId} +--------+-----------------+------+-----------------------------+--------+ | Id | Name | Type | Repository | Branch | +--------+-----------------+------+-----------------------------+--------+ | 303243 | default | php | - | - | | 303246 | svenluijten.com | html | svenluijten/svenluijten.com | master | | 303247 | pkgst.co | php | svenluijten/slack-packagist | master | +--------+-----------------+------+-----------------------------+--------+
site:show
显示指定服务器上网站的详细信息。
$ forge site:show {serverId} {siteId} Name: svenluijten.com Repository info: svenluijten/svenluijten.com @ master Directory: /build_production Quick deploy: Off Status: installed Project type: html Created: 2017-03-13 21:14:19
site:make
在您的一台服务器上创建一个新的网站。使用 --alias
选项可以包括一个或多个附加域名。
$ forge site:make {serverId} --domain=example.com --alias=example.org --alias=another-site.net --type=php --directory=/public
site:update
更新指定服务器上的网站。
$ forge site:update {serverId} {siteId} --directory=/html
site:deploy
部署给定的网站。
$ forge site:deploy {serverId} {siteId}
site:delete
删除网站。您需要确认您的操作。
$ forge site:delete {serverId} {siteId}
服务
service:reboot
重启给定服务器上的服务。支持的服务有 nginx
、mysql
和 postgres
。
$ forge service:reboot {serverId} {service}
service:stop
停止给定服务器上的服务。支持的服务有 nginx
、mysql
和 postgres
。
$ forge service:stop {serverId} {service}
service:install
在给定服务器上安装服务。支持的服务有 blackfire
和 papertrail
。当安装 Papertrail 时需要使用 --host
选项,当安装 Blackfire 时需要使用 --server-id
和 --server-token
。
$ forge service:install {serverId} {service} --host=192.168.1.1 --server-id=12345 --server-token=YOUR_SERVER_TOKEN
service:uninstall
从给定服务器上卸载服务。支持的服务有 blackfire
和 papertrail
。
$ forge service:uninstall {serverId} {service}
守护进程
daemon:list
列出给定服务器上的所有活动守护进程。
$ forge daemon:list {serverId} +-------+------------+---------------------------------+---------------------+ | Id | Status | Command | Created | +-------+------------+---------------------------------+---------------------+ | 12345 | installing | echo 'hello world' >> /dev/null | 2017-03-13 21:14:19 | +-------+------------+---------------------------------+---------------------+
daemon:show
显示给定守护进程的详细信息。
$ forge show:daemon {serverId} {daemonId} Status: installing Command: echo 'hello world' >> /dev/null Created: 2017-03-21 18:26:33
daemon:make
在给定服务器上创建一个新的守护进程。如果不提供用户,则默认为 forge
。
$ forge make:daemon {serverId}
--command="command to run"
--user=root
daemon:reboot
重启给定的守护进程。您需要确认您的操作。
$ forge reboot:daemon {serverId} {daemonId}
daemon:delete
从给定服务器上删除给定的守护进程。您需要确认您的操作。
$ forge delete:daemon {serverId} {daemonId}
MySQL 用户
mysql-user:make
创建一个新的 MySQL 用户,并授予其对给定数据库的访问权限。
$ forge mysql-user:make {serverId} --username="your_username" --password="password" --database=456 --database=789
mysql-user:list
列出给定服务器上的所有 MySQL 用户。
$ forge mysql-user:list {serverId} +-------+---------------+------------+---------------------+ | Id | Name | Status | Created | +-------+---------------+------------+---------------------+ | 67890 | your_username | installing | 2017-03-13 21:14:19 | +-------+---------------+------------+---------------------+
mysql-user:show
显示指定MySQL用户的详细信息。
$ forge mysql-user:show {serverId} {userId} Status: installing Name: your_username Created: 2017-03-21 18:26:33
mysql-user:update
更新MySQL用户可以访问的数据库。
$ forge mysql-user:update {serverId} {userId} --database=987 --database=654
mysql-user:delete
从服务器中删除指定的MySQL用户。您需要确认此操作。
$ forge mysql-user:delete {serverId} {userId}
防火墙规则
rule:make
创建新的防火墙规则。
$ forge rule:make {serverId}
--name="firewall rule"
--port=88
rule:list
显示所有防火墙规则。
$ forge rule:list {serverId}
rule:show
显示有关您的一个防火墙规则的详细信息。
$ forge rule:show {serverId} {ruleId}
rule:delete
从服务器中删除指定的防火墙规则。您需要确认此操作。
$ forge rule:delete {serverId} {ruleId}
计划任务
job:make
创建新的计划任务。
$ forge job:make {serverId} --user="forge" --command="echo 'hello world' > /dev/null" --frequency="hourly"
job:list
显示所有计划任务。
$ forge job:list {serverId}
job:show
显示有关您的一个计划任务的详细信息。
$ forge job:show {serverId} {jobId}
job:delete
从服务器中删除指定的计划任务。您需要确认此操作。
$ forge job:delete {serverId} {jobId}
数据库
database:make
创建新的数据库。标志 --user
和 --password
必须同时存在或同时不存在。
$ forge database:make {serverId} --user="sven" --password="My_P45sw0rD"
database:list
显示服务器上所有数据库。
$ forge database:list {serverId}
database:show
显示有关您的数据库的详细信息。
$ forge database:show {serverId} {databaseId}
database:delete
从服务器中删除指定的数据库。您需要确认此操作。
$ forge database:delete {serverId} {databaseId}
SSL证书
certificate:list
显示指定站点的所有证书。
$ forge certificate:list {serverId} {siteId}
certificate:show
显示指定证书的详细信息。
$ forge certificate:show {serverId} {siteId} {certificateId}
certificate:make
为您的网站创建新的证书。
$ forge certificate:make {serverId} {siteId} --domain="www.example.com" --country="US" --state="NY" --city="New York" --organization="Acme, Inc." --department="Development"
certificate:activate
激活当前已安装的SSL证书。
$ forge certificate:activate {serverId} {siteId} {certificateId}
证书:安装
在指定的网站上安装证书。
$ forge certificate:install {serverId} {siteId} {certificateId}
证书:删除
撤销并从指定网站移除证书。您需要确认您的操作。
$ forge certificate:delete {serverId} {siteId} {certificateId}
SSH密钥
密钥:创建
创建一个新的SSH密钥并将其添加到服务器。
$ forge key:make {serverId} --name="Macbook" --file="~/.ssh/id_rsa.pub"
如果您未提供--file
选项,则命令将在STDIN
中查找任何输入
$ forge key:make {serverId} --name="Macbook" < ~/.ssh/id_rsa.pub
密钥:列出
显示服务器上安装的所有SSH密钥。
$ forge key:list {serverId}
密钥:显示
显示有关您的SSH密钥之一的信息。
$ forge key:show {serverId} {keyId}
密钥:删除
从您的服务器之一中删除指定的SSH密钥。您需要确认您的操作。
$ forge key:delete {serverId} {keyId}
工作者
工作者:创建
创建一个新的工作者。
$ forge worker:make {serverId} {siteId} --connection=sqs --timeout=90 --sleep=10 --tries=1 --daemon
工作者:列出
显示网站上安装的所有工作者。
$ forge worker:list {serverId} {siteId}
工作者:显示
显示有关您的工作者之一的信息。
$ forge worker:show {serverId} {siteId} {workerId}
工作者:删除
从您的网站之一中删除指定的工作者。您需要确认您的操作。
$ forge worker:delete {serverId} {siteId} {workerId}
工作者:重启
重启您的工作者之一。您需要确认您的操作。
$ forge worker:reboot {serverId} {siteId} {workerId}
快速部署:启用
为指定的网站启用快速部署。
$ forge quickdeploy:enable {serverId} {siteId}
快速部署:禁用
为指定的网站禁用快速部署。
$ forge quickdeploy:disable {serverId} {siteId}
部署脚本:获取
获取指定网站的部署脚本。
$ forge deploy-script:get {serverId} {siteId}
输出将写入STDOUT
,因此您可以直接将其保存到文件中
$ forge deploy-script:get {serverId} {siteId} > file.txt
部署脚本:设置
更新指定网站的部署脚本。
$ forge deploy-script:set {serverId} {siteId} --file=file.txt
如果您未提供--file
选项,则命令将在STDIN
中查找任何输入
$ forge deploy-script:set {serverId} {siteId} < file.txt
部署日志
显示最新的部署日志。
$ forge deploy-log {serverId} {siteId}
输出将写入STDOUT
,因此您可以直接将其保存到文件中
$ forge deploy-log {serverId} {siteId} > file.log
重置部署状态
重置部署状态。
$ forge reset-deploy-state {serverId} {siteId}
配置
环境:获取
获取您的网站之一的环境文件。
$ forge env:get {serverId} {siteId}
输出将写入STDOUT
,因此您可以直接将其保存到文件中
$ forge env:get {serverId} {siteId} > env-file.txt
环境:设置
更新您的网站之一的环境文件。
$ forge env:set {serverId} {siteId} --file=new-env.txt
如果您未提供--file
选项,则命令将在STDIN
中查找任何输入
$ forge env:set {serverId} {siteId} < new-env.txt
Nginx配置:获取
获取您的网站之一的Nginx配置文件。
$ forge nginx-config:get {serverId} {siteId}
输出将写入STDOUT
,因此您可以直接将其保存到文件中
$ forge nginx-config:get {serverId} {siteId} > nginx.conf
Nginx配置:设置
更新您的网站之一的Nginx配置文件。
$ forge nginx-config:set {serverId} {siteId} --file=new.conf
如果您未提供--file
选项,则命令将在STDIN
中查找任何输入
$ forge nginx-config:set {serverId} {siteId} < new.conf
项目
git:install
在指定网站上安装git项目。
$ forge git:install {serverId} {siteId} --provider="github" --repository="username/repository"
选项 provider
可以是 github
(默认)或 custom
。
git:delete
从指定网站上移除git项目。您需要确认您的操作。
$ forge git:delete {serverId} {siteId}
wordpress:install
在指定网站上安装WordPress。
$ forge wordpress:install {serverId} {siteId} --database="name_of_database" --user="your_username"
wordpress:delete
从指定网站上移除WordPress项目。您需要确认您的操作。
$ forge wordpress:delete {serverId} {siteId}
食谱
recipe:make
创建一个新的食谱。
$ forge recipe:make --name="My Recipe" --user=forge --script="echo 'hi' >> /dev/null"
如果您不提供 --script
选项,命令将查找 STDIN
中的任何输入
$ forge recipe:make --name="My Recipe" --user=forge < file.txt
recipe:list
显示您Forge账户中的所有食谱。
$ forge recipe:list
recipe:show
显示有关您的某个食谱的信息。
$ forge recipe:show {recipeId}
recipe:run
在指定的服务器上运行给定的食谱。
$ forge recipe:run {recipeId} --server=1234 --server=5678
recipe:delete
删除给定的食谱。您需要确认您的操作。
$ forge recipe:delete {recipeId}
凭证
显示与您的账户关联的所有凭证。
$ forge credentials +-------+----------+--------+ | Id | Name | Type | +-------+----------+--------+ | 15071 | Personal | ocean2 | +-------+----------+--------+
贡献
所有贡献(拉取请求、问题和技术请求)都受欢迎。不过,请先阅读CONTRIBUTING.md。有关所有贡献者的信息,请参阅贡献者页面。
许可
sven/forge-cli
遵循MIT许可(MIT)。请参阅许可文件以获取更多信息。