Skip to content

Deno Deploy Deployment

Deno Deploy doesn't have a URL-level "one-click deploy button", but its GitHub integration is nearly equivalent — set it up once, then push deploys automatically.

Template repo URL

Copy this URL into the Deno Deploy console:

https://github.com/suxuemi/email-track-domain

Deployment steps

  1. Open dash.deno.com/new
  2. Sign in and pick Deploy from GitHub repository
  3. Authorize Deno Deploy to access your GitHub (first time)
  4. Select repository → paste the URL above
  5. Configuration:
    • Production branch: main
    • Entry point: deno-deploy/main.js
    • Install step: leave empty
    • Build step: leave empty
  6. Environment Variables (optional, defaults provided):
    • BACKEND_HOSTcf-track.laifa.xin
    • BACKEND_PROTOCOLhttp:
    • REDIRECT_TARGEThttps://www.google.com
  7. Click Deploy Project

After deployment you'll get a <project>.deno.dev domain.

Custom domain

Project Settings → Domains → Add Domain, follow the instructions to add a CNAME. See custom-domain.md.

Local development

bash
cd deno-deploy
deno run --allow-net --allow-env main.js

Serves at http://localhost:8000 by default. Test:

bash
curl -I http://localhost:8000/r/test
curl -I http://localhost:8000/test.php   # should return 302

Differences vs. other platforms

CloudflareVercelNetlifyDeno Deploy
L2 detection accuracyASN (high)IP-range (medium)IP-range (medium)IP-range (medium)
Code syntaxWorker ModuleEdge FunctionEdge FunctionDeno.serve()
One-click deploy buttonOfficialOfficialOfficialGitHub integration (1 manual step)
Free tier100K req/day100GB traffic100GB traffic1M req/month
Domain flexibilityDNS locked to CFAny DNS via CNAMEAny DNS via CNAMEAny DNS via CNAME

Deno Deploy's advantages:

  • Syntax closest to original Cloudflare Worker (addEventListener('fetch', ...) is also supported)
  • Most generous free tier (counted by requests, not by traffic)
  • Most global edge locations