Skip to content

Deno Deploy デプロイ

Deno Deploy には URL レベルの「ワンクリックデプロイボタン」がありませんが、GitHub 連携によってほぼ同等の体験を実現できます — 一度設定すれば push で自動デプロイ。

テンプレートリポジトリ URL

以下の URL を Deno Deploy ダッシュボードにコピー:

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

デプロイ手順

  1. dash.deno.com/new を開く
  2. サインインして Deploy from GitHub repository を選択
  3. Deno Deploy に GitHub へのアクセスを許可(初回のみ)
  4. リポジトリを選択 → 上記の URL を貼り付け
  5. 設定:
    • Production branch: main
    • Entry point: deno-deploy/main.js
    • Install step: 空欄
    • Build step: 空欄
  6. Environment Variables(任意、デフォルト値あり):
    • BACKEND_HOSTcf-track.laifa.xin
    • BACKEND_PROTOCOLhttp:
    • REDIRECT_TARGEThttps://www.google.com
  7. Deploy Project をクリック

デプロイ後 <project>.deno.dev ドメインが付与されます。

カスタムドメイン

Project Settings → Domains → Add Domain で CNAME を追加。詳細は custom-domain.md

ローカル開発

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

デフォルトで http://localhost:8000 で起動。テスト:

bash
curl -I http://localhost:8000/r/test
curl -I http://localhost:8000/test.php   # 302 が返るはず

他プラットフォームとの違い

CloudflareVercelNetlifyDeno Deploy
L2 検出精度ASN(高)IP レンジ(中)IP レンジ(中)IP レンジ(中)
コード構文Worker ModuleEdge FunctionEdge FunctionDeno.serve()
ワンクリックデプロイボタン公式公式公式GitHub 連携(1 ステップ手動)
無料枠100K リクエスト/日100GB 転送量100GB 転送量100 万リクエスト/月
ドメイン柔軟性DNS は CF にロック任意の DNS で CNAME任意の DNS で CNAME任意の DNS で CNAME

Deno Deploy のメリット:

  • 構文が元の Cloudflare Worker に最も近い(addEventListener('fetch', ...) もサポート)
  • 無料枠が最も寛大(リクエスト数で計算、転送量ではない)
  • グローバルエッジロケーションが最も多い