Discourse и мой личный опыт его использования

Привет.

Это моя первая тема на meta.discourse, и я очень хочу поделиться своим мнением и результатами первого знакомства с Discourse.

Предпосылки

Начну с того, что наткнулся на Discourse довольно случайно, пытаясь найти подходящий движок форума для своих задач. Этап знакомства прошел вполне позитивно: в частности, я понял, что в нем хорошо реализованы функции, которые мне необходимы:

  1. Webhooks
  2. Система достижений
  3. Широкие возможности интеграции с другими сервисами
  4. Модернизация интерфейса и многое другое…

Честно говоря, Discourse меня удивил своими возможностями. И я благодарен авторам за то, что они продолжают поддерживать этот проект.

Первые проблемы

Но, к сожалению, у него все еще есть недостатки, которые я обнаружил для себя, и из-за которых не смог продолжить взаимодействие с Discourse. Если по порядку, то изначально для подходящего движка форума я определил три правила:

  1. Управление через API
  2. Удобная административная панель
  3. Возможность кастомизации любого интерфейса под свои нужды.

И хотя с API и админ-панелью у Discourse все хорошо… Когда я углубился в модернизацию, я растерялся.

Первое «зверье», которое на меня напало, — это различия в версиях Discourse и, как следствие, различия в способах написания компонентов и тем Discourse. Кто-то использовал виджеты, кто-то Ember JS, кто-то что-то другое… Это вызвало путаницу не только у меня, но и у ИИ, с помощью которого я периодически пытался ускорить свое изучение Discourse. Но из-за следующего «зверья» ИИ только еще больше запутал меня…

Второе «зверье» — отсутствие качественной и подробной документации в удобочитаемом виде и на нескольких языках. Мне бы очень хотелось, чтобы администрация уделила этому внимание как можно скорее. Да, конечно, я читал темы о настройке и создании собственных компонентов и тем Discourse, но они не дали мне знаний, необходимых для понимания архитектуры Discourse. В частности, я совершенно случайно наткнулся на эту статью: Upcoming Header Changes - Preparing Themes and Plugins, которая помогла мне понять, почему я постоянно писал код неправильно на бета-версии :slight_smile: Различия в версиях при отсутствии четкой и подробной документации — болезненная тема для Discourse… Потому что их сочетание дает значительный негативный эффект, который помешал мне использовать Discourse в полной мере. Мне крайне необходимо глубоко модернизировать внешний вид форума, и, увы, текущая «документация» не позволяет мне этого сделать. Из-за этого я, скорее всего, временно говорю Discourse до свидания, но буду следить за его развитием.

И третье «зверье» — это относительная рассредоточенность информации о Discourse. Найти ту или иную информацию, узнать, как выполнить то или иное действие, крайне сложно. Я бы сказал, что это зависит от твоей удачи и знания английского. Иначе, если ты не «счастливый англичанин», тебе придется повозиться не один день. Это утомительно.

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

Заключение

Несмотря на то, что у Discourse достаточно недостатков, чтобы я не выбрал его сейчас, я уверен, что в будущем смогу выбрать его и использовать для своих целей. Потому что я ожидаю, что разработчики и администраторы этого проекта обратят внимание на недостатки Discourse (включая те, что указаны в этой теме/статье). На мой взгляд, Discourse уже очень качественный проект, но, похоже, он еще не дорос до «массового» использования. Но это временно.

Спасибо за внимание к статье.
P.s. Для перевода с русского на английский использовался ИИ «Manus»

13 лайков

Да. Некоторые вещи, которые работали 10 лет назад, сейчас не работают. Теперь существует новое руководство для разработчиков тем; оно очень хорошее и затрагивает многие из ваших «проблем»: Theme Developer Tutorial: 1. Introduction

9 лайков

Привет! Хотя это unsupported-install, вот руководство по установке Discourse без Docker:

4 лайка

Действительно. Поэтому я уточнил, что официального способа установки не существует.

Моя главная проблема заключается в том, что многие доступные плагины просто не работают при установке на моих последних версиях.
И это не потому, что я не пытался. Моя первая установка сайта была на Ubuntu 24.04 LTS с использованием Docker… и после первоначальной установки почти каждая пересборка после добавления нескольких плагинов (которые, как утверждалось, были актуальными и поддерживаемыми — да, конечно) приводила к тому, что приложение Discourse полностью падало и регулярно завершалось с ошибкой.
Затем, когда я пытался выполнить пересборку без этих плагинов… всё равно возникали ошибки.
Моим окончательным решением стал переход обратно на установку AlmaLinux с Docker. По крайней мере, теперь, когда я добавляю плагин, который несовместим с текущей версией, я могу выполнить пересборку приложения после его удаления из файла app.yml, чего не удавалось сделать при установке на Ubuntu.

И нет, я не новичок в администрировании веб-сайтов. Я управляю форумными сайтами уже более десятилетия, имея опыт работы с Woltlab, Xenforo, Invision, SMF, phpBB, myBB, NodeBB и несколькими другими. Я даже работал в эпоху MS-DOS/DesqView и многоузловых BBS (в конечном итоге система OS/2 Maximus/2 с четырьмя узлами, три из которых предоставляли прямой доступ пользователям, а все четыре использовались для обработки почты FidoNet). Так что я не новичок в этой сфере.

Мне нравится то, что я пока вижу в Discourse на моем сайте, который я на нём запускаю. Но я быстро вижу, где у новичков, управляющих самохостинговым сайтом, могут возникнуть проблемы. В настоящее время я также запускаю Xenforo и NodeBB на нескольких сайтах… и честно говоря, настройка NodeBB для многоузловой системы значительно проще, чем предложение от Discourse. Мы даже не будем говорить о том, что запуск четырёх узлов NodeBB на экземпляре VPS оказывает меньшее влияние, чем один узел Discourse на установке VPS. И да, я изучал возможность использования многоузловости в NodeBB… но на данный момент это больше головная боль, чем польза. И да, мне нравится экспериментировать с различными скриптами… и у меня нет проблем с указанием на недостатки, которые я обнаруживаю в любом из них. :wink:

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

1 лайк

Ах, времена DOS и хакерских BBS Telegard, одной из самых популярных из которых был Renegade BBS. Не стоит забывать и о PCBoard со своим собственным языком скриптового программирования, а также о BBS на Amiga и Commodore 64. Были весёлые времена.

Мне повезло с запуском Discourse на Ubuntu LTS. Если установка плагина проходила не совсем гладко, обычно возникало минимум проблем — достаточно было просто удалить или закомментировать строку с плагином… хотя иногда, да, приходилось пересобирать дважды, если что-то шло не так.

Проблема, с которой я столкнулся, заключалась в том, что пересборка никогда не удавалась, когда плагины были указаны в списке.
Но, кажется, я также обнаружил ещё одну причину моих проблем. Если файл конфигурации составлен не совсем верно (например, лишние пробелы или табуляция на новой строке), это, похоже, мешает корректному добавлению плагинов. После того как я удалил все пустые строки ниже списка плагинов, сборка стала проходить так, как и должна была.
Я знаю, что большинство пользователей выбирают Ubuntu — это достойная операционная система (она лежит в основе ПО для астрофотографии, которое я использую), но я уже давно использую AlmaLinux и предпочитаю её. И, похоже, она работает отлично.

1 лайк

Да, файлы YML очень придирчивы к структуре.

Да… Я это уже понимаю. И честно говоря, это слабость в предложении скриптов во многих отношениях.
Я использую платный скрипт, где установка плагинов (надстроек) гораздо более интегрирована… и этот скрипт, к сожалению, даже сейчас отстает от того, что он должен предлагать держателям лицензий, которые заплатили за него хорошие деньги.
Если бы разработчики Discourse когда-нибудь могли интегрировать установку надстроек напрямую из самого скрипта, без необходимости редактирования текстового файла конфигурации, это стало бы огромным улучшением. Но, к сожалению, похоже, что, как и в случае с некоторыми другими скриптами, разработчики застряли в своих методах и не хотят смотреть на то, что многие считают прогрессом.

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

1 лайк

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

2 лайка

Спасибо, но я привык устанавливать всё напрямую из панели администратора как в XenForo, так и в NodeBB.
Теперь, когда я разгадал эту странность, платить за такую возможность уже не имеет смысла. :wink:
В год я в среднем трачу около 2800 долларов на сайты и серверы, с которых не получаю никакого дохода. Для меня это просто хобби.
Если я уже собираюсь вкладывать деньги в скрипт, то хочу, чтобы он делал гораздо больше, чем просто базовый форум с небольшими доработками. Отсюда и мой сайт на Astro, который я запустил.

2 лайка