Всем привет,
Вчера я наткнулся на Discourse и был поражён его возможностями, открытым исходным кодом, плагинами, компонентами тем и просто отличным интерфейсом. Я создаю платформу для оценки навыков на WordPress, и последним недостающим элементом моей концепции продукта является живое сообщество, и Discourse идеально вписывается в эту картину. Спасибо за создание такого замечательного продукта!
Чтобы настроить всё и начать работу, у меня есть несколько вопросов, и я буду благодарен за вашу помощь.
Контекст:
- Мой сайт размещён на хостинге Siteground, но они не предоставляют root-доступ, так как работают через Google, поэтому я не могу установить Discourse там.

- Я написал собственный код на PHP для создания динамического сайта, где пользователи зарабатывают очки навыков и награды за демонстрацию своих умений на платформе. Например, пользователи получают очки, когда делятся проектами и помечают их определёнными навыками. Теги навыков заранее определены мной, каждому навыку присвоено определённое количество очков, а данные хранятся в пользовательских таблицах. Это позволяет мне отображать данные по каждому навыку для каждого пользователя в динамике.
- Я использую Gsuite для настройки электронной почты.
- Я хочу иметь полный контроль, поэтому предпочитаю самостоятельно размещать Discourse.
- Функция чата на WordPress не включена (нет установленных плагинов), но я хотел бы иметь чат в Discourse.
- Я хочу создать аналогичную систему признания навыков и начисления очков за активность в Discourse. Например, если пользователь1 задаёт вопрос (и помечает его тегами навыков), а пользователь2 отвечает на него, и пользователь1 отмечает ответ как решённый, то пользователь2 получает очки навыков за соответствующие теги. Или если пользователь1 публикует качественный пост, который получают много лайков, то пользователь1 получает за это очки. Ближайшая аналогия — мини-версия Stack Overflow, но для очень узкоспециализированного сообщества.
Мои вопросы:
- Я видел, что люди используют Mailgun для отправки писем в Discourse. Есть ли какие-либо проблемы с использованием Gsuite? Я новичок в этом, поэтому буду благодарен за любые долгосрочные советы.
- У меня пока нет хостинг-провайдера для Discourse, но все очень высоко оценивают DigitalOcean (DO). Исходя из того, что я рассказал, видите ли вы какие-либо проблемы с использованием DO?
- Есть ли рекомендуемый инструмент для чата, который хорошо работает с WordPress и Discourse? Я не ищу ничего сложного для чата, поэтому что-то лёгкое и функциональное было бы отлично.
- Как бы вы порекомендовали синхронизировать теги в WordPress с тегами в Discourse? Это вообще возможно? Это важно в первую очередь для навыков, так как я хочу объединить все данные с форума и активности по проектам, чтобы создать портфолио навыков для пользователя.
- Как обеспечить передачу данных в реальном времени между Discourse и WordPress? То есть: 1) если пользователь публикует проект на сайте, то очки навыков обновляются в Discourse. 2) если пользователь вносит качественный вклад в Discourse, то очки навыков обновляются в WordPress. Как это возможно, если данные хранятся в двух разных базах данных (Postgres и MySQL/MariaDB), на двух разных хостинг-провайдерах (Siteground и, возможно, DO) и на двух разных бэкендах (PHP и Ruby on Rails)? Существуют ли API или хуки, которые можно использовать для передачи данных между этими двумя приложениями? Или всё это уже предусмотрено плагином WP-Discourse? Возможно, мне нужно запустить периодические задачи для «синхронизации» данных между двумя приложениями?
Я не уверен, насколько сложна эта задача, учитывая гибкость Discourse и WordPress. Я готов хранить данные, являющиеся источником истины, в базе данных WordPress, если это необходимо для настройки. Я умею программировать на PHP и готов изучить Ruby on Rails, если это потребуется для создания динамической и бесшовной системы мотивации и оценки навыков.
Главное — пользователям всё равно, где находится сайт и где форум, и я хочу сохранить это ощущение, предоставив им единый опыт работы в обоих приложениях.
Спасибо!
Редактирование: Я провёл дополнительное исследование, чтобы лучше понять, что представляет собой Discourse, и посмотрел два отличных выступления Джеффа. Настоятельно рекомендую всем, кто только знакомится с Discourse.
Теперь я лучше понимаю разницу между Stack Overflow и Discourse, и кажется, что я хочу создать сообщество, более близкое к форуму, но с некоторым контролем и спецификой Stack Overflow. На данном этапе трудно объяснить все детали, но кажется, что передача данных между WordPress и Discourse будет необходима для создания продукта, который я хочу.