JS
#astro#deploy#adapter#node#netlify#vercel#ssr

Astro: адаптеры для деплоя (Node, Netlify, Vercel)

Настройка адаптеров Astro для SSR: Node (standalone), Netlify, Vercel. Установка и конфиг в astro.config.mjs.

Как использовать

  1. Скопируйте нужный фрагмент кода.
  2. Вставьте в свой проект и при необходимости измените под задачу.
  3. Проверьте зависимости и окружение (версии, переменные).

Для режимов output: "server" и output: "hybrid" в Astro нужен adapter, который подключает сборку к целевой платформе. Ниже — установка и минимальный конфиг для Node, Netlify и Vercel по официальной документации.

Установка адаптеров:

# Node.js (standalone сервер)
pnpm astro add node

# Netlify
pnpm astro add netlify

# Vercel
pnpm astro add vercel

Node.js adapter (Deploy to your own server):

// astro.config.mjs
import { defineConfig } from "astro/config";
import node from "@astrojs/node";

export default defineConfig({
  output: "server",
  adapter: node({
    mode: "standalone", // standalone | middleware
  }),
});

Запуск после сборки:

pnpm build
node dist/server/entry.mjs

Netlify adapter (Netlify):

// astro.config.mjs
import { defineConfig } from "astro/config";
import netlify from "@astrojs/netlify";

export default defineConfig({
  output: "server",
  adapter: netlify({
    edgeMiddleware: true, // опционально: Edge Functions для middleware
  }),
});

Деплой: подключить репозиторий, Build command — pnpm build, Publish directory — dist.

Vercel adapter (Vercel):

// astro.config.mjs
import { defineConfig } from "astro/config";
import vercel from "@astrojs/vercel/serverless";

export default defineConfig({
  output: "server",
  adapter: vercel({
    isr: {
      expiration: 60, // ISR: ревалидация каждые 60 секунд (опционально)
    },
  }),
});

Деплой: подключить репозиторий, Framework Preset — Astro, Build Command — pnpm build, Output Directory — dist.

Usage:

  • После смены adapter пересобери проект: pnpm build.
  • Секреты задавай в переменных окружения платформы (Netlify/Vercel dashboard или .env локально).
  • Для Node на своём сервере можно добавить process manager (systemd, PM2) и reverse proxy (Nginx).

Notes:

⚠️ Режим output: "server" или "hybrid" требует выбранный adapter; без него сборка с SSR не заработает. Для статического сайта (output: "static") адаптер не нужен — можно деплоить dist на любой статический хостинг.