Repository navigation
Self-host: every link points at the install, never at coderhelm.com - #312
Merged
Merged
Conversation
A self-hosted install's emails, chat cards, GitHub comments and redirects now always use the install's own address, and support goes to its own inbox. Fixed: - Slack and Teams approval buttons and approval emails (agent_policy) used hardcoded app.coderhelm.com and api.coderhelm.com, and the approval link page redirected to app.coderhelm.com. - app_url and api_url fell back to the hosted addresses on the prod stage when the install's address was missing. A self-hosted install (SELF_HOSTED, set by the deploy, or what only a self-hosted install carries) now gets relative links, an error at start, and a failing "Web address answers" setup check instead. - The weekly summary's mailto unsubscribe and support ticket emails fell back to support@coderhelm.com; PLATFORM_ADMIN_EMAILS fell back to the hosted admin; the email footer fell back to coderhelm.com when SITE_URL was unset. On self-host they use the install's inbox, nobody, and no site. - The log analyzer's Teams and Slack cards defaulted to app.coderhelm.com; DASHBOARD_URL is now required (the deploy always sets it). - MCP dynamic registration named https://coderhelm.com as client_uri; it is now the install's own origin. - /openapi.json on a self-hosted install named api.coderhelm.com as its server; it now names the install's API. - The worker's "GitHub App is not installed" error linked to the hosted app; it now points at the install's GitHub settings. - New GET /auth/github/app redirects to this deployment's own GitHub App (install or configure), for the dashboard's buttons. Guards: tests render approval cards, plugin review cards, knowledge and log alert cards, merge-gate controls, unsubscribe and approval links, support emails, unsubscribe pages, the weekly summary, issue progress comments and the consulted-agents line as an install at https://coderhelm.example.com and fail on any coderhelm.com host other than docs.coderhelm.com. common/tests/no_hosted_urls.rs fails on new hardcoded app., api., stream. or auth.coderhelm.com (or the marketing site) in shipped code outside an allowlist with reasons.
This was referenced Oct 26, 2026
nambok
added a commit
that referenced
this pull request
Nov 4, 2026
Pins the dashboard to CoderHelm/coderhelm bb670f9 (#312): Version says one update state, Install health is its own section. Updates docs describe the page state by state and drop Update readiness.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A self-hosted install never sends people to coderhelm.com for anything that belongs to the install. Emails, Slack and Teams cards, GitHub comments, redirects and support all use the install's own address and inbox; coderhelm.com is only for the hosted service and its public docs. If the install doesn't know its own address, it now says so (an error at start and a failing Web address answers setup check) instead of quietly linking to app.coderhelm.com. Paired with the dashboard PR CoderHelm/coderhelm#227.
Changes
Fixed (links that belong to the install)
app.coderhelm.comandapi.coderhelm.com. They now useapp_urlandapi_url.public_urls: on a self-hosted install (SELF_HOSTED=1, now set by the deploy, or the setup endpoints, SSM URL parameter or release stamp that only a self-hosted install has),app_urlandapi_urlnever fall back to the hosted addresses. Until the address is known, links are relative, the services log an error at start, and the Web address answers check fails and says what is missing.app.coderhelm.com.DASHBOARD_URLis now required (the deploy always sets it).client_uri: https://coderhelm.com. It now sends the install's own origin./openapi.jsonserved by a self-hosted install namedapi.coderhelm.comas its server. It now names the install's API; the committed document is unchanged.GET /auth/github/app: redirects to this deployment's own GitHub App (a new installation withstate, or an installation's settings). The dashboard's GitHub App buttons use it.Fixed (support and admin)
support@coderhelm.com. On a self-hosted install they useSUPPORT_INBOX, elseSES_FROM_ADDRESS.PLATFORM_ADMIN_EMAILSfell back to the hosted admin. On a self-hosted install it falls back to nobody.SITE_URLwas unset. On a self-hosted install they show no site.Guards
https://coderhelm.example.com: approval cards (Slack and Teams) and links, sign-in prompts, plugin review cards and approval links, knowledge sign-in cards and emails, alert and log fix cards, merge-gate controls, the CI quarantine call, unsubscribe links and pages, support emails, the weekly summary for every role, issue progress comments and the consulted-agents line in PRs. Any coderhelm.com host other thandocs.coderhelm.comfails.services/common/tests/no_hosted_urls.rsscans services, lambdas, infra and the installer and fails on newapp.,api.,stream.orauth.coderhelm.com(or the marketing site) outside an allowlist, each entry with its reason.SELF_HOSTED=1; the hosted gateway doesn't.Docs
docs/self-host/email.md: what links, logos and support addresses a self-hosted install uses.docs/self-host/config-reference.md:SELF_HOSTED.Kept on purpose: hybrid's hosted API URL and the hosted-side
{name}.coderhelm.comfallback page; the committed OpenAPI document; the knowledge-sync User-Agent; the opt-in installer telemetry endpoint;docs.coderhelm.comlinks. The Jira Forge app (coderhelm-jira) is hosted-only and still names the hosted dashboard; it is listed in the audit, not changed here.Verification
cargo fmt --check,cargo clippy --workspace --all-targets -D warnings: clean.cargo test --workspace: 2140 passed, 16 ignored (after rebasing onto main).lambda/log-analyzer/handler.py, then passes once it is removed.python3 -m unittest discover -s lambda/tests: 105 passed.infra:npm test59 passed, including the newSELF_HOSTEDassertions.