Skip to content

Configure your custom domain DNS for Odoo

To use your own domain (e.g. erp.yourdomain.com or yourdomain.com) with your Odoo instance on Cloudpepper, you need to point that domain to your server’s IP address with an A record at your DNS provider. Once DNS is correct, Cloudpepper issues an SSL certificate automatically and your instance becomes reachable over HTTPS.

This guide is provider-agnostic — the steps work with any DNS host (your domain registrar, Cloudflare, Route 53, Hetzner DNS, DigitalOcean DNS, Google Domains, GoDaddy, Namecheap, OVH, etc.). If you use Cloudflare and want proxying + SSL modes, see Set up Cloudflare for Odoo (DNS & SSL) instead.

  • A domain you own and can edit DNS records for.
  • A server provisioned with Cloudpepper (deploy guides).

If you don’t have a domain ready yet, you can use a free *.cloudpepper.site subdomain (e.g. yourname.cloudpepper.site) and switch later under Instance → Domain Settings.

  1. Sign in to My Cloudpepper.
  2. Open the Server your Odoo instance runs on.
  3. Copy the IPv4 address shown on the server dashboard.

You’ll paste this IP into the A record in the next step.

Pick the domain name you want to use for your Odoo instance:

  • Subdomain (recommended): erp.yourdomain.com, odoo.yourdomain.com, app.yourdomain.com. Easiest to set up — most DNS providers fully support A records on subdomains.
  • Root / apex: yourdomain.com. Some DNS providers don’t allow A records on the apex and require ALIAS / ANAME instead — see the FAQ below.
  • www: www.yourdomain.com. Same as any other subdomain.

You can also add multiple domains to the same instance later (for multi-website setups) — see the multi-website FAQ at the bottom of this page.

Step 3. Create an A record at your DNS provider

Section titled “Step 3. Create an A record at your DNS provider”

Log in to whichever provider hosts your domain’s DNS and create a new record with these values:

FieldValue
TypeA
Name / Hosterp (for erp.yourdomain.com), www (for www.yourdomain.com), or @ (for the root domain yourdomain.com)
Value / Points toThe IPv4 address from step 1
TTLDefault (300 – 3600 seconds is fine)

The exact field labels vary by provider — common variants:

  • Cloudflare: DNS → Records → Add record. See the Cloudflare-specific guide for proxy/SSL mode.
  • GoDaddy: My Products → Domain → DNS → Add (or edit existing A @ record).
  • Namecheap: Domain List → Manage → Advanced DNS → Add New Record.
  • Route 53: Hosted Zones → your zone → Create record.
  • DigitalOcean DNS: Networking → Domains → your domain → Add record.
  • Hetzner DNS: Console → DNS → your zone → Add record.

If there’s already a conflicting record for the same name (A, AAAA, or CNAME), delete it first. You should have one record per name.

DNS changes take from a few seconds to a few hours to propagate, depending on your previous TTL. Confirm your record is live before creating or updating the Odoo instance:

  • Online: paste your domain into nslookup.io and check the A record matches your server IP.
  • Command line (macOS / Linux): dig +short erp.yourdomain.com should return your server IP.
  • Command line (Windows): nslookup erp.yourdomain.com should return your server IP.

If you still see the old value, wait — your previous TTL controls how long stale responses live in resolver caches.

Step 5. Create or update your Odoo instance

Section titled “Step 5. Create or update your Odoo instance”

Once DNS resolves to your server IP:

  • New instance: follow Create a new Odoo instance and enter your domain (e.g. erp.yourdomain.com) in the Domain name field.
  • Existing instance: open your instance in My Cloudpepper → Domain Settings (cog icon) → update the domain name → Save.

Cloudpepper will request an SSL certificate automatically. Within a minute or two, your Odoo instance should be reachable at https://erp.yourdomain.com with the lock icon in the browser.

The most common cause is DNS not pointing to the correct IP at the moment Cloudpepper tried to issue the certificate. Verify with dig (step 4), then in My Cloudpepper open your instance → Domain SettingsSave to retry SSL issuance.

If you’re behind Cloudflare with the orange-cloud (Proxied) setting on Full (Strict), Cloudflare blocks the issuance challenge until a cert exists on the origin — set Cloudflare to Full (not strict) for the first issuance, then switch back. See the Cloudflare guide for details.

”Site can’t be reached” / domain doesn’t resolve

Section titled “”Site can’t be reached” / domain doesn’t resolve”

DNS hasn’t propagated yet, or the A record has the wrong value. Re-check with dig +short yourdomain.com and confirm it returns your server IP exactly. If it returns nothing or a different IP, go back to step 3.

Two likely causes:

  • An old A record still exists with a different value — delete it.
  • An AAAA (IPv6) or CNAME record on the same name is taking precedence — remove conflicting records.

Some DNS providers don’t support plain A records on the apex domain. Use the provider’s flattening equivalent:

  • Cloudflare: A record on @ works fine (uses CNAME flattening under the hood).
  • DNSimple, DigitalOcean, Route 53: use an ALIAS or ANAME record on @ pointing to your server.
  • Most others: A records on apex are supported natively — just enter @ or leave the host field blank.

If your provider doesn’t support any apex flattening, the workaround is to use www.yourdomain.com for Odoo and set a redirect from the apex.

Can I point multiple domains to the same Odoo instance?

Section titled “Can I point multiple domains to the same Odoo instance?”

Yes — this is how Odoo’s multi-website feature works. Add the additional domain on Odoo Domain Settings in My Cloudpepper. Before saving, make sure each additional domain has its own A record pointing to the same server IP, with no conflicting CNAME or AAAA records. Cloudpepper issues a separate SSL certificate per domain.

After adding the domain in Cloudpepper, configure it in Odoo: Website → Configuration → Websites, then add or update a website to use the new domain.

Yes, if you host multiple Odoo instances on the same Cloudpepper server. Create a wildcard A record (Name: *, value: server IP) and each subdomain will resolve automatically. Each instance still gets its own SSL certificate when you assign the subdomain to it. Useful for agencies managing many client Odoo environments.

Usually under 5 minutes if your previous TTL was low. If you’d never created records for this name before, it’s almost instant. If you’re changing an existing A record with a 24h TTL, plan for up to that long worldwide — though most resolvers update much faster.

No, not required. Cloudpepper servers are reachable over IPv4 and that’s what Odoo and Cloudpepper’s SSL issuance check use.