To serve your domain name from Heroku, you need to tell the DNS service you use where your server is hosted.
Typically, this is done by declaring an A record DNS entry: A records expect a static IP address and so you just fill in your server's IP.
The challenge with Heroku is that it uses dynamic IP addresses, so A records are not an option.
So the other option is to declare a CNAME record: a CNAME points a name to another CNAME or an A record.
Problem is: CNAMEs are NOT supposed to be used for root domains (AKA base domain or apex domain.) They will only work with subdomains.
So you could easily declare www.example.com
to point to your Heroku app (on ANY DNS service, including OVH), but not example.com
.
To help with this problem, some DNS services came up with their own solutions that basically let you point a root domain to another domain.
The Add a custom root domain section of the Heroku docs mentions a bunch of these providers:
ALIAS at DNSimple
ANAME at DNS Made Easy
ANAME at easyDNS
ALIAS at PointDNS
CNAME at CloudFlare -- a bit of a misnomer
OVH offers no such option (maybe unsurprisingly given most of their business comes from hosting servers.)
Bottom-line: if your domain name is provided by OVH, either use a subdomain (e.g.: www.mysite.com) or change your NS records to use a different DNS service, one that supports CNAME-like functionality at the apex.
I'm no sysadmin. I spent a lot of time on this issue too and hope this helps.