Отображение разных настроек в зависимости от домена

Привет,

У меня есть несколько онлайн-продуктов, для каждого из которых я хочу создать собственное онлайн-сообщество. Однако, поскольку эти продукты совместимы друг с другом, многие мои клиенты одновременно используют несколько продуктов.

Учитывая это, я хочу использовать один экземпляр Discourse для всех моих продуктов, но отображать различную тему для сообщества в зависимости от домена, через который осуществляется доступ.

Например:

  • app1 → отображает логотип и цвета App1
  • app2 → отображает логотип и цвета App2

Кроме того, так как все темы должны быть помечены тегом, соответствующим названию продукта, я хотел бы скрывать темы с тегами других продуктов. Например, скрывать #app1, если пользователь заходит на app2.com.

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

Любая помощь будет полезна; однако я понимаю, что такая функциональность может отсутствовать «из коробки». Как разработчик, я могу создать плагин и написать дополнительный JavaScript-код для реализации этого.

Полагаю, первое препятствие — это настройка работы одного экземпляра Discourse на нескольких доменах. С чего мне начать?

Использование одной и той же информации на нескольких сайтах — это ошибка для SEO, которую я не рекомендую. У меня есть компонент темы (я думаю, что он сейчас сломан, но я исправлю его очень скоро), который будет менять главную страницу в зависимости от группы, к которой принадлежит пользователь. Таким образом, вы можете назначать группу на основе пользовательского поля, которое заполняется при создании аккаунта, чтобы настроить главную страницу на категорию, соответствующую любимому продукту пользователя.

Если вам не важно, чтобы ваш сайт индексировался, вы можете использовать шаблон web_only, который выполняет перенаправление, и добавить соответствующие настройки в ваш файл yml, чтобы отменить это действие. Я думаю, что настройка мультисайтовой конфигурации с Let’s Encrypt и без обратного прокси предоставляет пример такого решения.