-
-
Notifications
You must be signed in to change notification settings - Fork 3.9k
wechaty.js.org #10325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wechaty.js.org #10325
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the wechaty subdomain from its old CDN hosting (cdn.chatie.io) to a new Cloudflare Pages deployment (wechaty-js-org.pages.dev), removing the // noCF comment that previously indicated the domain should bypass Cloudflare proxying.
Key Changes
- Updated target URL from
cdn.chatie.iotowechaty-js-org.pages.dev - Removed the
// noCFcomment since Cloudflare Pages domains work well with Cloudflare proxying
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
MattIPv4
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👋 Hi! You need to fill out the PR description template that was provided to you when you created your PR, as we need the information it requests to process your subdomain request. If you need to reference the template again, it can be found at https://raw.githubusercontent.com/js-org/js.org/refs/heads/master/PULL_REQUEST_TEMPLATE.md -- the description of your PR must match the format in the template exactly, with you providing the information that it requests.
|
@MattIPv4 thanks for the notice, I have updated the description of PR to include those questions. |
MattIPv4
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅ Commit valid, site has content based on https://wechaty-js-org.pages.dev/
I trust that your site is configured ready to work with the requested js.org subdomain.
|
@huan I've just made the change:
But the page/cloudflare returns an error now. |
|
@huan FYI: #9927 (comment) |
|
@indus Thank you so much for merging and pointing out the issue. I have fixed it with this script: #!/bin/sh
CF_ACCOUNT_ID=$1
CF_ACCOUNT_EMAIL=$2
GLOBAL_API_KEY=$3
curl -X POST \
"https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/pages/projects/wechaty-js-org/domains" \
-H "X-Auth-Email: $CF_ACCOUNT_EMAIL" \
-H "X-Auth-Key: $GLOBAL_API_KEY" \
-H "Content-Type: application/json" \
--data '{"name":"wechaty.js.org"}'
curl -X GET \
"https://api.cloudflare.com/client/v4/accounts/$CF_ACCOUNT_ID/pages/projects/wechaty-js-org/domains" \
-H "X-Auth-Email: $CF_ACCOUNT_EMAIL" \
-H "X-Auth-Key: $GLOBAL_API_KEY"Output: # POST
{
"result": {
"id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"domain_id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"name": "wechaty.js.org",
"status": "initializing",
"verification_data": {
"status": "pending"
},
"validation_data": {
"status": "initializing",
"method": "http"
},
"certificate_authority": "google",
"created_on": "2025-11-14T21:25:59.70087Z"
},
"success": true,
"errors": [],
"messages": []
}
# GET (pending)
{
"result": [
{
"id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"domain_id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"name": "wechaty.js.org",
"status": "pending",
"verification_data": {
"status": "active"
},
"validation_data": {
"status": "pending",
"method": "http"
},
"certificate_authority": "google",
"created_on": "2025-11-14T21:25:59.70087Z"
}
],
"success": true,
"errors": [],
"messages": [],
"result_info": {
"page": 1,
"per_page": 20,
"count": 1,
"total_count": 1,
"total_pages": 1
}
}
# GET (succeed)
{
"result": [
{
"id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"domain_id": "f29c763d-99b8-42a5-b872-890ebefc6b7d",
"name": "wechaty.js.org",
"status": "active",
"verification_data": {
"status": "active"
},
"validation_data": {
"status": "active",
"method": "http"
},
"certificate_authority": "google",
"created_on": "2025-11-14T21:25:59.70087Z"
}
],
"success": true,
"errors": [],
"messages": [],
"result_info": {
"page": 1,
"per_page": 20,
"count": 1,
"total_count": 1,
"total_pages": 1
}
}The reason is that: ❌ CNAME Cross-User Banned — Error 1014This error means:
This is a hard restriction Cloudflare has for cross-account CNAMEs when the target does not explicitly allow it. And Cloudflare Pages does NOT automatically whitelist domains that point to .pages.dev unless the domain is registered in the Pages project.
This is why you are seeing Error 1014 even though DNS is correct. Here's the original error message for documentation purpose - I believe there will be someone has the same issue in the future. |
|
That feels like an AI answer, and it's not really correct, though your script is. Cloudflare Pages needs to know what domains to respond to, and you need to add a js.org subdomain via the API specifically because the UI has an additional public suffix list check that the API doesn't. This guidance is in our wiki: https://github.com/js-org/js.org/wiki/3rd-party-hosts |
|
totally forgot about the info in the wiki 🤦♂️ |

This PR requests a JS.org subdomain for the Wechaty community website.
Domain: wechaty.js.org
Target: wechaty-js-org.pages.dev
Cloudflare Pages deployment is live and HTTPS-enabled.
The website is a reverse-proxy that merges two GitHub Pages repos:
Thank you!