Развёртывание в производственной среде

При развёртывании NocoBase в производственной среде установка зависимостей может быть затруднительной из-за различий в методах сборки для разных систем и окружений. Для полноценной функциональности мы рекомендуем разворачивать с Docker. Если ваша среда не может использовать Docker, вы также можете развернуть с помощью create-nocobase-app.

Внимание

Развёртывать напрямую из исходного кода в производственной среде не рекомендуется. Исходный код имеет множество зависимостей, большой объем и при полной компиляции требуются значительные ресурсы CPU и памяти. Если вам необходимо разворачивать из исходников, рекомендуется сначала собрать собственный Docker-образ, а затем выполнить развёртывание.

Внимание

Если вы развёртываете несколько независимых сервисов NocoBase, используйте отдельный hostname для каждого сервиса, например разные поддомены. Не различайте сервисы только по порту, как в https://example.com:13000 и https://example.com:14000.

NocoBase использует cookies для сохранения состояния входа и прав доступа к файлам. Браузеры не изолируют cookies по портам, поэтому сервисы на разных портах под одним hostname могут использовать одноимённые cookies. Это может привести к перезаписи состояния входа или ошибкам авторизации при предварительном просмотре и скачивании файлов.

Подприложения в одном развёртывании NocoBase не подпадают под это ограничение. Cookies входа различаются по имени приложения, поэтому основное приложение и подприложения с разными именами могут использовать один hostname.

Однако независимые сервисы по-прежнему необходимо изолировать. Если другой сервис NocoBase работает на другом порту под тем же hostname и содержит основное или дочернее приложение с тем же именем, cookies всё равно могут конфликтовать.

Используйте адреса наподобие app1.example.com и app2.example.com, а затем направляйте их к разным сервисам NocoBase через Nginx или Caddy.

Разделённый фронтенд / Межсайтовый доступ к API

Рекомендуется держать страницы и API на одном origin: используйте обратный прокси под одним доменом, чтобы направлять ${APP_PUBLIC_PATH}api/ и ${APP_PUBLIC_PATH}files/ в сервис NocoBase, а API_BASE_URL оставьте пустым.

Если страницы должны обращаться к API с другого origin (API_BASE_URL указывает на другой origin), добавьте origin страницы в CORS_ORIGIN_WHITELIST. Иначе браузер проигнорирует Set-Cookie в ответах API, cookie входа не будет сохранена, а предпросмотр и скачивание через stable file URL завершатся ошибкой авторизации.

Также учитывайте, что cookies хранятся по hostname: если страницы и API используют полностью разные домены, запросы к /files/ с домена страницы не будут отправлять cookie входа, сохранённую для домена API. Для таких развёртываний следует перейти на same-origin reverse proxy. См. Переменные окружения.

Процесс развёртывания

Для развёртывания в производственной среде вы можете обратиться к существующим шагам установки и обновления.

Новая установка

Обновление приложения

Установка и обновление сторонних плагинов

Доступ к статическим ресурсам через прокси

В производственной среде рекомендуется управлять статическими ресурсами через прокси-сервер, например:

Часто используемые команды для операций

В зависимости от метода установки вы можете использовать следующие команды для управления процессом NocoBase: