> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 网站托管

> 专业的网站托管，具备企业级性能、Cloudflare Premium WAF 安全防护、免费全球 CDN 和超快 DNS。自动部署、免费 SSL，并支持所有现代框架。

<Frame>
  <img src="https://squarecloud.app/banners/zh/sites.png" alt="Square Cloud Sites 服务概览" style={{ borderRadius: "0.2rem" }} />
</Frame>

## 为什么选择 Square Cloud？

每个站点都在 Cloudflare 全球网络之后提供服务，默认内置免费 TLS、免费 CDN 和 DDoS 防护，无论你部署的是静态落地页还是完整的框架 SSR 应用，都能享有同样的生产级边缘。你只需配置一个子域名，我们负责处理证书、缓存和路由。

<CardGroup cols={2}>
  <Card title="Cloudflare 边缘 + Square Shield" icon="shield-check">
    每个站点都位于 **Cloudflare Premium WAF** 之后，并在其上叠加 **Square Shield Enterprise**，免费包含 DDoS 缓解、机器人过滤以及自动续期的 TLS。
  </Card>

  <Card title="NVMe + 10Gbps，隔离运行" icon="bolt">
    **三星企业级 NVMe SSD** 与 **10Gbps** 上行链路，你的应用运行在隔离容器中。搭配**免费的全球 CDN**，静态资源会在边缘缓存并就近送达每一位访客。
  </Card>

  <Card title="托管式 DNS" icon="globe">
    **自动 DNS，全球快速传播**，只需绑定自定义域名，Square Cloud 便为你管理记录和证书，无需手动折腾 DNS。
  </Card>

  <Card title="即时 snapshot" icon="server">
    **一键还原点**，免费包含。几秒内即可从损坏的 deploy 中恢复，无数据丢失、**零停机**。
  </Card>
</CardGroup>

## 支持的环境

我们提供广泛的兼容性，让你可以使用自己偏好的技术来托管你的站点。

### 框架

我们为市场上最流行的框架提供原生支持，确保兼容性与性能。

<Frame>
  <img src="https://squarecloud.app/banners/zh/runtimes.png" alt="Square Cloud Sites 支持的框架" style={{ borderRadius: "0.2rem" }} />
</Frame>

<Info>
  除了上面展示的框架之外，我们的平台还为几乎任何框架或库提供**通用支持**。我们灵活的基础设施会自动适应你项目的具体需求，确保与你所选技术的兼容。
</Info>

### 语言

<CardGroup cols={3}>
  <Card title="JavaScript" icon="node-js" href="../articles/getting-started-with-nodejs" />

  <Card title="Python" icon="python" href="../articles/getting-started-with-python" />

  <Card title="Java" icon="java" href="../articles/getting-started-with-java" />

  <Card title="Rust" icon="rust" href="../articles/getting-started-with-rust" />

  <Card title="Elixir" icon="droplet" href="../articles/getting-started-with-elixir" />

  <Card title="PHP" icon="php" href="../articles/getting-started-with-php" />

  <Card title="Go" icon="golang" href="../articles/getting-started-with-go" />

  <Card title="C#" icon="c" href="../articles/getting-started-with-csharp" />

  <Card title="Ruby" icon="gem" href="../articles/getting-started-with-ruby" />
</CardGroup>

## 开发者生态

借助我们的开发工具优化你的工作流：

* \*\*Square Cloud CLI：\*\*直接从终端管理你的应用。
* \*\*VSCode 扩展：\*\*将托管管理集成到你的编辑器中。
* \*\*GitHub Webhooks：\*\*基于事件配置自动部署。
* \*\*GitHub Actions：\*\*通过智能工作流自动化部署。
* \*\*SDK：\*\*以编程方式与我们的 API 交互。

## 如何托管我的网站？

<Steps>
  <Step title="配置文件" icon="file">
    在 **Square Cloud** 上托管站点的第一步是创建一个详尽的配置文件。这个文件不仅仅是一份简单的文本文档，而是一份定义应用在 **Square Cloud** 上各项设置的全面指南。它的作用就像你项目在平台上的架构蓝图。

    一旦你拥有套餐，就需要创建这个文件，详细说明每一项设置并正确填写。关于如何创建该文件的详细信息可在[此处](https://docs.squarecloud.app/zh/getting-started/config-file)查阅，其中包含分步指南。
    请记得在配置文件中包含以下字段：

    * \*\*SUBDOMAIN：\*\*你站点的子域名。<br />
      示例：`SUBDOMAIN=test`（test.squareweb.app）
    * \*\*MEMORY：\*\*RAM 的数量，**最小为 512MB**。
  </Step>

  <Step title="创建 ZIP 文件" icon="file-zip">
    配置文件准备好后，下一步是为上传准备你的应用。这包括将应用文件和 Square Cloud 配置文件放入一个 .zip 归档中。

    不过，并非所有文件都需要包含在这个 .zip 中。像 `node_modules`、`package-lock.json`、`pyproject.toml`、`poetry.lock` 和 `__pycache__` 这样的文件不是必需的，因为它们可以在服务器端自动生成。
  </Step>

  <Step title="依赖文件" icon="box">
    另一个关键方面是将依赖文件包含在 .zip 中。这个文件告诉 Square Cloud 平台为你的项目安装哪些依赖。对于 Node.js 项目，这个文件是 `package.json`；对于 Python 项目，则是 `requirements.txt`。

    这些文件列出了应用正确运行所需的库和包。保持这些文件的更新对于避免安装错误至关重要。此外，需要注意的是，像 Node.js 中的 `node-fetch` 和 Python 中的 `random` 这样的原生依赖不应包含在这些文件中，因为它们是内置库。
  </Step>

  <Step title="上传你的站点" icon="arrow-up">
    <Tip>如果你能在代码中设置 `port` 或 `START` 参数，请始终将其设置为 `port 80`。唯一的例外是托管 Lavalink 服务器时，详见[此处](https://docs.squarecloud.app/zh/tutorials/how-to-create-your-lavalink-server)。</Tip>
    在完成所有步骤并为 Square Cloud 配置好项目之后，就该上传你的站点了。前往 Square Cloud 网站上的上传页面，[在此处](https://squarecloud.app/zh/dashboard/new)上传你的 .zip 文件。

    流程很简单：选择你的 .zip 文件并点击上传按钮。Square Cloud 将启动部署流程，安装必要的依赖并根据你的配置文件配置环境。

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="正在上传应用到 Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>
