Despliegue en Deno Deploy
Publica tu documentación en la red perimetral de Deno Deploy en menos de 60 segundos.
Despliegue en Deno Deploy #
Deno Deploy es una plataforma distribuida a nivel global que ejecuta código JavaScript y TypeScript en el Edge, en más de 35 regiones alrededor del mundo.
Zerho está arquitectado específicamente para Deno Deploy: su archivo raíz main.ts sirve como
servidor HTTP edge nativo y gestor de activos estáticos optimizado con compresión y encabezados de
caché inmutables.
Método 1: Integración con GitHub (Recomendado) #
- Sube tu proyecto Zerho a un repositorio de GitHub.
- Ingresa a la consola de Deno Deploy Dashboard.
- Haz clic en "New Project" y selecciona tu repositorio.
- En la configuración del proyecto:
- Entrypoint:
main.ts - Install step: Ninguno requerido (Deno descarga automáticamente en caché).
- Entrypoint:
- Haz clic en Deploy Project.
CONTINUO Cada vez que hagas git push a tu rama principal (main o master),
Deno Deploy generará un nuevo despliegue instantáneo sin tiempo de inactividad.
Método 2: Despliegue mediante CLI (`deployctl`) #
Si prefieres desplegar directamente desde tu terminal sin pasar por Git:
# 1. Instalar la herramienta oficial de Deno Deploy
deno install -A jsr:@deno/deployctl -g
# 2. Desplegar tu proyecto indicando el entrypoint
deployctl deploy --project=mi-documentacion main.ts
Rendimiento y Encabezados Edge #
El servidor main.ts de Zerho aplica automáticamente las mejores prácticas de rendimiento web:
// Configuración de encabezados automáticos de caché
const isAsset = filePath.startsWith("/assets/");
const cacheControl = isAsset
? "public, max-age=31536000, immutable"
: "public, max-age=3600, stale-while-revalidate=86400";
- Activos estáticos (CSS, JS): Almacenados en caché inmutable por 1 año (
max-age=31536000). - Páginas HTML: Cacheadas por 1 hora con revalidación en segundo plano
(
stale-while-revalidate=86400). - Cero Cold Starts: Arranque en el Edge en menos de 5ms.
GitHub Actions Workflow Opcional #
Si deseas ejecutar verificaciones de tipos y formateo antes de desplegar:
name: Deploy Zerho
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- name: Verificar Tipos y Build
run: |
deno check main.ts
deno task build
- name: Desplegar en Deno Deploy
uses: denoland/deployctl@v1
with:
project: "tu-proyecto-zerho"
entrypoint: "main.ts"