Custom domains

Point your own domain at Shiprr, attach it to an app, and let Shiprr handle HTTPS automatically.

Quick reference
Target
edge.shiprr.dev
Subdomain CNAME
Root domain ALIAS / ANAME / flattening
Cloudflare DNS only during setup

Use the Shiprr target in your DNS provider. The dashboard shows the same target on each app's Domains tab.

How it works#

Every app gets a default Shiprr hostname such as my-app.shiprr.dev. You can keep using that hostname and attach one or more custom domains on top of it. Custom domains are served from the same production app, the Shiprr hostname stays active.

Attach a domain#

  1. Open your app in the dashboard.
  2. Go to Domains.
  3. Enter the domain you want to use, such as app.example.com.
  4. Attach the domain to the app.

You can also reuse an existing unassigned workspace domain from the same screen. A custom domain can only be attached to one app at a time.

DNS setup#

Shiprr gives every app a default hostname like my-app.shiprr.dev, but custom domains should point to the Shiprr custom-domain target, for example edge.shiprr.dev.

This keeps your customer DNS stable even if Shiprr changes the underlying IPs later.

For something like app.example.com, create a CNAME pointing to the Shiprr target.

app.example.com   CNAME   edge.shiprr.dev

Root domain / apex#

For something like example.com, use the DNS provider ALIAS, ANAME, or flattened CNAME support if it has one, and point it to the Shiprr target.

If your provider does not support ALIAS, ANAME, or CNAME flattening at the apex, use a subdomain instead such as www.example.com or app.example.com.

Step by step#

  1. Add the custom domain in Shiprr first.
  2. In your DNS provider, create the record:
    • Subdomain: CNAME → Shiprr target
    • Root domain: ALIAS, ANAME, or provider flattening → Shiprr target
  3. Wait for DNS to propagate.
  4. Open the domain over https://.
  5. Give TLS a minute or two to finish issuing.

Cloudflare#

You can use Cloudflare for DNS with Shiprr. The simplest setup is:

  1. Create the domain record in Cloudflare.
  2. Point it to the Shiprr target.
  3. Keep the record DNS only while setting it up.
  4. Add the domain in Shiprr and wait until it works over https://.

If you later enable Cloudflare proxying, use Full (strict) SSL mode. Flexible SSL is the wrong mode here and can cause redirect or TLS problems.

If you do not specifically need Cloudflare proxy features, leaving the record as DNS only is the simpler setup.

When to enable proxy#

Start with DNS only. That gives the cleanest path for initial validation and certificate issuance. Only enable the orange-cloud proxy after the domain is already working in Shiprr.

WAF and security rules#

If you use Cloudflare proxying with WAF or custom firewall rules, make sure requests to /.well-known/* are not blocked. Certificate validation and renewal depend on that path staying reachable.

CAA records#

If your domain uses CAA records, make sure they allow sectigo.com. Otherwise Shiprr may not be able to issue or renew the certificate.

If setup fails#

  • Switch the record back to DNS only.
  • Confirm the record still points to the Shiprr target.
  • Check that Cloudflare SSL mode is Full (strict).
  • Check that /.well-known/* is not challenged or blocked.

What not to point at#

  • Do not point custom domains at my-app.shiprr.dev.
  • Do not point custom domains directly at temporary platform IPs.
  • Do not proxy the Shiprr custom-domain target through another CDN unless you know how that affects certificate issuance.

TLS and SSL provisioning#

Shiprr provisions HTTPS automatically after the domain is attached and DNS is pointing at Shiprr. New domains can take a minute or two before the real certificate is issued. During that short window your browser may show a fallback certificate warning.

If the certificate still has not updated after a few minutes, check that:

  • The domain is attached to the correct app.
  • DNS has propagated to the Shiprr target.
  • Port 80 is reachable for certificate validation.
  • You are opening the domain over https://.

Important behavior#

  • Custom domains currently route to your production app.
  • Your default *.shiprr.dev hostname remains available.
  • You can attach multiple custom domains to the same app.
  • A single custom domain can only belong to one app at a time.

Common setup examples#

app.example.com   CNAME   edge.shiprr.dev
www.example.com   CNAME   edge.shiprr.dev
example.com       ALIAS   edge.shiprr.dev

For the rest of the deploy flow, see Deploying apps. If HTTPS does not finish provisioning, see Troubleshooting.