在终端中部署并掌控你的应用

在浏览器中输入代码即可登录,一条命令部署任意文件夹,并在同一个终端中访问日志、数据库和工作区,输出可直接交给脚本读取。

Square Cloud CLI 是开源的,支持 macOS、Linux 和 Windows,适用于 x86 和 ARM。源代码已在 GitHub 上公开。

一条命令完成安装

安装脚本和 npm 包会从最新版本中下载适合你系统的构建,并在安装前核对校验和。

macOS、Linux 和 WSL

curl -fsSL https://cli.squarecloud.app/install | bash

安装到 /usr/local/bin,因此可能会要求输入密码。

Windows

npm i -g @squarecloud/cli

需要带 npm 的 Node.js。同一条命令在 macOS 和 Linux 上同样可用。

  • 使用版本发布的 SHA-256 校验和进行核对
  • 提供 x86 和 ARM 构建,包括 Apple 芯片
  • 要更新,再次运行同一条命令即可
其他安装方式

无需复制密钥即可登录

CLI 显示一个代码,你在浏览器中批准后,终端就会获得专属的密钥,与 VS Code 扩展的连接方式相同。

  1. 1

    终端显示代码

    运行登录命令后,浏览器会打开批准页面,终端则显示一个 8 位代码和倒计时。

  2. 2

    在浏览器中批准

    在 Square Cloud 页面输入代码并批准。切勿输入别人发给你的代码。

  3. 3

    CLI 已登录

    终端会确认你的账户,并保存一个专为它创建的密钥,只包含其命令需要的权限。

  • 每个密钥有效期 90 天,auth whoami 可查看到期时间
  • 替换本机上的其他账户前会先询问
  • 通过 SSH 时,--no-browser 会输出链接,可在任意设备上打开
  • 已有密钥?使用 --token 或 --with-token

从任意文件夹部署

将当前文件夹作为新应用上传,把更改发送到已有的应用,或关联 GitHub 仓库,让每次推送都自动部署。

  • 上传应用

    CLI 会按你的忽略规则压缩当前文件夹,创建应用,并输出其在控制台中的页面链接。

    uploadupload --file

    • 也可以发送现成的 zip
    • 如果项目中有 squarecloud.app,会把新 ID 写入其中
  • 提交更改

    将文件夹或 zip 发送到已有的应用。应用的 ID、域名和设置保持不变。

    commitcommit -rcommit --path

    • 按需在上传后重启应用
    • 可将文件放入应用中的某个文件夹
  • 每次推送自动部署

    通过 Square Cloud GitHub App 关联仓库和分支,或使用 GitHub 令牌创建 Webhook,全程无需离开终端。

    app deploy github linkapp deploy webhookapp deploy list

CLI 与 VS Code 共用一个忽略文件

upload、commit 和 zip 会排除项目根目录下 squarecloud.ignore 中列出的内容。VS Code 扩展读取同一个文件,规则也完全相同。

  • 与 .gitignore 相同的语法

    # 表示注释,! 用于恢复某个路径,dir/ 只匹配文件夹,/build 只匹配根目录,还支持 *、?、[abc] 和 **。以最后一条匹配的行为准,且不区分大小写。

  • 合理的默认规则

    node_modules、.git、.github、.vscode 以及 npm、pnpm 和 Yarn 的锁文件,在你的规则生效前就已排除。像 !yarn.lock 这样的一行可以把它重新加回来。

  • 发送前先检查

    squarecloud zip 会在你的文件夹中生成同样的压缩包,打开它就能准确看到将要上传的内容。

变量原样送达

你的应用通过 shell 加载环境变量。从 3.1.1 版本起,CLI 会给包含空格或 $、&、; 等字符的值加上引号再发送,避免 shell 截断或展开它们。

  • 在终端中设置

    可一次传入任意多个 KEY=VALUE。CLI 会从 squarecloud.app 读取应用,或让你从列表中选择。

    app env setapp env list

    • 使用单引号,值中含单引号时改用双引号
    • 已加引号的值按原样发送
  • 加载 .env 文件

    从文件读取 KEY=VALUE 行,并跳过注释和空行。以 export 开头的行和带引号的值同样支持。

    --from-file .env

    • 设置和替换变量时均可使用
    • 列表会以 KEY=VALUE 的形式显示
  • 安全的批量更改

    一次替换所有变量,或全部删除。两种操作都会在更改前确认,且替换时至少需要一个新变量。

    app env replaceapp env remove --all-y

    • 在脚本中可用一个标志代为确认
    • 回答否,则不做任何更改

为脚本和 CI 而生

程序可读的输出、名副其实的退出码,以及无需浏览器的密钥。

  • 按需输出 JSON

    输出数据的命令可以用 JSON 响应,stdout 中只有结果。其他命令会直接报错拒绝该标志,而不是输出会让解析器出错的文本。

    --json

  • 可靠的退出码

    任何失败都以 1 退出。在没有终端、也没有用于应答的标志而无法确认时,命令会失败且不做任何更改。

    -y

  • 干净的 stdout

    错误、提问和提示都输出到 stderr,请求 JSON 时进度也会输出到 stderr,因此管道中只有结果。

    stdoutstderr

  • 流水线专用密钥

    将账户中的密钥设置为环境变量,所有命令都会使用它,无需登录。当 CI 为 true 时,不会启动浏览器登录。

    SQUARECLOUD_API_KEYCI=true

  • 可放心分享的追踪

    设置一个变量,就会把每次 API 调用的方法、路径、状态和耗时输出到 stderr,绝不包含请求头、查询字符串或正文。

    SQUARECLOUD_DEBUG=1

  • GitHub Actions

    Square Cloud Action 会在 runner 上安装 CLI,用版本发布的校验和进行核对,并使用你的密钥运行任意命令。

    squarecloudofc/github-action@v2

平台的其他功能,同样可用

日志、指标、文件、快照、域名、数据库和工作区,一条命令即可触达。

  • 日志与实时流

    输出最新的日志行,或实时跟踪输出及每次状态变化。应用写入 stderr 的内容仍保留在 stderr。

    app logsapp realtime

  • 状态与指标

    查看单个应用的 CPU、内存、磁盘和运行时长,或为每个应用各显示一行,还能查看过去 24 小时的指标。

    app status --allapp metrics

  • 远程文件

    列出、读取、写入、移动和删除应用的文件。从文件写入可保持二进制内容完好,读取到文件时会在覆盖前先询问。

    app file readapp file write

  • 快照

    为应用和数据库创建并下载快照、列出其版本并恢复其中之一。

    app snapshot createdb snapshot restore

  • 域名与流量

    设置自定义域名,获取需要创建的 DNS 记录,查看边缘的分析、错误和性能数据,并清除缓存。

    app network domainapp network analytics

  • 数据库

    创建 MongoDB、MySQL、PostgreSQL 和 Redis 数据库,启动或停止它们,下载 TLS 证书并轮换密码。

    db createdb credentials reset

谨慎、开放,并且说你的语言

  • 支持八种语言

    消息、帮助和表格每次运行时都会跟随系统的显示语言。使用 LC_ALL 可以为单条命令指定其他语言。

  • 无需记住 ID

    大多数命令会从 squarecloud.app 读取应用,或列出你的应用供你选择。

  • 删除前先确认

    删除、替换所有变量、恢复快照或清除缓存前都会先询问,脚本可以用一个标志来确认。

  • 开源

    代码已在 GitHub 上公开,每个版本发布的构建都附有 SHA-256 校验和。

项目每个阶段都有合适的套餐

从小规模开始,按需扩展,无绑定合约。

4.9 分(满分 5 分)· Google + Trustpilot 上的 402 条评价Trustpilot

托管于持有以下认证的合作数据中心
Tier 3ISO 27001SOC 2 Type IIAlways-On DDoS 防护
了解我们的基础设施

准备好让你的项目 扩展 了吗?

加入超过 50 万名曾使用 Square Cloud 托管项目的开发者。

  • 可预期的价格
  • 账单无惊喜
  • 秒级部署
  • 高可用性
  • 稳定扩展
  • 自动重启
  • 含 SSL 与安全防护
  • 隔离容器