Basecamp Sherpa
Reference

Domain

Configure basecamp-sherpa.com DNS on Namecheap with Railway and wildcard subdomains for agent instances.

Overview

Each agent instance gets a unique subdomain under agent.basecamp-sherpa.com. A wildcard DNS record routes all subdomains to the agent Railway service — no DNS changes needed per instance.

https://acme.agent.basecamp-sherpa.com/webhooks
https://xyz.agent.basecamp-sherpa.com/webhooks

DNS Records (Namecheap)

Configure these in Namecheap → Domain List → Manage → Advanced DNS:

TypeHostValueTTL
CNAMEwww<console-service>.up.railway.appAuto
CNAMEconsole<console-service>.up.railway.appAuto
CNAME*.agent<agent-service>.up.railway.appAuto
URL Redirect@https://www.basecamp-sherpa.com

Namecheap does not support CNAME records at the apex (@). Use a URL Redirect from @ to https://www.basecamp-sherpa.com, or switch to a DNS provider that supports ALIAS/ANAME records (e.g. Cloudflare).

Railway Custom Domains

Add domains to the Console service

In Railway, go to Console service → Settings → Networking → Custom Domain and add:

  • basecamp-sherpa.com
  • www.basecamp-sherpa.com
  • console.basecamp-sherpa.com

Add wildcard domain to the Agent service

In Railway, go to Agent service → Settings → Networking → Custom Domain and add:

  • *.agent.basecamp-sherpa.com

Railway automatically provisions a wildcard TLS certificate via Let's Encrypt.

Domain Map

URLServicePurpose
basecamp-sherpa.comConsoleRedirects to www
www.basecamp-sherpa.comConsoleMarketing & landing page
console.basecamp-sherpa.comConsoleSaaS dashboard
<slug>.agent.basecamp-sherpa.comAgentPer-instance webhook receiver

Instance Routing

The agent service extracts the subdomain from the Host header to identify which instance the request belongs to:

const host = req.headers.get("host"); // "acme.agent.basecamp-sherpa.com"
const slug = host?.split(".")[0];

const { data: instance } = await supabase
  .from("instances")
  .select()
  .eq("slug", slug)
  .single();

Each instance's webhook URL is:

https://<slug>.agent.basecamp-sherpa.com/webhooks

Provisioning Flow

When a new instance is provisioned:

  1. Worker generates a unique slug (e.g. acme-corp)
  2. Slug is stored in the instances table
  3. The wildcard DNS + Railway domain handle routing automatically
  4. User receives their webhook URL immediately — no DNS propagation delay

No per-instance DNS or Railway configuration is needed. The wildcard covers all subdomains.

Migrating to Cloudflare (Optional)

For DDoS protection and edge caching, you can move DNS to Cloudflare:

  1. Create a Cloudflare account and add basecamp-sherpa.com
  2. Update nameservers on Namecheap to Cloudflare's
  3. Recreate the same DNS records in Cloudflare
  4. Cloudflare supports CNAME flattening at the apex — no redirect needed for @