chore: Console public domain - #821
Conversation
Prepares the apex cutover: the console build now targets the API at public.meshllm.cloud instead of the apex meshllm.cloud, so the console stops depending on the apex before meshllm.cloud becomes the static site.
The console image build was failing because 9 crates added since the last copy-list update (mesh-llm-cli, mesh-llm-commands, mesh-llm-embedded-runtime, mesh-llm-events, mesh-llm-hardware-profile, mesh-llm-native-runtime, mesh-llm-runtime-install, mesh-llm-sdk, mesh-llm-tui) were never COPYed into the build context, so cargo could not resolve the workspace manifest.
📝 WalkthroughWalkthroughThis PR updates the default VITE_API_URL to https://public.meshllm.cloud, expands the Docker Rust build stage to copy additional workspace crates into the build context, and updates site/domain documentation and funding manifest references to meshllm.cloud. ChangesDeployment Configuration & Site updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
This PR updates the Fly.io console build configuration so the UI targets the public Mesh endpoint by default, and ensures the Docker build includes additional workspace crates needed for the Rust build stage.
Changes:
- Updated the default
VITE_API_URLfromhttps://meshllm.cloudtohttps://public.meshllm.cloudfor both the Docker build and Fly build args. - Expanded the Rust builder stage Docker context to include additional
crates/mesh-llm-*workspace directories during image build.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
fly/Dockerfile |
Switches UI default API endpoint to public.meshllm.cloud and copies additional workspace crates into the Rust build stage. |
fly/console/fly.toml |
Updates Fly build arg VITE_API_URL to target https://public.meshllm.cloud. |
Repoint the public website's custom domain and canonical URLs from docs.meshllm.cloud to the apex meshllm.cloud, ahead of the DNS cutover: - website/src/CNAME -> meshllm.cloud (GitHub Pages custom domain) - site.js canonical url -> https://meshllm.cloud - funding.json wellKnown + .well-known/funding-manifest-urls -> apex - fly/README.md: console is at public.meshllm.cloud, not the apex docs.meshllm.cloud will become a Cloudflare 301 redirect to meshllm.cloud/docs/ (see DOMAIN_CUTOVER.md).
Documents the sequenced steps to move the console to public.meshllm.cloud (done), flip the apex meshllm.cloud to the GitHub Pages marketing site, redirect docs.meshllm.cloud to meshllm.cloud/docs/ via Cloudflare, and decommission the apex cert on Fly. Includes verification curls and rollback.
There was a problem hiding this comment.
🧹 Nitpick comments (4)
fly/DOMAIN_CUTOVER.md (4)
137-150: 💤 Low valueConsider adding a rollback procedure for Step 4.
Document how to re-add the apex certificate to Fly if issues are discovered after removal:
fly certs add meshllm.cloud -a mesh-llm-console. This would be needed if you need to revert the apex back to the console for any reason.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fly/DOMAIN_CUTOVER.md` around lines 137 - 150, Add a brief rollback section to Step 4 that documents how to re-add the apex certificate to Fly if removal causes issues: instruct rerunning the Fly certs add command (e.g., `fly certs add meshllm.cloud -a mesh-llm-console`), mention verifying the console afterwards with the existing status check (`curl -s https://public.meshllm.cloud/api/status | head -c 120`), and note any quick checks to confirm DNS/SSL propagation before declaring rollback complete.
45-45: 💤 Low valueConsider adding language identifiers to fenced code blocks.
Several code blocks lack language specifiers, which affects syntax highlighting and markdown linting. Consider adding identifiers:
- Lines 45, 68, 75, 108: DNS records →
```dnsor```text- Line 119: Cloudflare expression →
```javascriptor```textAlso applies to: 68-68, 75-75, 108-108, 119-119
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fly/DOMAIN_CUTOVER.md` at line 45, Add language identifiers to the fenced code blocks in DOMAIN_CUTOVER.md: update the DNS record blocks (the fenced blocks around the DNS example lines referenced) to use ```dns or ```text for proper highlighting, and annotate the Cloudflare expression block with ```javascript or ```text; locate the DNS record blocks and the Cloudflare expression block by searching for the fenced code fences near the comments about DNS records and Cloudflare expression and prepend the appropriate language tag to each opening ``` fence.Source: Linters/SAST tools
146-149: ⚡ Quick winAdd verification that the apex domain still serves the marketing site after cert removal.
After removing the apex certificate from Fly, verify that
meshllm.cloudcontinues to serve the GitHub Pages marketing site, not just thatpublic.meshllm.cloudremains functional.🧪 Enhanced verification commands
Verify the console is unaffected: ```bash curl -s https://public.meshllm.cloud/api/status | head -c 120 + +# Verify apex still serves GitHub Pages +curl -sI https://meshllm.cloud/ | grep -i 'server\|content-type' +# Expect: GitHub Pages server, text/html content-type🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fly/DOMAIN_CUTOVER.md` around lines 146 - 149, Add an extra verification step to ensure the apex domain still serves the GitHub Pages marketing site after removing the Fly apex certificate: in addition to the existing curl check for https://public.meshllm.cloud/api/status, run a header check against https://meshllm.cloud (e.g., using curl -sI https://meshllm.cloud/ and grepping for server and content-type) to confirm the response indicates GitHub Pages (text/html and GitHub Pages server) so the apex is still serving the marketing site.
101-134: 💤 Low valueConsider adding a rollback procedure for Step 3.
While the redirect rule is low-risk, documenting how to roll back (remove the Cloudflare redirect rule and optionally restore the
docsDNS record to point to GitHub Pages) would improve operational completeness.📋 Suggested rollback section
Add after line 128:
**Rollback:** In Cloudflare Rules → Redirect Rules, disable or delete the `docs.meshllm.cloud` redirect rule. Optionally restore the `docs` DNS record to point to GitHub Pages IPs or CNAME if you want to serve the old docs subdomain directly.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@fly/DOMAIN_CUTOVER.md` around lines 101 - 134, Add a short rollback subsection to Step 3 documenting how to undo the redirect: instruct operators to disable or delete the `docs.meshllm.cloud` Redirect Rule in Cloudflare Rules → Redirect Rules and to optionally restore the `docs` DNS record (CNAME for `docs` pointing back to GitHub Pages or the original Pages IPs) if they want to serve the subdomain directly again; include that this is sufficient to revert the 301 behavior and mention restoring the `docs` record is optional.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@fly/DOMAIN_CUTOVER.md`:
- Around line 137-150: Add a brief rollback section to Step 4 that documents how
to re-add the apex certificate to Fly if removal causes issues: instruct
rerunning the Fly certs add command (e.g., `fly certs add meshllm.cloud -a
mesh-llm-console`), mention verifying the console afterwards with the existing
status check (`curl -s https://public.meshllm.cloud/api/status | head -c 120`),
and note any quick checks to confirm DNS/SSL propagation before declaring
rollback complete.
- Line 45: Add language identifiers to the fenced code blocks in
DOMAIN_CUTOVER.md: update the DNS record blocks (the fenced blocks around the
DNS example lines referenced) to use ```dns or ```text for proper highlighting,
and annotate the Cloudflare expression block with ```javascript or ```text;
locate the DNS record blocks and the Cloudflare expression block by searching
for the fenced code fences near the comments about DNS records and Cloudflare
expression and prepend the appropriate language tag to each opening ``` fence.
- Around line 146-149: Add an extra verification step to ensure the apex domain
still serves the GitHub Pages marketing site after removing the Fly apex
certificate: in addition to the existing curl check for
https://public.meshllm.cloud/api/status, run a header check against
https://meshllm.cloud (e.g., using curl -sI https://meshllm.cloud/ and grepping
for server and content-type) to confirm the response indicates GitHub Pages
(text/html and GitHub Pages server) so the apex is still serving the marketing
site.
- Around line 101-134: Add a short rollback subsection to Step 3 documenting how
to undo the redirect: instruct operators to disable or delete the
`docs.meshllm.cloud` Redirect Rule in Cloudflare Rules → Redirect Rules and to
optionally restore the `docs` DNS record (CNAME for `docs` pointing back to
GitHub Pages or the original Pages IPs) if they want to serve the subdomain
directly again; include that this is sufficient to revert the 301 behavior and
mention restoring the `docs` record is optional.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 1cead964-f62a-4ea1-960f-afe2db5d35e5
📒 Files selected for processing (6)
fly/DOMAIN_CUTOVER.mdfly/README.mdwebsite/src/.well-known/funding-manifest-urlswebsite/src/CNAMEwebsite/src/_data/site.jswebsite/src/funding.json
✅ Files skipped from review due to trivial changes (5)
- website/src/.well-known/funding-manifest-urls
- website/src/CNAME
- website/src/funding.json
- website/src/_data/site.js
- fly/README.md
* origin/main: Salvage safe bits from reverted MoA PR (#820) (#824) Revert "Stabilize mesh MoA context and tool loops (#820)" (#823) Stabilize mesh MoA context and tool loops (#820) chore: flip docs pages to canonical URLs (#822) chore: Console public domain (#821) Add meshllm.cloud website, catalog viewer, and onboarding docs (#806) # Conflicts: # docs/index.html
will merge this when deployed
Summary by CodeRabbit