Despliega tu sitio de Astro con Deno
Puedes desplegar un sitio de Astro estático o renderizado bajo demanda utilizando Deno, ya sea en tu propio servidor o en Deno Deploy, un sistema distribuido que ejecuta JavaScript, TypeScript y WebAssembly en el edge, a nivel mundial.
Esta guía incluye instrucciones para ejecutar tu sitio de Astro en tu propio servidor con Deno y desplegarlo en Deno Deploy a través de GitHub Actions o la CLI de Deno Deploy.
Requisitos
Sección titulada «Requisitos»Esta guía asume que ya tienes instalado Deno.
Configuración del proyecto
Sección titulada «Configuración del proyecto»Tu proyecto de Astro puede ser desplegado como un sitio estático o como un sitio renderizado bajo demanda.
Sitio estático
Sección titulada «Sitio estático»Tu proyecto de Astro es un sitio estático por defecto. No necesitas ninguna configuración adicional para desplegar un sitio estático de Astro con Deno, o en Deno Deploy.
Adaptador para renderizado bajo demanda
Sección titulada «Adaptador para renderizado bajo demanda»Para habilitar el renderizado bajo demanda en tu proyecto de Astro usando Deno, y para desplegarlo en Deno Deploy:
-
Instala el adaptador
@deno/astro-adapteren las dependencias de tu proyecto utilizando tu gestor de paquetes preferido:Ventana de terminal npm install @deno/astro-adapterVentana de terminal pnpm install @deno/astro-adapterVentana de terminal yarn add @deno/astro-adapter -
Actualiza el archivo de configuración de tu proyecto
astro.config.mjscon los cambios a continuación.astro.config.mjs import { defineConfig } from 'astro/config';import deno from '@deno/astro-adapter';export default defineConfig({output: 'server',adapter: deno(),}); -
Actualiza tu script
previewenpackage.jsoncon el cambio a continuación.package.json {"scripts": {"dev": "astro dev","start": "astro dev","build": "astro build","preview": "astro preview""preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs"}}Ahora puedes usar este comando para previsualizar localmente tu sitio de Astro en producción con Deno.
Ventana de terminal npm run previewVentana de terminal pnpm run previewVentana de terminal yarn run preview
Cómo desplegar
Sección titulada «Cómo desplegar»Puedes ejecutar tu sitio de Astro en tu propio servidor o desplegarlo en Deno Deploy a través de GitHub Actions o usando la CLI (interfaz de línea de comandos) de Deno Deploy.
En tu propio servidor
Sección titulada «En tu propio servidor»-
Copia tu proyecto a tu servidor.
-
Instala las dependencias del proyecto utilizando tu gestor de paquetes preferido:
Ventana de terminal npm installVentana de terminal pnpm installVentana de terminal yarn install -
Construye tu sitio de Astro con tu gestor de paquetes preferido:
Ventana de terminal npm run buildVentana de terminal pnpm run buildVentana de terminal yarn run build -
Inicia tu aplicación con el siguiente comando:
Ventana de terminal deno run -A jsr:@std/http/file-server distVentana de terminal deno run -A ./dist/server/entry.mjs
Despliegue con GitHub Actions
Sección titulada «Despliegue con GitHub Actions»Si tu proyecto está alojado en GitHub, el sitio web de Deno Deploy te guiará para configurar GitHub Actions y desplegar tu sitio de Astro.
-
Sube tu código a un repositorio público o privado de GitHub.
-
Inicia sesión en Deno Deploy con tu cuenta de GitHub y haz clic en New Project.
-
Selecciona tu repositorio, la rama desde la que deseas realizar el despliegue y elige el modo GitHub Action. (Tu sitio de Astro requiere un paso de compilación y no puede usar el modo automático.)
-
En tu proyecto de Astro, crea un nuevo archivo en
.github/workflows/deploy.ymly pega el YAML a continuación. Este es similar al YAML proporcionado por Deno Deploy, con los pasos adicionales necesarios para tu sitio de Astro..github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Necesario para la autenticación con Deno Deploycontents: read # Necesario para clonar el repositoriosteps:- name: Clone repositoryuses: actions/checkout@v7# ¿No usas npm? Cambia `npm ci` por `pnpm i` o `yarn install`- name: Install dependenciesrun: npm ci# ¿No usas npm? Cambia `npm run build` por `pnpm run build` o `yarn run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: reemplazar con el nombre del proyecto de Deno Deployentrypoint: jsr:@std/http/file-serverroot: dist.github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Necesario para la autenticación con Deno Deploycontents: read # Necesario para clonar el repositoriosteps:- name: Clone repositoryuses: actions/checkout@v7# ¿No usas npm? Cambia `npm ci` por `pnpm i` o `yarn install`- name: Install dependenciesrun: npm ci# ¿No usas npm? Cambia `npm run build` por `pnpm run build` o `yarn run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: reemplazar con el nombre del proyecto de Deno Deployentrypoint: dist/server/entry.mjs -
Después de hacer commit de este archivo YAML y subirlo a GitHub en tu rama de despliegue configurada, ¡el despliegue debería comenzar automáticamente!
Puedes seguir el progreso usando la pestaña “Actions” en la página de tu repositorio de GitHub, o en Deno Deploy.
Despliegue con la CLI
Sección titulada «Despliegue con la CLI»-
Instala la CLI de Deno Deploy.
Ventana de terminal deno install -gArf jsr:@deno/deployctl -
Construye tu sitio de Astro con tu gestor de paquetes preferido:
Ventana de terminal npm run buildVentana de terminal pnpm run buildVentana de terminal yarn run build -
¡Ejecuta
deployctlpara desplegar!Ventana de terminal cd dist && deployctl deploy jsr:@std/http/file-serverVentana de terminal deployctl deploy ./dist/server/entry.mjsPuedes seguir todos tus despliegues en Deno Deploy.
-
(Opcional) Para simplificar la compilación y el despliegue en un solo comando, añade un script
deploy-denoenpackage.json, adaptándolo para tu gestor de paquetes preferido.package.json {"scripts": {"dev": "astro dev","start": "astro dev","build": "astro build","preview": "astro preview","deno-deploy": "npm run build && cd dist && deployctl deploy jsr:@std/http/file-server"}}package.json {"scripts": {"dev": "astro dev","start": "astro dev","build": "astro build","preview": "deno run --allow-net --allow-read --allow-env ./dist/server/entry.mjs","deno-deploy": "npm run build && deployctl deploy ./dist/server/entry.mjs"}}Luego puedes usar este comando para compilar y desplegar tu sitio de Astro en un solo paso.
Ventana de terminal npm run deno-deployVentana de terminal pnpm run deno-deployVentana de terminal yarn run deno-deploy