Пытаюсь убедить моего CEO использовать бесплатную версию Discourse

Я хотел бы установить форум с открытым исходным кодом на собственный сервер организации.

Мне нужно убедить генерального директора выделить для этого ресурсы Docker.

Вот несколько вопросов, которые помогут мне легко его убедить:

  1. Какие сервисы Amazon требуются для установки версии с открытым исходным кодом?
  2. Есть ли в версии с открытым исходным кодом возможность разрешить регистрацию только сотрудникам (по окончанию домена email.com и подтверждению), чтобы сохранить форум приватным?
  3. Можно ли добавить собственную тему и логотип?
  4. Как я могу убедиться, что установка бесплатной версии с открытым исходным кодом не приведет к раскрытию каких-либо конфиденциальных данных третьим сторонам?

Спасибо.

У меня есть гораздо больше возможностей, которые я могу предложить, но…

  1. Нет. CDN или внешние файловые хранилища, такие как S3, являются опциональными.
  2. Да. Вы даже можете ограничить регистрацию по доменам. Или просто разрешить приглашения.
  3. Конечно, это не Mastodon :winking_face_with_tongue:
  4. Discourse с открытым исходным кодом, поэтому вы можете проверить его или просто довериться всем остальным, кто не связан с CDCK. Но Discourse не нуждается в таких сторонних сервисах, способных на подобное. Однако, если вы используете сторонние решения, убедитесь, что они не делают ничего подозрительного.

Спасибо большое!

Не могли бы вы уточнить насчёт CDN или внешнего файлового хранилища?

Требует ли установка форума работающего компьютера или достаточно устройства хранения, такого как S3 от Amazon?

Теоретически могу ли я установить его на ноутбук одного из сотрудников, и ему не нужно будет об этом беспокоиться, пока он не выключит ноутбук? Должно ли оно быть установлено на Raspberry или на ноутбук и работать постоянно?

Я читал, что требуется «домен». Значит ли это дополнительные расходы, или это включено в локальную сеть?

Я попросил GPT провести сравнение AWS и DigitalOcean для демонстрации затрат.

Насколько реалистичны эти оценки, на ваш взгляд?

Результат работы GPT:

Давайте оценим затраты на запуск форума Discourse для 100 пользователей на один год как на DigitalOcean, так и на AWS EC2.

Предположения:

  1. Тип сервера: Будем исходить из того, что сервер среднего уровня достаточно для 100 пользователей. Для DigitalOcean это будет Droplet за $20 в месяц. Для AWS рассмотрим экземпляр t3.medium EC2.
  2. Хранилище: Discourse рекомендует минимум 10 ГБ места. Возьмем 20 ГБ с учетом роста и резервных копий.
  3. Передача данных: Оценим в 500 ГБ в месяц, учитывая как входящий, так и исходящий трафик.
  4. Резервное копирование: Будем исходить из еженедельных резервных копий, хранящихся в течение месяца, то есть в любой момент времени будет храниться 4 копии.
  5. База данных: Будем использовать встроенную PostgreSQL для Discourse, поэтому дополнительных затрат здесь не будет.

Оценка затрат:

Компонент затрат DigitalOcean AWS EC2
Сервер $20 × 12 = $240 Цена экземпляра t3.medium по модели On-Demand составляет примерно $0,0416 в час. Таким образом, $0,0416 × 24 × 30 × 12 = $359,55
Хранилище Включено в Droplet Объемы EBS General Purpose SSD (gp2) стоят $0,10 за ГБ-месяц. Таким образом, 20 ГБ × $0,10 × 12 = $24
Передача данных Первые 1 ТБ в месяц бесплатно, затем $0,01 за ГБ. При использовании 500 ГБ — бесплатно. Первые 1 ГБ бесплатно, затем $0,09 за ГБ для следующих 9,999 ТБ в месяц. Таким образом, 500 ГБ × $0,09 = $45 в месяц. За год: $45 × 12 = $540
Резервное копирование $4 в месяц (20% от цены Droplet) × 12 = $48 Снимки стоят $0,05 за ГБ-месяц. При условии 4 копий по 20 ГБ каждый месяц: 80 ГБ × $0,05 = $4 в месяц. За год: $4 × 12 = $48
Итого $288/год $971,55/год

Примечания:

  • В AWS существует несколько моделей ценообразования, включая зарезервированные экземпляры и планы экономии, которые могут значительно снизить затраты. Приведенная оценка основана на тарифах On-Demand, которые являются наиболее дорогим вариантом.
  • Это базовая оценка и не учитывает возможные дополнительные услуги или непредвиденные расходы. Всегда полезно отслеживать использование и при необходимости корректировать ресурсы.
  • Цены могут варьироваться в зависимости от региона и конкретных конфигураций. Всегда обращайтесь к официальной документации по ценообразованию соответствующих платформ для получения наиболее точной и актуальной информации.

В заключение, исходя из приведенной оценки, DigitalOcean кажется более рентабельным вариантом для хостинга форума Discourse для 100 пользователей в течение одного года. Однако AWS предлагает более широкий спектр услуг и вариантов масштабирования, что может быть полезно для более сложных или растущих проектов.

Я разворачивал установку Discourse на AWS некоторое время назад, примерно на 2 месяца, прежде чем переехать на личный сервер. Это обошлось не так дорого, скорее около 50 долларов в месяц..?

(воспринимайте это с большой долей скепсиса, так как я не очень хорошо помню детали)

Оба варианта являются опциональными. Однако:

  • вы можете использовать CDN для ускорения загрузки для глобальной аудитории (в теории; когда и где использовать CDN — более широкий вопрос);
  • вы можете использовать внешние хранилища для загрузки файлов, такие как S3, DigitalOcean Space и т. д., чтобы сэкономить место на локальном сервере, так как они часто оказываются дешевле.

Делайте то, что считаете нужным, но не устанавливайте сам Discourse на Amazon, если вы не очень хорошо знаете, что делаете.

Насколько мощный VPS нужен для Discourse — очень сложный вопрос. Это зависит от количества запросов/посещений/пользователей, которые система должна обрабатывать.

Деньги — ещё один относительный вопрос. Для бизнеса такие расходы имеют иное значение, чем при работе на любительском уровне. Всё зависит от важности форума: достаточно ли 98% времени безотказной работы или требуется 99,9% (причём «требуется» — это не то же самое, что «хочется»; желаемое часто оказывается очень дорогим).

Вы вводили в ChatGPT реальные прайс-листы перед тем, как подготовить этот материал?

Если нет, то он может выглядеть убедительно, но почти наверняка в основном выдуман и устарел.

Беглый взгляд на цены DigitalOcean показывает, что они кажутся неверными и чрезмерно упрощёнными.

Будьте очень осторожны при использовании ChatGPT для принятия бизнес-решений!!

Спасибо за хорошее объяснение!

Честно говоря, я всё ещё запутался.

Кажется, что для Discourse требуется 1–2 ГБ ОЗУ и 10 ГБ дискового пространства.

Я мог бы легко выделить эти ресурсы на любом ноутбуке, учитывая, что пока им будут пользоваться только пользователи из одной страны.

Полагаю, у компании есть несколько собственных серверов (вместо AWS S3 или подобных решений).

Если бы установка была выполнена на этих серверах, это было бы отлично. Но для тестирования, думаю, лучше сначала попробовать на ноутбуке. Нужно ли мне всё ещё оплачивать домен?

  • Для работы с другими пользователями вам понадобится домен. Discourse не предназначен для работы без домена.
  • Запуск интернет-сервера на домашнем интернете не рекомендуется и может нарушать условия предоставления услуг вашего провайдера.
  • Вы хотите, чтобы ваш ноутбук работал круглосуточно?!
  • Настройка на облачном VPS занимает очень мало времени.
  • Вы можете сделать сообщество приватным на начальном этапе, чтобы заблокировать несанкционированных пользователей.

Вы можете легко запустить Discourse на сервере Linode за 5 долларов в месяц (у других компаний есть аналогичные тарифы, но я знаком именно с Linode). Начните с чего-то подобного и рассматривайте более мощные варианты только тогда, когда они действительно понадобятся.

(Конечно, это не включает затраты времени на обслуживание сервера. После настройки это не требует много усилий, но если у вас нет опыта управления Linux-серверами, возможно, лучше выбрать вариант управляемого хостинга. Сам Discourse предлагает хостинг, но то же самое делают и другие компании.)

Вы правы! Спасибо за ответы.

lol, бедный ноутбук.

Если я просто установлю его на ноутбук и оставлю работать на 2–4 часа, это не будет выглядеть подозрительно для интернет-провайдера, верно? (Так же, как электроснабжающая компания не может узнать, что именно вы используете с потреблённой электроэнергией, а только её количество.)

Или это легко отследить благодаря какому-то другому механизму?

Облачный VPS — это то, о чём мы говорили ранее: S3, DigitalOcean или даже Lindoe?

Мой план сейчас — установить это локально на ноутбук, показать сотруднику компании, отвечающему за инфраструктуру, насколько легко я это сделал, а затем попросить его установить это на сервера компании, за которые он отвечает.

Кстати, спасибо за информацию о ChatGPT. Конечно, он не совсем надёжен сам по себе, поэтому я поделился этим, чтобы убедиться, что ценообразование соответствует действительности, хотя реальные инвестиции будут пересмотрены более точно вне рамок ChatGPT.

Если вы используете это просто как демонстрацию, возможно, стоит попробовать следовать одному из руководств по установке для разработки, перечисленных здесь: https://meta.discourse.org/docs?tags=dev-install

Направьте его к этому руководству по требованиям к аппаратному и программному обеспечению: discourse/docs/INSTALL.md at main · discourse/discourse · GitHub.

Это руководство содержит инструкции по созданию и установке производственного сайта Discourse: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.

Я посмотрел здесь:
https://meta.discourse.org/docs?topic=182882

Это то, что мне нужно установить в Windows для локального тестирования?

Эта тема ссылается на те же темы, что и здесь: https://meta.discourse.org/docs?tags=dev-install

Для Windows, возможно, стоит начать с руководства по Docker: Install Discourse for development using Docker - Developer Guides - Discourse Meta. Я думаю, что оно работает медленнее, чем при следовании инструкции Install Discourse on Windows for development - Developer Guides - Discourse Meta, но метод установки через Docker может быть проще, особенно в Windows.

Ещё один вариант — просто создать бесплатную пробную версию с использованием хостинга Discourse: Discourse pricing | Discourse - Civilized Discussion. Ваш сайт будет запущен и готов к работе за 10–20 минут.

Я пытаюсь установить это через Docker, но не получается.

Я застрял на этой ошибке, как её исправить?

3.0" имеет неверную зависимость сверстника "@uppy/core@^3.2.1".
[4/4] Сборка свежих пакетов...
$ ../run-patch-package
patch-package 8.0.0
Применение патчей...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.1 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.3.1 (1 initial) ✔
ember-this-fallback@0.3.1 (2 themes) ✔
virtual-dom@2.1.1 ✔
Готово за 101.54с.
Миграция базы данных...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:138:in `exec': node:internal/modules/cjs/loader:1080
  throw err;
  ^

Ошибка: Не удалось найти модуль 'esbuild'
Стек требований:
- /src/app/assets/javascripts/theme-transpiler/build.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/src/app/assets/javascripts/theme-transpiler/build.js:3:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/src/app/assets/javascripts/theme-transpiler/build.js' ]
}

Node.js v18.17.1
/src/lib/discourse.rb:172:in `execute_command'
/src/lib/discourse.rb:138:in `exec'
/src/lib/discourse.rb:34:in `execute_command'
/src/lib/discourse_js_processor.rb:119:in `build_theme_transpiler'
/src/lib/tasks/assets.rake:313:in `block in <main>'
Задачи: TOP => db:migrate => assets:precompile:theme_transpiler
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)