@@ -6,6 +6,7 @@ This guide explains how to configure dstack-ingress to work with different DNS p
66
77- ** Cloudflare** - The original and default provider
88- ** Linode DNS** - For Linode-hosted domains
9+ - ** Namecheap** - For Namecheap-hosted domains
910
1011## Environment Variables
1112
@@ -15,7 +16,7 @@ This guide explains how to configure dstack-ingress to work with different DNS p
1516- ` GATEWAY_DOMAIN ` - dstack gateway domain (e.g., ` _.dstack-prod5.phala.network ` )
1617- ` CERTBOT_EMAIL ` - Email for Let's Encrypt registration
1718- ` TARGET_ENDPOINT ` - Backend application endpoint to proxy to
18- - ` DNS_PROVIDER ` - DNS provider to use (` cloudflare ` , ` linode ` )
19+ - ` DNS_PROVIDER ` - DNS provider to use (` cloudflare ` , ` linode ` , ` namecheap ` )
1920
2021### Optional Variables
2122
@@ -53,7 +54,30 @@ LINODE_API_TOKEN=your-api-token
5354- If resolution fails, it falls back to CNAME (but CAA records won't work on that subdomain)
5455- This is a Linode-specific limitation not present in other providers
5556
56- ## Docker Compose Example
57+ ### Namecheap
58+
59+ ``` bash
60+ DNS_PROVIDER=namecheap
61+ NAMECHEAP_USERNAME=your-username
62+ NAMECHEAP_API_KEY=your-api-key
63+ NAMECHEAP_CLIENT_IP=your-client-ip
64+ ```
65+
66+ ** Required Credentials:**
67+ - ` NAMECHEAP_USERNAME ` - Your Namecheap account username
68+ - ` NAMECHEAP_API_KEY ` - Your Namecheap API key (from https://ap.www.namecheap.com/settings/tools/api-access/ )
69+ - ` NAMECHEAP_CLIENT_IP ` - Your public IP address (required for Namecheap API authentication)
70+
71+ ** Important Notes for Namecheap:**
72+ - Namecheap API requires your client IP address for authentication
73+ - You can find your public IP at https://www.whatismyip.com/
74+ - Namecheap doesn't support CAA records through their API currently
75+ - The certbot plugin uses the format ` certbot-dns-namecheap ` package
76+ - DNS propagation time is set to 120 seconds by default
77+
78+ ## Docker Compose Examples
79+
80+ ### Linode Example
5781
5882``` yaml
5983version : ' 3.8'
@@ -78,6 +102,33 @@ services:
78102 - ./evidences:/evidences
79103` ` `
80104
105+ ### Namecheap Example
106+
107+ ` ` ` yaml
108+ version : ' 3.8'
109+
110+ services :
111+ ingress :
112+ image : dstack-ingress:latest
113+ ports :
114+ - " 443:443"
115+ environment :
116+ # Common configuration
117+ - DNS_PROVIDER=namecheap
118+ - DOMAIN=app.example.com
119+ - GATEWAY_DOMAIN=_.dstack-prod5.phala.network
120+ 121+ - TARGET_ENDPOINT=http://backend:8080
122+
123+ # Namecheap specific
124+ - NAMECHEAP_USERNAME=your-username
125+ - NAMECHEAP_API_KEY=your-api-key
126+ - NAMECHEAP_CLIENT_IP=your-public-ip
127+ volumes :
128+ - ./letsencrypt:/etc/letsencrypt
129+ - ./evidences:/evidences
130+ ` ` `
131+
81132## Migration from Cloudflare-only Setup
82133
83134If you're currently using the Cloudflare-only version:
@@ -111,4 +162,10 @@ Ensure your API tokens/credentials have the necessary permissions listed above f
111162# ## Linode
1121631. Go to https://cloud.linode.com/profile/tokens
1131642. Create a Personal Access Token
114- 3. Grant "Domains" Read/Write access
165+ 3. Grant "Domains" Read/Write access
166+
167+ # ## Namecheap
168+ 1. Go to https://ap.www.namecheap.com/settings/tools/api-access/
169+ 2. Enable API access for your account
170+ 3. Note down your API key and username
171+ 4. Make sure your IP address is whitelisted in the API settings
0 commit comments