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)。请参阅许可文件以获取更多信息。
