Configure your custom domain DNS for Odoo
Introduction
Section titled “Introduction”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.
Requirements
Section titled “Requirements”- 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.
Step 1. Find your server’s IP address
Section titled “Step 1. Find your server’s IP address”- Sign in to My Cloudpepper.
- Open the Server your Odoo instance runs on.
- Copy the IPv4 address shown on the server dashboard.
You’ll paste this IP into the A record in the next step.
Step 2. Decide on your domain name
Section titled “Step 2. Decide on your domain name”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 allowArecords on the apex and requireALIAS/ANAMEinstead — 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:
| Field | Value |
|---|---|
| Type | A |
| Name / Host | erp (for erp.yourdomain.com), www (for www.yourdomain.com), or @ (for the root domain yourdomain.com) |
| Value / Points to | The IPv4 address from step 1 |
| TTL | Default (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.
Step 4. Verify DNS has propagated
Section titled “Step 4. Verify DNS has propagated”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.comshould return your server IP. - Command line (Windows):
nslookup erp.yourdomain.comshould 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.
Troubleshooting
Section titled “Troubleshooting”SSL certificate didn’t generate
Section titled “SSL certificate didn’t generate”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 Settings → Save 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.
Wrong IP returned by dig
Section titled “Wrong IP returned by dig”Two likely causes:
- An old
Arecord still exists with a different value — delete it. - An
AAAA(IPv6) orCNAMErecord on the same name is taking precedence — remove conflicting records.
Apex (@) doesn’t accept an A record
Section titled “Apex (@) doesn’t accept an A record”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
ALIASorANAMErecord 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.
Can I use a wildcard (*.yourdomain.com)?
Section titled “Can I use a wildcard (*.yourdomain.com)?”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.
How long does DNS propagation take?
Section titled “How long does DNS propagation take?”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.
Do I need an AAAA (IPv6) record too?
Section titled “Do I need an AAAA (IPv6) record too?”No, not required. Cloudpepper servers are reachable over IPv4 and that’s what Odoo and Cloudpepper’s SSL issuance check use.