логотип PurpleSchool
логотип PurpleSchool

Руководство по развертыванию приложений в Nuxt Cloud

Автор

Виктор Орлов

Введение

Сегодня Nuxt.js стал одним из самых популярных инструментов для создания мощных и производительных web-приложений на базе Vue. Вместе с этим, команда разработчиков Nuxt создала собственное облачное решение — Nuxt Cloud — оптимизированную платформу для развертывания, масштабирования и обслуживания приложений на Nuxt. Nuxt Cloud предлагает простой, но гибкий опыт деплоя с минимальными ручными действиями, продвинутой поддержкой сервер-сайд рендеринга и возможностью быстрого выхода в продакшн.

Это руководство описывает пошаговый процесс развертывания вашего Nuxt-приложения в Nuxt Cloud, включая подготовку проекта, работу с переменными окружения, безопасным хранилищем секретов, предварительным просмотром изменений и подключением собственного домена. Я поделюсь примерами кода, полезными советами и методиками, которые помогут вам без лишних хлопот перевести ваш проект в облако.

Регистрация и подготовка Nuxt Cloud

Регистрация аккаунта в Nuxt Cloud

Перед тем как приступить к публикации вашего приложения, вам потребуется зарегистрироваться на платформе Nuxt Cloud. Платформа интегрируется с популярными репозиториями кода (например, GitHub), что значительно упрощает процесс деплоя.

  1. Перейдите на официальный сайт Nuxt Cloud.
  2. Кликните Sign Up, выберите способ — обычно через GitHub или Google.
  3. Завершите регистрацию, подтвердите email и выполните вход.

Создание нового проекта

После регистрации первый шаг — создание проекта:

  1. На главной панели нажмите New Project.
  2. Автоматически будет предложено подключить репозиторий (например, из GitHub).
  3. При необходимости, разрешите Nuxt Cloud доступ к вашему аккаунту в GitHub, выберите нужный репозиторий с Nuxt-приложением.
  4. Укажите название проекта; при необходимости можно также дать краткое описание.

Смотрите, на этом этапе больше ничего делать не надо — Nuxt Cloud сам определит, что у вас проект на Nuxt, и предложит стандартные параметры сборки.

Поддерживаемые версии Nuxt и минимальные требования

Nuxt Cloud работает с последними версиями Nuxt (3.x и выше). Для базового деплоя достаточно Node.js >= 18 и стандартной структуры проекта Nuxt.

Обратите внимание: если используется нестандартная структура папок (например, директории /src вместо /pages), проверьте настройки сборки или укажите необходимые параметры вручную в настройках проекта.

Nuxt Cloud — это удобная платформа для развертывания и хостинга Nuxt-приложений. Она предоставляет множество полезных функций, таких как автоматическая сборка, развертывание и мониторинг приложений. Умение развертывать приложения в Nuxt Cloud — это важный навык для любого Nuxt-разработчика. Если вы хотите детальнее погрузиться в мир Nuxt, освоить все его тонкости и стать настоящим профессионалом — приходите на наш большой курс Nuxt - fullstack Vue фреймворк. На курсе 129 уроков и 13 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.

Настройка деплоя и переменных окружения

Автоматический деплой из репозитория

Nuxt Cloud интегрируется с системой контроля версий — обычно это GitHub. Каждый push в основную ветку (или другую выбранную ветку) автоматически запускает процесс сборки и деплоя.

Чтобы это работало:

  • В вашем репозитории должен быть файл nuxt.config.ts или nuxt.config.js
  • Ветка для деплоя должна быть указана в настройках проекта Nuxt Cloud (по умолчанию часто используется main или master)
  • Если ваш проект приватный, убедитесь, что у Nuxt Cloud есть права на чтение этого репозитория

Работа с переменными окружения

Все современные облака, включая Nuxt Cloud, используют переменные окружения для передачи секретных ключей и настроек (например, API-ключей или урлов подключения к базе данных).

Чтобы добавить или изменить переменные:

  1. Перейдите в настройки вашего проекта на Nuxt Cloud.
  2. Найдите секцию Environment Variables.
  3. Здесь можно добавить переменные окружения (например, NUXT_API_URL, NUXT_SECRET_KEY).

Вот пример — добавим переменную для урла API:

NUXT_PUBLIC_API_URL=https://api.example.com

Важно: Используйте префикс NUXT_PUBLIC_ для переменных, которые должны быть доступны на клиенте, остальные (например, пароли) оставляйте без этого префикса — такие переменные попадут только на серверную часть Nuxt.

В Nuxt 3 и выше все переменные можно получать так:

// Получение переменной окружения на сервере
const secret = useRuntimeConfig().secretKey

// Получение публичной переменной на клиенте
const apiUrl = useRuntimeConfig().public.apiUrl

Комментарии помогут разобраться, как получить эти значения внутри любого компонента или обработчика.

Использование секретного хранилища

Помимо переменных окружения, Nuxt Cloud поддерживает безопасное хранение секретов (например, токенов или приватных ключей). Их можно добавлять вручную и настраивать уровни доступа.

Как это реализовано:

  • В Nuxt Cloud добавьте ключ в раздел Secrets
  • В коде получайте их точно так же, как и обычные переменные, но без префикса NUXT_PUBLIC_

Пример:

// Получение секретного ключа из хранилища
const token = useRuntimeConfig().mySecretToken

Сборка и деплой Nuxt-приложения

Стандартный процесс деплоя

Каждый раз, когда вы делаете push в выбранную ветку репозитория, Nuxt Cloud автоматически инициирует новый деплой. Система сама:

  • Скачивает последний код из вашего репозитория
  • Выполняет команду npm install или yarn install (определяет автоматически)
  • Собирает продакшн-версию приложения (nuxi build)
  • Публикует приложение в облако с выставлением красивого адреса по умолчанию (например, myproject.cloud.nuxt.com)

Процесс выглядит так:

  1. Коммит и push кода: shell git add . git commit -m "Добавил новую страницу" git push origin main
  2. Nuxt Cloud автоматически начинает процесс сборки (можно видеть статус деплоя в веб-интерфейсе).
  3. После успешной сборки приложение доступно через выданный домен.

Конфигурация процесса сборки

По умолчанию Nuxt Cloud определяет команды сборки автоматически, но вы можете изменить настройки в разделе Build & Deploy:

  • Изменить ветку-источник для деплоя
  • Задать свои кастомные команды для сборки, тестирования или публикации (например, выполнить линтер)

Покажу пример кастомной команды сборки:

# Стандартная команда
nuxi build

# Можно дополнить своим скриптом в package.json
npm run lint && nuxi build

Это полезно, если вы хотите перед деплоем выполнить дополнительные проверки.

Работа с preview-окружениями

Nuxt Cloud поддерживает preview-окружения для веток и pull request’ов. Значит, каждое изменение, которое вы отправите на ревью или создадите из новой ветки, будет собрано в отдельном "предварительном" деплое.

Применение:

  • Работая в ветке feature/new-design, вы получите окружение типа feature-new-design.cloud.nuxt.com
  • Это позволяет команде тестировать нововведения без затрагивания основного продакшн-приложения

Подключение собственного домена

Пошаговая инструкция по подключению домена

Обычно стандартного облачного адреса достаточно для тестирования, но для реального продукта часто требуется использовать собственный домен.

  1. Перейдите в настройки вашего проекта в Nuxt Cloud
  2. Найдите раздел Domains
  3. Нажмите Add Domain и впишите ваш домен, например, example.com
  4. Nuxt Cloud предложит вам специальные значения для DNS-записей (обычно A-записи или CNAME)
    • Пропишите эти записи у вашего DNS-провайдера

Пример: если платформа выдала A-запись с адресом 123.45.67.89, добавьте такую запись в ваш DNS:

@    IN    A    123.45.67.89
  1. Ожидайте до 24 часов для обновления DNS (чаще — значительно быстрее)

Nuxt Cloud автоматически установит SSL-сертификат через Let's Encrypt для вашего домена.

Если у вас subdomain (например, app.example.com), действия аналогичны, просто добавьте нужную запись для этого поддомена.

Применение настройки HTTPS и редиректов

Все приложения на Nuxt Cloud работают по HTTPS "из коробки" после подключения домена. Также можно задать автоматические редиректы в настройках самой платформы (например, с HTTP на HTTPS или с www на non-www).

Мониторинг, логирование и CI/CD

Возможности мониторинга

Nuxt Cloud предоставляет базовое логирование прямо в веб-интерфейсе: после деплоя вы можете посмотреть логи сервера (stdout/stderr) за последние деплой-циклы. Это позволяет быстро понять, какие ошибки возникают на сервере или при сборке.

Для просмотра логов:

  • Откройте вкладку Deploys
  • Выберите нужный деплой и кликните View Logs

Здесь вы найдете стандартные серверные логи, в том числе сообщения, которые приходят чeрез console.log или console.error.

Интеграция с внешними CI/CD

Если в команде используются свои пайплайны CI/CD (например, GitHub Actions), вы легко можете интегрировать их с Nuxt Cloud. Для этого вы можете:

  • На этапе CI выполнять автоматические тесты, линтинг, проверку формата
  • После успешной проверки запускать деплой через push в ветку репозитория (Nuxt Cloud автоматически подхватит изменения)

Пример простого workflow для GitHub Actions:

name: Deploy Nuxt to Nuxt Cloud

on:
  push:
    branches: [main]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Install dependencies
        run: npm install
      - name: Run tests
        run: npm run test
      - name: Push changes
        run: git push

Такой подход гарантирует, что деплой произойдет только если тесты прошли успешно.

Интеграция с внешними сервисами

Настройка внешних API и баз данных

В большинстве случаев ваше Nuxt-приложение общается с внешними сервисами и БД — сюда относится как REST API, так и headless CMS, storage-решения, очереди сообщений и многое другое.

Чтобы подключить внешний сервис:

  1. Получите его URL и, возможно, секретные ключи доступа
  2. Добавьте необходимые переменные окружения в Nuxt Cloud
  3. Проверьте, что эти переменные корректно используются в коде

Пример переменных для подключения к PostgreSQL:

DATABASE_URL=postgres://user:password@host:5432/mydb
// В файле nuxt.config.ts для серверных функций
export default defineNuxtConfig({
  runtimeConfig: {
    databaseUrl: process.env.DATABASE_URL,
    public: {
      apiUrl: process.env.NUXT_PUBLIC_API_URL
    }
  }
})

Важно: Никогда не делайте приватный ключ доступа публичным (не добавляйте в public секцию конфига).

Использование хранилищ данных и кэширования

Nuxt Cloud предоставляет простую интеграцию с Vercel Storage, PlanetScale и другими партнёрами (это облачные базы данных, storage и серверныеless-функции). Посмотрите Marketplace и список интеграций внутри платформы.

Возможности масштабирования и преимущества Nuxt Cloud

Легкое масштабирование нагрузки

С помощью Nuxt Cloud не нужно заботиться о серверах, балансировке и резервировании ресурсов: платформа автоматически масштабирует приложение в зависимости от трафика без простоя и ручных настроек.

Актуальные фичи Nuxt Cloud

  • Защищающая инъекций система переменных окружения
  • Холодный старт минимален (серверныеless-архитектура)
  • Инструменты анализа производительности (в режиме A/B тестирования)
  • Отличная интеграция с экосистемой Nuxt и Vue (отправка сообщений через интерфейс, деплой новых страниц без рестарта и др.)

Заключение

Nuxt Cloud — это удобное, мощное решение, которое в максимальной степени автоматизирует процесс деплоя ваших Nuxt-приложений. Минимум ручных настроек, быстрая интеграция с репозиториями и сервисами, дружественный интерфейс для управления переменными окружения и секретами делают платформу отличным выбором как для небольших стартапов, так и для промышленных приложений. Использование Nuxt Cloud позволяет сосредоточиться на логике приложения и не тратить время на инфраструктуру.

Развертывание приложений в Nuxt Cloud — это лишь один из этапов жизненного цикла веб-приложения. Чтобы создавать успешные и масштабируемые приложения, необходимо также освоить множество других навыков, таких как разработка архитектуры, оптимизация производительности, тестирование и мониторинг. На курсе Nuxt - fullstack Vue фреймворк вы получите комплексные знания и практический опыт, необходимые для создания профессиональных веб-приложений на Nuxt. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Nuxt прямо сегодня.

Частозадаваемые технические вопросы по теме статьи и ответы на них

Как задать кастомную папку для билда, если проект не в корне репозитория?

В настройках вашего проекта на Nuxt Cloud найдите раздел Build & Deploy и используйте параметр Base Directory. Укажите относительный путь до вашей папки приложения (например, frontend/). Nuxt Cloud будет собирать проект, начиная с этой директории.

Можно ли использовать приватные NPM-пакеты при деплое?

Да, для этого зайдите в Environment Variables и добавьте переменную окружения NPM_TOKEN с вашим токеном. Nuxt Cloud автоматически использует его для установки приватных зависимостей.

Как ограничить доступ к приложению (например, по IP или с помощью базовой аутентификации)?

На уровне платформы Nuxt Cloud базовая аутентификация или IP-фильтры реализованы через middleware (например, дополнительный серверный код в server/middleware/). Настройте проверку JWT или HTTP-заголовков внутри Nuxt самостоятельно.

Где смотреть ошибки, если деплой не удался?

Откройте раздел Deploys → выберите проблемный деплой → View Logs. Здесь вы увидите весь вывод сборки и сможете понять, на каком шаге возникла ошибка.

Можно ли деплоить монорепозитории с несколькими Nuxt-приложениями?

Да, подключите каждый отдельный проект монорепозитория как самостоятельный деплой-проект в Nuxt Cloud, указав для каждого свой Base Directory или субпапку.

Стрелочка влевоКак развернуть Nuxt приложение в DockerКак оптимизировать сборку на NuxtСтрелочка вправо

Постройте личный план изучения Nuxt до уровня Middle — бесплатно!

Nuxt — часть карты развития Frontend

  • step100+ шагов развития
  • lessons30 бесплатных лекций
  • lessons300 бонусных рублей на счет

Бесплатные лекции

Все гайды по Nuxt

Генерация статического сайта с помощью NuxtКак использовать useAsyncData в NuxtКак использовать SVG в NuxtКоманды для запуска NuxtРабота с JSON-данными в NuxtКак настроить HTML-шаблон в NuxtГенерация статического сайта с помощью NuxtРуководство по получению данных с Fetch в NuxtКак отключить определенные функции в NuxtРабота с данными в Nuxt с помощью useNuxtDataНастройка и использование cookie в NuxtГайд по аутентификации (auth) в NuxtКак создавать API-маршруты в Nuxt
Использование Vite для ускорения разработки в NuxtРуководство по использованию TypeScript в NuxtКак запустить Nuxt-приложение в productionКак работает Server-Side Rendering SSR в NuxtНастройка и оптимизация серверной части Nuxt-приложенияРуководство по настройке маршрутизации в NuxtКакие проекты разумно реализовывать на NuxtИнструкция по управлению пакетами NPM в NuxtИнтеграция Node.js для Nuxt-приложенияНастройка мета-тегов для SEO в NuxtНастройка и использование HTTPS в NuxtКак отлавливать и обрабатывать ошибки в NuxtКак развернуть Nuxt приложение в DockerРуководство по развертыванию приложений в Nuxt CloudКак оптимизировать сборку на NuxtИнтеграция Laravel и Nuxt
Открыть базу знаний

Лучшие курсы по теме

Иконка ракетыСкоро!
изображение курса

Nuxt

Антон Ларичев
изображение курса

TypeScript с нуля

Антон Ларичев
AI-тренажеры
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее
изображение курса

Next.js - с нуля

Антон Ларичев
Практика в студии
Гарантия
Бонусы
иконка звёздочки рейтинга4.7
3 999 ₽ 6 990 ₽
Подробнее

Отправить комментарий