Deploy Dograh AI with your own custom domain name for a professional production setup. By now, you should be able to create and test a voice agent by following the previous guide to setup the platform on a remote server using DockerDocumentation Index
Fetch the complete documentation index at: https://docs.dograh.com/llms.txt
Use this file to discover all available pages before exploring further.
What is Custom Domain Deployment?
Custom domain deployment allows you to run Dograh AI with a personalized domain name (likevoice.yourcompany.com) instead of using IP addresses. This setup includes:
- Custom Domain: Access your application via a memorable domain name
- Automatic SSL: Proper SSL certificates from Let’s Encrypt or similar providers
- Professional Setup: Production-ready configuration for business use
- Easy Sharing: Share a clean URL with your team and customers
Prerequisites
Before starting, ensure you have:- A domain name you own (e.g.,
yourcompany.com) - Access to your domain’s DNS settings (usually through your domain registrar)
- Dograh AI already running on your server via the remote deployment guide
- Your server’s public IP address
Step 1: Configure DNS Records
You need to create a DNS record that points your domain to your server’s IP address.Add an A Record
Log in to your domain registrar or DNS provider and add an A record:| Setting | Value |
|---|---|
| Type | A |
| Name/Host | voice (or @ for root domain) |
| Value/Points to | Your server’s IP address (e.g., 203.0.113.50) |
| TTL | 300 (or default) |
DNS changes can take anywhere from a few minutes to 48 hours to propagate, though most changes take effect within 5-30 minutes. You can check if your DNS has propagated using tools like dnschecker.org.
Verify DNS Propagation
Before proceeding, verify that your domain points to your server:Step 2: Quick Setup (Recommended)
Once your DNS is configured, run the automated setup script that handles the rest.You must be at the same place where you had run
setup_remote.sh from. The directory should contain dograh/ with the artifacts that got created when setup_remote.sh was run.You must not move the
dograh/ directory to a different location after running setup_custom_domain.sh, since we set up auto certificate renewal script as certbot renewal hook pointing to the dograh/ directory.- Your domain name
- An email address for Let’s Encrypt notifications
- Verify DNS configuration
- Install Certbot
- Generate Let’s Encrypt SSL certificates
- Update the canonical public host/base URL settings in
.env - Validate the runtime config that
dograh-initwill render from.env - Configure automatic certificate renewal
- Restart Dograh services through the validated startup wrapper
https://voice.yourcompany.com.
If you prefer to set things up manually, continue with the steps below.
Manual Setup
If you prefer to configure everything manually, follow these steps instead of using the automated script.Install Certbot
Certbot is the official Let’s Encrypt client that automates SSL certificate generation. Ubuntu/Debian:Stop Dograh Services
Before generating certificates, stop the running Dograh services to free up port 80:Generate SSL Certificates
Run Certbot to obtain SSL certificates for your domain:voice.yourcompany.com with your actual domain name.
Certbot will:
- Verify that you control the domain
- Generate SSL certificates
- Store them in
/etc/letsencrypt/live/voice.yourcompany.com/
You’ll be prompted to enter an email address for renewal notifications and agree to the terms of service.
Copy Certificates to Dograh Directory
Copy the generated certificates to the dograh certs directory:Update Canonical Public URL Settings
Update.env so the canonical remote settings point at your domain:
Start Dograh Services
Start Dograh through the validated startup wrapper sodograh-init regenerates nginx and coturn runtime config before Docker starts:
Access Your Application
Your application is now available at:Set Up Certificate Renewal
Let’s Encrypt certificates expire after 90 days. Set up automatic renewal. Create a renewal hook script that copies the new certificates:Troubleshooting
Certificate Generation Fails
If Certbot fails to generate certificates:- Port 80 blocked: Ensure port 80 is open in your firewall and no service is using it
- DNS not propagated: Wait for DNS changes to propagate and verify with
nslookup - Rate limits: Let’s Encrypt has rate limits. If you’ve exceeded them, wait before retrying
SSL Certificate Errors in Browser
If you see SSL errors after setup:- Verify the certificates were copied correctly:
ls -la dograh/certs/ - Run
./remote_up.sh --preflight-onlyindograh/to verify thedograh-initruntime render matches.env - Restart the nginx container:
sudo docker compose --profile remote restart nginx
WebRTC Connection Issues
If voice calls don’t connect after domain setup:- Ensure TCP/UDP ports 3478, 5349, and UDP 49152-49200 are still open
- Check that
PUBLIC_HOST/PUBLIC_BASE_URLin.envmatch your domain, then re-run./remote_up.sh