sven/forge-cli

此包已被废弃,不再维护。作者建议使用 laravel/forge-cli 包。

一组与您的 Laravel Forge 服务器、站点等交互的命令

v0.5.0 2020-05-02 10:21 UTC

This package is auto-updated.

Last update: 2021-08-03 10:57:53 UTC


README

forge-cli

Forge CLI

Latest Version on Packagist Total Downloads Software License Build Status StyleCI

⚠️ 注意

此包已废弃:请使用 官方的 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 listforge 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

重启给定服务器上的服务。支持的服务有 nginxmysqlpostgres

$ forge service:reboot {serverId} {service}

service:stop

停止给定服务器上的服务。支持的服务有 nginxmysqlpostgres

$ forge service:stop {serverId} {service}

service:install

在给定服务器上安装服务。支持的服务有 blackfirepapertrail。当安装 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

从给定服务器上卸载服务。支持的服务有 blackfirepapertrail

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