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, en todo el mundo.
Esta guía incluye instrucciones para ejecutar tu sitio de Astro en tu propio servidor con Deno, y desplegar 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 Deno instalado.
Configuración del proyecto
Sección titulada “Configuración del proyecto”Tu proyecto de Astro se puede desplegar 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 el enrutamiento bajo demanda
Sección titulada “Adaptador para el enrutamiento bajo demanda”Para habilitar el enrutamiento bajo demanda en tu proyecto de Astro usando Deno, y para desplegar en Deno Deploy:
-
Instala el adaptador
@deno/astro-adapteren las dependencias de tu proyecto utilizando tu gestor de paquetes preferido:Ventana de la terminal npm install @deno/astro-adapterVentana de la terminal pnpm install @deno/astro-adapterVentana de la 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 tu sitio de Astro de producción localmente con Deno.
Ventana de la terminal npm run previewVentana de la terminal pnpm run previewVentana de la terminal yarn run preview
Cómo desplegar
Sección titulada “Cómo desplegar”Puedes ejecutar tu sitio de Astro en tu propio servidor, o desplegar en Deno Deploy a través de GitHub Actions o utilizando 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 en tu servidor.
-
Instala las dependencias del proyecto utilizando tu gestor de paquetes preferido:
Ventana de la terminal npm installVentana de la terminal pnpm installVentana de la terminal yarn -
Compila tu sitio de Astro con tu gestor de paquetes preferido:
Ventana de la terminal npm run buildVentana de la terminal pnpm run buildVentana de la terminal yarn run build -
Inicia tu aplicación con el siguiente comando:
Ventana de la terminal deno run -A jsr:@std/http/file-server distVentana de la terminal deno run -A ./dist/server/entry.mjs
Despliegue con GitHub Actions
Sección titulada “Despliegue con GitHub Actions”Si tu proyecto está almacenado en GitHub, el sitio web de Deno Deploy te guiará para configurar GitHub Actions para 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 (Nuevo proyecto).
-
Selecciona tu repositorio, la rama desde la que deseas desplegar y selecciona 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. Esto 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 # Needed for auth with Deno Deploycontents: read # Needed to clone the repositorysteps:- name: Clone repositoryuses: actions/checkout@v6# Not using npm? Change `npm ci` to `yarn install` or `pnpm i`- name: Install dependenciesrun: npm ci# Not using npm? Change `npm run build` to `yarn build` or `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: replace with Deno Deploy project nameentrypoint: jsr:@std/http/file-serverroot: dist.github/workflows/deploy.yml name: Deployon: [push]jobs:deploy:name: Deployruns-on: ubuntu-latestpermissions:id-token: write # Needed for auth with Deno Deploycontents: read # Needed to clone the repositorysteps:- name: Clone repositoryuses: actions/checkout@v6# Not using npm? Change `npm ci` to `yarn install` or `pnpm i`- name: Install dependenciesrun: npm ci# Not using npm? Change `npm run build` to `yarn build` or `pnpm run build`- name: Build Astrorun: npm run build- name: Upload to Deno Deployuses: denoland/deployctl@v1with:project: my-deno-project # TODO: replace with Deno Deploy project nameentrypoint: dist/server/entry.mjs -
¡Después de confirmar este archivo YAML y subirlo a GitHub en tu rama de despliegue configurada, el despliegue debería comenzar automáticamente!
Puedes realizar el seguimiento del progreso utilizando 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 la terminal deno install -gArf jsr:@deno/deployctl -
Compila tu sitio de Astro con tu gestor de paquetes preferido:
Ventana de la terminal npm run buildVentana de la terminal pnpm run buildVentana de la terminal yarn run build -
¡Ejecuta
deployctlpara desplegar!Ventana de la terminal cd dist && deployctl deploy jsr:@std/http/file-serverVentana de la terminal deployctl deploy ./dist/server/entry.mjsPuedes realizar el seguimiento de todos tus despliegues en Deno Deploy.
-
(Opcional) Para simplificar la compilación y el despliegue en un solo comando, agrega un script
deploy-denoen el archivopackage.json.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 la terminal npm run deno-deploy