Skip to main content

Два типа домена

Школа доступна по собственному адресу. Платформа поддерживает два типа домена (SchoolDomainType):
Тип домена выбирается в панели управления: Настройки школы → Домен школы. Выбор типа домена: базовый или собственный

Базовый поддомен

Базовый домен вы задаёте ещё при создании школы, а потом можете изменить в настройках. Итоговый адрес — <baseDomain>.exode.biz.
1

Откройте раздел «Домен школы»

В настройках выберите вариант «Базовый домен».
2

Введите поддомен

Впишите желаемый поддомен (3–20 символов, латиница, цифры и дефис). Поле проверяет доступность домена в реальном времени с задержкой ~0.5 сек.
3

Сохраните

Пока домен не сохранён, доступны кнопки «Сохранить» и «Отмена». После сохранения адрес сразу становится актуальным.
Проверка доступности выполняется запросом schoolManageCheckDomain: если домен занят или некорректен, поле подсветится ошибкой и сохранение будет заблокировано. Минимальная длина для запуска проверки — 3 символа.

Собственный домен

Собственный домен (Custom) позволяет открывать школу на вашем адресе, например learn.company.com, без упоминания exode.biz. Настройка собственного домена и принудительного редиректа
Собственный домен нельзя подключить самостоятельно из интерфейса. Если для школы он ещё не заведён, вариант «Собственный домен» отображается как недоступный, а клик по нему открывает Telegram-поддержку exode.biz. Настройка DNS и привязка домена выполняются вместе с поддержкой.

Принудительный редирект на собственный домен

Когда собственный домен подключён, появляется переключатель «Перенаправлять на собственный домен» (config.serve.forceRedirectToCustomDomain). Если он включён, обращения к базовому поддомену автоматически перенаправляются на собственный домен:
Это удобно, чтобы у школы был единый «правильный» адрес.

Как система определяет школу по домену

Резолвинг школы по домену происходит на сервере при отрисовке страницы (SSR), в server/Platform.tsx. Логика упрощённо такая:
1

Разбор адреса запроса

Сервер определяет, что это школьная платформа: либо запрос пришёл на собственный домен школы (isCustomSchoolDomain), либо на поддомен *.exode.biz (isBaseSchoolSubdomain).
2

Поиск школы

Вызывается getSchoolByDomain(...) — GraphQL-запрос schoolFindOneByDomain(domain), который возвращает школу по её домену (для custom передаётся хост, для base — поддомен).
3

Проверка актуального адреса

Метод getActualSchoolRequestUrl вычисляет «правильный» адрес для школы исходя из её domainType, baseDomain и customDomain.
4

Редирект при необходимости

Если фактический адрес не совпадает с актуальным (или включён forceRedirectToCustomDomain), сервер отдаёт временный редирект (307) на нужный домен.
5

Рендер или «школа не найдена»

Если школа найдена — страница рендерится с её конфигом; если нет — отдаётся страница «школа не найдена».
Серверный запрос поиска школы:
Правило вычисления актуального адреса по типу домена:
Если вы сменили тип домена в настройках, страница перезагружается автоматически — так применяется новый способ резолвинга и школа открывается уже на актуальном адресе.

Итоговая шпаргалка