Monorepo for Aesthetic.Computer
aesthetic.computer
1# 🌐 Custom Domain Setup - Quick Reference
2
3## Two Methods Available
4
5### Method 1: DNS Settings (Faster! ⚡)
6
7**Time:** ~2 minutes
8**Link:** https://dash.cloudflare.com/a23b54e8877a833a1cf8db7765bce3ca/aesthetic.computer/dns/records
9
10#### Steps:
111. Open DNS settings
122. Click **"Add record"**
133. Fill in:
14 - Type: `CNAME`
15 - Name: `grab`
16 - Target: `aesthetic-grab.aesthetic-computer.workers.dev`
17 - Proxy: **Enabled** (orange cloud ☁️)
184. Click **Save**
195. Wait ~30 seconds
206. Test: `curl -I "https://grab.aesthetic.computer/icon/128x128/prompt.png"`
21
22✅ Done!
23
24---
25
26### Method 2: Workers Dashboard
27
28**Time:** ~5 minutes
29**Link:** https://dash.cloudflare.com/
30
31### Method 2: Workers Dashboard
32
33**Time:** ~5 minutes
34**Link:** https://dash.cloudflare.com/
35
36#### Steps:
371. Go to **Workers & Pages**
382. Select **aesthetic-grab**
393. Click **Settings** → **Domains & Routes**
404. Click **"Add Custom Domain"**
415. Enter: `grab.aesthetic.computer`
426. Save and wait 2-5 minutes
43
44---
45
46## Which Method to Use?
47
48**Use DNS Method (Method 1) if:**
49- ✅ You want it done faster (30 seconds vs 2-5 minutes)
50- ✅ You prefer direct control over DNS
51- ✅ You're comfortable with DNS records
52
53**Use Workers Dashboard (Method 2) if:**
54- ✅ You prefer automated setup
55- ✅ You don't want to touch DNS directly
56- ✅ You're following the feed deployment pattern exactly
57
58**Both create the same result!** Choose whichever you prefer.
59
60---
61
62## What Gets Created
63
64Either method creates this DNS record:
65```
66Type: CNAME
67Name: grab.aesthetic.computer
68Target: aesthetic-grab.aesthetic-computer.workers.dev
69Proxy: Enabled (orange cloud)
70```
71
72---
73
74## Verification
75```fish
76# Test the custom domain
77curl -I "https://grab.aesthetic.computer/icon/128x128/prompt.png"
78
79# Expected response:
80# HTTP/2 200
81# content-type: image/png
82# cache-control: public, max-age=3600
83```
84
85✅ If you see `200 OK`, the setup is complete!
86
87---
88
89## What Happens Automatically
90
91### DNS Configuration
92Cloudflare creates:
93```
94grab.aesthetic.computer → aesthetic-grab.aesthetic-computer.workers.dev (CNAME)
95```
96
97### SSL/TLS Certificate
98- Automatic issuance via Let's Encrypt
99- Full (strict) encryption mode
100- HTTP → HTTPS redirect enabled
101
102### Routing
103- All requests to `grab.aesthetic.computer/*` → worker
104- Edge routing (no origin server needed)
105- Global CDN distribution
106
107---
108
109## Troubleshooting
110
111### Domain Not Resolving
112**Issue:** `curl: (6) Could not resolve host: grab.aesthetic.computer`
113
114**Solution:** Wait a few more minutes for DNS propagation
115
116**Check DNS:**
117```fish
118dig grab.aesthetic.computer
119nslookup grab.aesthetic.computer
120```
121
122### SSL Certificate Error
123**Issue:** Certificate mismatch or "not secure" warning
124
125**Solution:**
1261. Wait for certificate provisioning (can take 5-10 minutes)
1272. Force refresh: Clear browser cache
1283. Check Cloudflare SSL/TLS settings
129
130### 404 Not Found
131**Issue:** Domain resolves but returns 404
132
133**Solution:**
1341. Verify worker is deployed: `wrangler deployments list`
1352. Check custom domain in Dashboard is pointing to correct worker
1363. Try workers.dev URL to verify worker is running
137
138---
139
140## After Setup Complete
141
142### Update PLAN.md
143Mark custom domain task as complete:
144```markdown
145- [x] **Configure Custom Domain** ✅
146 - Domain: grab.aesthetic.computer
147 - SSL: Active
148 - DNS: Propagated
149```
150
151### Test Production Integration
152```fish
153# Test on live site
154curl -I "https://aesthetic.computer/icon/128x128/prompt.png"
155
156# Should redirect to:
157# https://grab.aesthetic.computer/icon/128x128/prompt.png
158
159# Test og:image
160curl -s "https://aesthetic.computer/prompt" | grep "og:image"
161# Should show: content="https://grab.aesthetic.computer/preview/1200x630/prompt.png"
162```
163
164### Monitor Logs
165```fish
166cd /workspaces/aesthetic-computer/grab
167npx wrangler tail
168```
169
170---
171
172## Reference URLs
173
174### Before Custom Domain Setup
175- Worker: `https://aesthetic-grab.aesthetic-computer.workers.dev`
176- Parse.mjs expects: `https://grab.aesthetic.computer` (hardcoded)
177- **Status:** Worker works but URLs don't match
178
179### After Custom Domain Setup
180- Worker: `https://grab.aesthetic.computer`
181- Parse.mjs expects: `https://grab.aesthetic.computer`
182- **Status:** ✅ Everything matches and works!
183
184---
185
186## Dashboard Quick Links
187
188**Main Dashboard:**
189https://dash.cloudflare.com/a23b54e8877a833a1cf8db7765bce3ca
190
191**Worker Settings:**
192https://dash.cloudflare.com/a23b54e8877a833a1cf8db7765bce3ca/workers/services/view/aesthetic-grab/production/settings
193
194**Domains & Routes:**
195https://dash.cloudflare.com/a23b54e8877a833a1cf8db7765bce3ca/workers/services/view/aesthetic-grab/production/settings/domains
196
197---
198
199## Completion Checklist
200
201- [ ] Logged into Cloudflare Dashboard
202- [ ] Navigated to aesthetic-grab worker
203- [ ] Added custom domain `grab.aesthetic.computer`
204- [ ] Waited for DNS propagation
205- [ ] Verified with curl command
206- [ ] Tested production integration
207- [ ] Updated PLAN.md
208- [ ] Monitoring logs for errors
209
210**Estimated Total Time:** 5-10 minutes (including DNS propagation)