🚀 Feature: Self-hosted multi-region console (region picker + runtime regions catalog)
维护者通常 5 天内回复
还没有人认领这个 Issue。
评估
调研方向
首先跟踪现有的区域选择器、创建/引导流程、项目卡片,以及 issue 中引用的 getApiEndpoint/getProjectEndpoint 辅助函数。在选择方案之前,检查提议的运行时区域目录 /console/regions 以及 issue #12964 中的后端依赖。完成的标准是:自托管多区域运营者可以加载不断变化的区域数据、选择区域、在项目列表中看到该区域,并使用已配置的区域端点。
由索引模型根据 Issue 内容生成。
描述
🔖 Feature description
Console already has Cloud multi-region UX (region catalog, create/onboarding region, regional API endpoint helpers, org project region badges). Almost all of that is gated on Cloud (isCloud / PUBLIC_CONSOLE_MODE=cloud).
Self-hosted operators running a meta API plus regional APIs cannot use that UI today: no region picker, create/onboarding omits region, and there is no supported way to load a region catalog or map a project’s region to an API host without Cloud’s organizations.listRegions / Cloud subdomain conventions.
🎤 Pitch
Once the backend can run meta + regional stacks (https://github.com/appwrite/appwrite/issues/12964), the console must:
- Load a self-hosted region catalog at runtime (no rebuild when regions change)
- Let operators pick a region when creating projects (create modal + onboarding)
- Route SDK/API calls using an explicit optional hostname/endpoint per region
- Show region on org project lists
Without this, self-hosted multi-region only works via raw API and is unusable for normal console workflows.
👍 Solution / proposed scope
Discuss and (if accepted) implement:
-
isMultiRegion(or equivalent) — e.g.PUBLIC_APPWRITE_MULTI_REGION=trueand/or a console variable from the API (_APP_SUPPORTS_MULTI_REGION), not Cloud-only. -
Runtime region catalog — serve a static JSON file from the console nginx image, e.g.
GET /console/regions, so Helm/compose can mount a ConfigMap/volume without rebuilding the SPA. Shape should mirror the API catalog idea ($id,name, availability flags) plus optional routing fields:hostname→{page-protocol}//{hostname}/v1endpoint→ full API base (with or without/v1)- Example:
{ "$id": "fra", "name": "Frankfurt", "disabled": false, "available": true, "hostname": "fra.example.com" } - If neither
hostnamenorendpointis set, keep existing Cloud subdomain behavior as fallback (or same-origin).
-
Create + onboarding — when multi-region is on, show the region picker and send
regionon project create. Prefer the self-hosted create modal, not the Cloud wizard (Cloud path can coalesce region todefault). -
Org UI — show region name on project cards when multi-region is enabled (same presentation as Cloud).
-
Align
getApiEndpoint/getProjectEndpoint/ copy-display URLs with the catalog overrides.
We prototyped this in a Helm/nginx setup (ConfigMap-mounted /console/regions). Happy to adjust to whatever maintainers prefer (API-served catalog vs static file) as long as it stays runtime-configurable and host-explicit.
Depends on / coordinated with backend multi-region: https://github.com/appwrite/appwrite/issues/12964
👀 Have you spent some time to check if this issue has been raised before?
- I checked; existing console region work targets Cloud subdomain routing / Cloud APIs, not self-hosted multi-region UX with a runtime catalog.
🏢 Have you read the Contributing Guidelines on issues?
- I have read the Contributing Guidelines (https://github.com/appwrite/console/blob/main/CONTRIBUTING.md) (open an issue explaining the idea before a PR; discuss fit with roadmap).
- 主要语言
- Svelte
- 星标
- 393
- 派生
- 261
- 平均合并
- 26 分钟
- 30 天内合并 PR
- 4
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
相似的 Issue
-
Coverage
难度 2/5 1-3 小时 新手友好度 62/100
aws-cloudformation/cloudformation-coverage-roadmap#2590 · 6 个 reaction ·
-
难度 2/5 1-3 小时 新手友好度 66/100
scaleway/terraform-provider-scaleway#4515 ·
维护者通常 1 天内回复
-
CKV_GCP_18 (GKEPublicControlPlane) passes when master_authorized_networks_config is absent, control plane is internet-reachable可能已有人在做 @Varshith-Kali 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
bridgecrewio/checkov#7753 ·
维护者通常 1 天内回复
-
help wanted
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
bug customer-reported data-plane question Service Attention Storage
难度 2/5 1-3 小时 新手友好度 69/100
Azure/azure-rest-api-specs#47397 · 2 条评论 ·
维护者通常 1 天内回复