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:Terminal window npm install @deno/astro-adapterTerminal window pnpm install @deno/astro-adapterTerminal window 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.
Terminal window npm run previewTerminal window pnpm run previewTerminal window 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:
Terminal window npm installTerminal window pnpm installTerminal window yarn install -
Construye tu sitio de Astro con tu gestor de paquetes preferido:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
Inicia tu aplicación con el siguiente comando:
Terminal window deno run -A jsr:@std/http/file-server distTerminal window 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.
Terminal window deno install -gArf jsr:@deno/deployctl -
Construye tu sitio de Astro con tu gestor de paquetes preferido:
Terminal window npm run buildTerminal window pnpm run buildTerminal window yarn run build -
¡Ejecuta
deployctlpara desplegar!Terminal window cd dist && deployctl deploy jsr:@std/http/file-serverTerminal window 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.
Terminal window npm run deno-deployTerminal window pnpm run deno-deployTerminal window yarn run deno-deploy