Skip to main content
Every Vulpy Commerce environment exposes four hostnames: the storefront, a preview host, the Medusa API, and Matomo analytics. Point each hostname to your VPS public IP with an A record (or AAAA for IPv6). If you use a load balancer, use a CNAME instead. Caddy handles TLS automatically once DNS resolves.
Ask Fox to draft the record set. Fox knows your storefront and staging labels and can spit out the exact records for your registrar.Try prompts like:
  • “What DNS records do I need for shop.example.com?”
  • “Draft a Cloudflare record set for staging and live.”
  • “Explain why wildcards are useful here.”

Live environment records

Create one A record per hostname that points to the public IP of your server. If you prefer, a single wildcard A record *.example.com covers all four labels at once, and makes adding a staging environment later effortless.

Staging environment

Staging uses the same four hostnames, but prefixed with staging. on your domain. For example:
  • staging.shop.example.com
  • staging.preview.example.com
  • staging.api.example.com
  • staging.analytics.example.com
Create the same A or CNAME records for the staging labels, pointing to the staging server IP. Because environments are isolated Docker Compose projects, staging and live can run on the same host or on separate hosts.

Tailscale-only installs

If you chose Tailscale as your access mode during installation, no public DNS records are required. Fox and all services are reachable inside your tailnet via Tailscale MagicDNS names. The Fox WebUI and storefront are served over HTTPS on ports 443 and 80 directly on the MagicDNS hostname. For details, see Tailscale access.

No-domain mode (sslip.io)

When you select no public domain during setup, DNS is implicit. Each hostname resolves automatically through sslip.io using your server IP, for example 203.0.113.4.sslip.io. This is useful for quick previews, demos, and test installs without registering a domain. You can switch to a real domain later by updating the environment configuration and creating the records below.

Wildcard records

A single wildcard record *.example.com pointing to your server IP covers the apex shop, preview, API, analytics, and any future staging labels. This is the recommended pattern unless your DNS provider does not support wildcards.

Change your domain

1

Set the new domain

Run the CLI command for the target environment:
2

Verify the environment

Confirm the variables updated correctly:
3

Point DNS

Create or update the A records for the four hostnames to the server IP.
4

Go live

Once DNS resolves, run:
Point your DNS records to the server IP before running pnpm vulpy env golive live. Caddy requests a TLS certificate from Let’s Encrypt or ZeroSSL immediately. If DNS has not propagated, ACME will fail and enter retry backoff, which delays serving HTTPS.

Go live

Run the golive command, verify HTTPS, and switch the preview host to production.

Edge deploy

Deploy to edge nodes, manage edge environment status, and view edge logs.