Pular para o conteúdo

Faça deploy do seu site Astro com Deno

Você pode fazer deploy de um site Astro renderizado no servidor para o Deno Deploy, um sistema distribuído que executa JavaScript, TypeScript e WebAssembly na edge globalmente.

Este guia inclui instruções para fazer deploy para o Deno Deploy através de GitHub Actions ou da CLI do Deno Deploy.

Este guia assume que você já tem Deno instalado.

Seu projeto Astro pode ter deploy feito no Deno Deploy como um site renderizado no lado do servidor (SSR). Deno Deploy não suporta sites estáticos.

Para habilitar SSR no seu projeto Astro para fazer deploy no Deno Deploy:

Adicione o adaptador para Deno para habilitar SSR no seu projeto Astro com o seguinte comando astro add. Ele irá instalar o adaptador e fazer as mudanças apropriadas para seu arquivo astro.config.mjs de uma vez.

Terminal window
npx astro add deno

Se você prefere instalar o adaptador manualmente, complete as duas etapas a seguir:

  1. Instale o adaptador @astrojs/deno nas dependências do seu projeto utilizando seu gerenciador de pacotes de preferência. Se você estiver utilizando npm ou não tiver certeza, execute isso no terminal:

    Terminal window
    npm install @astrojs/deno
  2. Atualize o arquivo de configuração do seu projeto astro.config.mjs com as mudanças abaixo.

    astro.config.mjs
    import { defineConfig } from 'astro/config';
    import deno from '@astrojs/deno';
    export default defineConfig({
    output: 'server',
    adapter: deno(),
    });

    Em seguida, atualize seu script preview em package.json com as mudanças abaixo.

    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"
    }
    }

    Você agora pode utilizar esse comando para pré-visualizar seu site Astro em produção localmente com Deno.

    Terminal window
    npm run preview

Você pode fazer o deploy para o Deno Deploy através de GitHub Actions ou utilizando a CLI (interface de linha de comando) do Deno Deploy.

Se o seu projeto está armazenado no GitHub, o website do Deno Deploy irá te guiar em como configurar o GitHub Actions para fazer deploy do seu site Astro.

  1. Faça push do seu código para um repositório público ou privado do GitHub.

  2. Inicie sua sessão no Deno Deploy com sua conta do GitHub e clique em New Project.

  3. Selecione seu repositório, a branch do qual você quer que o deploy e selecione o modo GitHub Action. (Seu site Astro requer uma etapa de build e portanto não pode utilizar o modo automático.)

  4. No seu projeto Astro, crie um novo arquivo em .github/workflows/deploy.yml e copie o YAML abaixo. Isso é similar ao YAML dado pelo Deno Deploy, com as etapas adicionais necessárias para seu site Astro.

    name: Deploy
    on: [push]
    jobs:
    deploy:
    name: Deploy
    runs-on: ubuntu-latest
    permissions:
    id-token: write # Necessário para se autenticar com o Deno Deploy
    contents: read # Necessário para clonar o repositório
    steps:
    - name: Clone repository
    uses: actions/checkout@v4
    # Não está utilizando npm? Mude `npm ci` para `yarn install` ou `pnpm i`
    - name: Install dependencies
    run: npm ci
    # Não está utilizando npm? Mude `npm run build` para `yarn build` ou `pnpm run build`
    - name: Build Astro
    run: npm run build
    - name: Upload to Deno Deploy
    uses: denoland/deployctl@v1
    with:
    project: my-deno-project # TODO: replace with Deno Deploy project name
    entrypoint: server/entry.mjs
    root: dist
  5. Após fazer o commit deste arquivo YAML e fazer o push para o GitHub na sua branch configurada para deploy, o deploy deve começar automaticamente!

    Você pode verificar o progresso utilizando a aba “Actions” na página do seu repositório do GitHub ou no Deno Deploy.

  1. Instale a CLI do Deno Deploy.

    Terminal window
    deno install --allow-read --allow-write --allow-env --allow-net --allow-run --no-check -r -f https://deno.land/x/deploy/deployctl.ts
  2. Execute a etapa de build do Astro.

    Terminal window
    npm run build
  3. Execute deployctl para fazer o deploy!

    No comando abaixo, substitua <TOKEN-DE-ACESSO> com seu Personal Access Token e <MEU-PROJETO-DENO> com o nome do seu projeto do Deno Deploy.

    Terminal window
    DENO_DEPLOY_TOKEN=<TOKEN-DE-ACESSO> deployctl deploy --project=<MEU-PROJETO-DENO> --no-static --include=./dist ./dist/server/entry.mjs

    Você pode ver todos os seus deploys em Deno Deploy.

  4. (Opcional) Para simplificar a build e o deploy em um só comando, adicione um script deploy-deno em package.json.

    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 --project=<MY-DENO-PROJECT> --no-static --include=./dist ./dist/server/entry.mjs"
    }
    }

    Então você poderá utilizar este comando para fazer a build e deploy do seu projeto Astro em uma etapa.

    Terminal window
    DENO_DEPLOY_TOKEN=<TOKEN-DE-ACESSO> npm run deno-deploy

📚 Leia mais sobre SSR no Astro.

Mais Guias de Deploy