🚀 Feature: Self-hosted multi-region console (region picker + runtime regions catalog)
Maintainer thường phản hồi trong vòng 5 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu bằng cách lần theo bộ chọn region hiện có, các flow tạo/onboarding, các project card và các helper getApiEndpoint/getProjectEndpoint được tham chiếu trong issue. Xem xét catalog runtime /console/regions được đề xuất và dependency backend trong issue #12964 trước khi chọn một phương án. Được xem là hoàn thành khi các operator self-hosted multi-region có thể tải dữ liệu region thay đổi, chọn một region, thấy region đó trong danh sách project và sử dụng các endpoint theo region đã cấu hình.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
🔖 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).
- Ngôn ngữ chính
- Svelte
- Star
- 393
- Fork
- 261
- Merge trung bình
- 26 phút
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue tương tự
-
type: cleanup
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
googleapis/google-cloud-swift#1477 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
aws/sagemaker-python-sdk#6495 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[DOC] Wrong sg_egress_ports range in the Terraform Databricks Guide for AWS Hub & Spoke with Network FirewallCó thể đã có người làm @akhil9tiet đã nhận hôm nay. Đang mởdocs
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
databricks/terraform-provider-databricks#6080 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
prometheus-operator/prometheus-operator#8891 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Document SSM parameter resolution pattern and CI IAM requirements for AWS configsCó thể đã có người làm @fullsend-ai-coder đã nhận 1 ngày trước. Đang mởdocumentation good first issue ready-for-triage ready-to-code
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
konflux-ci/multi-platform-controller#1099 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày