Help Center

Domains

Custom domains and HTTPS

Use the default apps.marvx.io address or a free domain, connect your own domain with an A record, verify DNS, and get automatic Let's Encrypt HTTPS.

Manage domains on the project's Domains tab or the Domains page. Changes need the Developer role or higher.

Addresses every app gets

  • https://<project>-<id>.apps.marvx.io, created after the first successful deployment.
  • A Free domain (e.g. my-api-a1b2c3.<server-ip>.sslip.io) that works without DNS setup.

Connect your own domain

  1. Click Add domain. Domain: hostname only (app.example.com or example.com), no https://, path or port. A hostname can belong to only one app on MarvX.
  2. Optional: Path (serve only a prefix like /api), Container port (instead of the app's PORT), Strip path (remove the prefix before your app sees it), HTTPS (on; leave it on), Certificate (Let's Encrypt or None (bring your own)).
  3. Click Add domain. The app redeploys automatically to apply routing; this doesn't count toward monthly deployments.
  4. Add the record shown under Point your domain at MarvX:
TypeNameValue
A@ for an apex domain, or the subdomain part (e.g. app)The IP shown on the Domains tab
  1. Choose Check DNS. "DNS is set up correctly" adds a DNS verified badge.

Use an A record with that exact IP, not a CNAME to your apps.marvx.io address.

HTTPS

  • With Let's Encrypt, a certificate is issued automatically on the first visit after DNS points at MarvX (usually within a minute) and renews automatically.
  • All HTTP requests redirect to HTTPS, so turning HTTPS off makes the domain unreachable.
  • None (bring your own) serves the platform's default certificate; browsers warn unless a proxy like Cloudflare (SSL mode Full) handles TLS for visitors. Uploading your own certificate isn't supported.

www and apex

www.example.com and example.com are separate: add both, each with an A record. MarvX doesn't redirect between them.

Managing domains

Domain menu: Open, Edit, Check DNS, Copy URL, Remove (redeploys so the hostname stops routing). A Routing error badge means routing couldn't be applied yet; click Deploy.

Cloudflare

Let's Encrypt can't validate through Cloudflare's proxy (orange cloud). Either:

  1. Recommended: set the record to DNS only (grey cloud), or
  2. Keep it proxied, set Certificate to None (bring your own) and Cloudflare SSL/TLS to Full (not Full strict). Check DNS will show Cloudflare IPs; that's expected.

Problems? See Troubleshooting domains and HTTPS.