Поддержите нашу команду в рейтинге работодателей на hh.ru
Вход/ Регистрация

Деплой приложения SolidStart

Пример SolidStart-приложения для frontend-деплоя можно найти на Гитхабе.

SolidStart можно развернуть как frontend-приложение или включить серверный рендеринг (SSR).

Сборка приложения

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

    
DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ curl \ {% if system_dependencies %}{{ system_dependencies | join(' ') }}{% endif %} \ && rm -rf /var/lib/apt/lists/*

Где system_dependencies — системные зависимости, указанные в панели управления. App Platform подставляет их в команду при сборке.

Далее устанавливаются зависимости проекта. В зависимости от файлов проекта используется один из пакетных менеджеров — yarn, pnpm или npm. Выполняется соответствующая команда:

    
yarn install pnpm install npm install

Для сборки приложения по умолчанию используется команда:

    
npm run build

Убедитесь, что в файле package.json присутствует скрипт build.

Директория сборки по умолчанию — /.output/public. После сборки App Platform публикует файлы из этого каталога.

Для frontend-деплоя включите предварительную генерацию страниц в HTML и настройте их сохранение в каталог .output/public.

Поддержка SSR

Пример приложения с серверным рендерингом можно найти на Гитхабе.

При создании приложения включите поддержку SSR. В этом случае оно перейдет в режим бэкенд-приложения:

  • Потребуется выбрать конфигурацию сервера.

  • Интерфейс панели управления после деплоя будет идентичен бэкенд-приложению.

  • Можно будет задать команду запуска.

Команда запуска по умолчанию:

    
node .output/server/index.mjs

Для SSR настройте серверную сборку для Node.js с точкой входа .output/server/index.mjs.

Убедитесь, что сервер слушает 0.0.0.0, а не 127.0.0.1, иначе внешние подключения работать не будут.

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

Была ли статья полезна?
Ваш ответ поможет улучшить документацию
Пока нет комментариев