浏览全部文档 · 23/37

功能简介

Sites 可管理 Site、Deployment、构建、运行时变量和访问入口,覆盖静态与受支持的服务端渲染场景。它依赖实例启用 Sites,并准备 Builder、Executor/Runtime、对象存储与 Proxy;缺少任一组件时,路由和 Console 页面存在也不能证明部署可用。

当前支持范围

  • 站点托管(PARTIAL):在启用 Sites 且准备好构建、运行时和代理组件的实例中,可部署静态或服务端渲染站点。

适用场景

  • 部署静态站点或受支持框架产物。
  • 从源码包、模板或 VCS 创建 Deployment。
  • 查看构建日志和切换 active Deployment。

前置条件

  • 实例 Feature Flag 已启用 Sites。
  • Builder、Runtime、Proxy 和对象存储可用。
  • 目标 Project 拥有 Sites 管理权限。

Console 操作路径

Console → Project → Sites。可选择 manual、template 或 repository 创建 Site,之后管理 Deployments、Settings、Usage 与实例已公开的 Domains 页面。

SDK 示例

SDK · TypeScript
import { Client, Sites, ID, Framework, BuildRuntime } from 'appbase-console-sdk';

const client = new Client()
  .setEndpoint('https://<APPBASE_HOST>/v1')
  .setProject('<PROJECT_ID>')
  .setKey('<API_KEY>');
const sites = new Sites(client);

const site = await sites.create({
  siteId: ID.unique(),
  name: 'Example site',
  framework: Framework.Vite,
  buildRuntime: BuildRuntime.Node22
});

REST 示例

REST · Bash
curl 'https://<APPBASE_HOST>/v1/sites' \
  -X POST \
  -H 'X-Appwrite-Project: <PROJECT_ID>' \
  -H 'X-Appwrite-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  --data '{"siteId":"unique()","name":"Example site","framework":"<SUPPORTED_FRAMEWORK>","buildRuntime":"<SUPPORTED_RUNTIME>"}'

权限模型

Site 与 Deployment 管理需要 sites.write/deployments.write 等 Scope;公开访问的响应仍由 Site 配置和 Proxy 决定。部署变量中的 Secret 不能返回给无权限客户端。

常见错误

现象处理建议
Site API disabled由实例管理员启用 Sites;不要通过修改客户端绕过。
Build failed检查 framework、runtime、install/build command 与构建日志。
Deployment 可用但域名不可达检查 Proxy、DNS、证书和实例网络。
403检查 Site/Deployment Scope 和 Project 服务开关。

当前限制

  • 并非所有实例默认启用 Sites。
  • 框架、Runtime、规格和并发以目标实例返回为准。
  • 本轮不把 Sites 自定义域名 CRUD 标为公开已支持能力。

Appwrite 兼容说明

Site、Deployment 与 Framework 分类保持兼容;AppBase 的可用范围以实例依赖和实际 Console/SDK 为准。

AppBase 增强说明

AppBase 把 Sites 纳入统一 Project、Key、Usage 与 Proxy 边界,但不承诺部署环境之外的 DNS/证书责任。

发布状态和验证 Commit

origin/main 条件支持。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353;使用前必须同时满足本页“当前限制”。

权威来源文件列表

  • backend-candidate:src/Appwrite/Platform/Modules/Sites/Http/Sites/
  • backend-candidate:tests/e2e/Services/Sites/SitesCustomServerTest.php
  • frontend-candidate:console/src/lib/components/sidebar.svelte
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/sites/

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/products/sites。上游页面不是 AppBase 实现证据。

继续阅读