Features
Custom Domains
Overview

Custom Domains

Give your Odoo environment a professional, branded web address like erp.your-company.com instead of the default system subdomain.

Custom domains require a Pro plan or higher.


What You Get Automatically

When you deploy an environment, the platform automatically provides:

  • System Subdomain: Every environment gets a working address like acme-production.apps.oec.sh
  • SSL Certificate: Automatic HTTPS encryption via Let's Encrypt
  • Secure Connection: All traffic is automatically redirected from HTTP to HTTPS

No setup required - your environment is accessible immediately after deployment.


Two Ways to Add Custom Domains

OEC.sh offers two approaches for custom domains:

Option 1: Simple Custom Domain (Easiest)

Enter your domain directly in the environment settings. You manage DNS yourself.

  1. Go to your EnvironmentSettingsDomain tab
  2. Enter your domain in the Custom Domain field
  3. Save and redeploy
  4. Point your DNS A record to the server IP address

Best for: Users who prefer to manage DNS externally or use DNS providers not listed below.

Option 2: DNS-Managed Domains (Recommended)

Connect a supported DNS provider and let OEC.sh create and manage DNS records automatically.

Best for: Multiple environments, automatic DNS management, wildcard SSL certificates.


Supported DNS Providers

For DNS-managed domains, connect one of these providers:

ProviderCredentials Needed
CloudflareAPI Token
AWS Route 53Access Key ID, Secret Access Key, Region
Azure DNSSubscription ID, Resource Group, Tenant ID, Client ID, Client Secret
Google Cloud DNSProject ID, Service Account JSON
DigitalOceanAPI Token
Hetzner DNSDNS Console API Token (separate from Cloud token)
⚠️

Hetzner Users: Hetzner Cloud and Hetzner DNS Console use different API tokens. Your Cloud account token will not work for DNS. Get a DNS Console token from dns.hetzner.com (opens in a new tab).


Setting Up DNS Providers

Quick Setup (Recommended)

If you have cloud accounts connected (AWS, Cloudflare, DigitalOcean, Azure, Google):

  1. Go to SettingsDNS Providers tab
  2. Look for Quick Setup from Cloud Accounts
  3. Click your cloud account name
  4. Select a zone (domain) from your account
  5. Optionally enable Wildcard SSL and configure subdomain
  6. Click Create

Manual Setup

For providers not in your cloud accounts:

  1. Go to SettingsDNS Providers tab
  2. Click Add Provider
  3. Select your provider from the dropdown
  4. Enter the required credentials for your provider
  5. Click Verify & Fetch Zones
  6. Once verified, click Create Configuration

Adding a Domain to an Environment

Once your DNS provider is connected:

  1. Go to your ProjectEnvironmentDomains section
  2. Click Add Domain
  3. Select DNS Provider: Choose from your configured providers
  4. Select Zone: Pick your domain from the dropdown
  5. Enter Subdomain (optional): Leave empty for root domain, or enter a prefix like erp
  6. Configure options:
    • Automatically create DNS records: Creates A record automatically (recommended)
    • Proxy through Cloudflare: Enable Cloudflare proxy (orange cloud) - Cloudflare handles SSL
    • Set as primary domain: Mark this as the main domain for the environment
  7. Click Save

The domain preview shows exactly what URL will be created, like erp.your-company.com.

Cloudflare Proxy Option

When using Cloudflare, you can choose:

SettingWhat It Does
Proxy enabled (orange cloud)Traffic routes through Cloudflare. Cloudflare provides SSL. Cannot use Let's Encrypt.
DNS only (gray cloud)Direct connection to server. Uses Let's Encrypt for SSL.

If using Cloudflare proxy, set SSL/TLS mode to Full (Strict) in your Cloudflare dashboard.


Domain Status

After adding a domain, check its status:

StatusMeaning
PendingDomain added, waiting for DNS propagation
ActiveDomain verified and working
SSL PendingDomain verified, SSL certificate being issued
ErrorConfiguration problem - check DNS settings

To verify a domain manually, click the Verify button next to it.


SSL Certificates

All domains receive free SSL certificates from Let's Encrypt:

  • Automatic: Certificates are requested and installed automatically
  • Renewed Automatically: Certificates renew before they expire
  • Always Secure: HTTP traffic is redirected to HTTPS

Wildcard SSL

For organizations with many environments, wildcard SSL provides instant HTTPS for all subdomains.

During DNS Provider Setup:

  1. Enable Wildcard SSL (recommended) checkbox
  2. Select a zone from your DNS provider
  3. Enter a subdomain prefix (e.g., apps)
  4. Certificate will cover *.apps.your-domain.com

For Existing DNS Providers:

  1. Go to SettingsDNS Providers
  2. Find your provider and click Enable Wildcard SSL
  3. Select the zone and enter subdomain prefix
  4. Click Save
  5. Click Request SSL to issue the certificate

Certificate issuance takes 1-2 minutes. The status shows:

  • SSL Active: Certificate issued and working
  • Issuing...: Certificate being generated
  • Request SSL: Click to start certificate issuance

Removing a Domain

  1. Go to your EnvironmentDomains section
  2. Click the delete icon next to the domain
  3. Confirm the removal
⚠️

When you remove a domain, the DNS record is automatically deleted from your provider.

The system subdomain remains available after removing custom domains.


Troubleshooting

Domain Not Working After Adding

  • Wait 5-30 minutes for DNS changes to propagate globally
  • Click Verify to check if the domain is ready
  • Ensure the DNS record points to the correct server IP

SSL Certificate Not Showing

  • Verify the domain first - SSL is issued only after successful verification
  • Check that your domain resolves correctly using dnschecker.org (opens in a new tab)
  • Wait a few minutes after verification for the certificate to be issued

Domain Shows Wrong Site

  • Ensure you added the domain to the correct environment
  • Check that no other environment is using the same domain
  • Try redeploying the environment

DNS Provider Not Connecting

  • Double-check your credentials
  • For Hetzner, ensure you're using DNS Console token, not Cloud token
  • For Google Cloud, ensure the service account JSON is valid

What's Next?