Reactive EngineeringRE Docs
Руководства

Опубликовать портал

CI, Docker-образ и развертывание портала через Dokploy или compose.

Непрерывная интеграция

.github/workflows/ci.yml запускается на push в main и на каждый pull request:

pnpm install --frozen-lockfile
pnpm types:check
pnpm build

Сборка фиксирует Node.js 24 и pnpm 11.7.0 — те же версии, что в package.json.

Docker

Сборка образа:

docker build -t re-doc-portal:latest .

Запуск:

docker run -d --name re-doc-portal --restart unless-stopped -p 3000:3000 -e HOSTNAME=0.0.0.0 -e PORT=3000 -e NEXT_PUBLIC_SITE_URL=https://docs.example.com re-doc-portal:latest

Локальная сборка и запуск через compose:

docker compose up -d --build

Dockerfile использует standalone-режим Next.js: в финальный образ попадают только server.js, необходимые зависимости и статика.

Dokploy

Рекомендуемый способ развертывания — приложение Dokploy на основе имеющегося Dockerfile.

Подключить репозиторий

В разделе Git создайте или установите Dokploy GitHub App и выдайте доступ к репозиторию портала.

Создать приложение

ПараметрЗначение
ProviderGitHub
Repositoryрепозиторий портала
Branchmain
Build path/
Build typeDockerfile
Dockerfile pathDockerfile
Port3000
Health check path/docs

Задать переменные окружения

HOSTNAME=0.0.0.0
PORT=3000
NEXT_PUBLIC_SITE_URL=https://docs.example.com

Настроить домен

На вкладке Domains добавьте домен, укажите порт сервиса 3000 и включите HTTPS, затем выполните развертывание.

Dokploy пересобирает приложение автоматически при появлении новых коммитов в выбранной ветке.

Обновление на сервере вручную

git pull && docker compose up -d --build

Проверка после развертывания

  • / — главная страница, карточки продуктов;
  • /docs — документация, выпадающий список продуктов, боковое меню;
  • поиск по документации;
  • светлая и темная тема;
  • /llms.txt и /llms-full.txt;
  • Open Graph-изображение любой страницы: /og/docs/<путь>/image.png.

Health check

В качестве проверки готовности используется /docs, а не / — этот маршрут зависит от коллекции документации и падает, если сборка контента не удалась.

On this page