Установка Discourse на Windows для разработки

:information_source: Этот учебник протестирован на Windows 10 и 11.

Чтобы настроить среду разработки для Discourse на Windows, вы можете использовать функцию Подсистемы Windows для Linux (WSL).

Эта настройка требует установки WSL 2. Она доступна только в сборках Windows 10 версии 18917 и выше. Мы предполагаем, что вы уже установили Подсистему Windows для Linux 2 (Ubuntu) на вашу систему Windows 10. ВНИМАНИЕ: Установите Ubuntu 18.04, а не 20.04, так как некоторые установки могут завершиться ошибкой на версии 20.04. Для получения дополнительной информации см. заметки от 30 июня 2020 года в конце этого поста.

Начнем!

Установка Discourse

  1. Сначала выполните шаги из темы Руководство для начинающих по установке Discourse на Ubuntu для разработки до шага Клонирование Discourse.
  1. Перед настройкой базы данных вам нужно вручную запустить службу PostgreSQL и сервер Redis, используя следующие команды:

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Затем выполните все оставшиеся шаги из руководства для Ubuntu.

Создание команды для запуска Discourse

Теперь ваша среда разработки почти готова. Единственная проблема в том, что каждый раз при открытии Ubuntu на Windows вам нужно вручную запускать службу PostgreSQL и сервер Redis. Не волнуйтесь, мы можем найти обходной путь, создав пользовательскую команду :wink:

cd ~

Создайте новый файл с помощью команды nano start-discourse, вставьте приведенный ниже контент, затем сохраните и выйдите.

#!/bin/bash

# для запуска PostgreSQL
sudo service postgresql start

# для запуска сервера Redis
redis-server --daemonize yes

Теперь измените права доступа (CHMOD) с помощью следующей команды:

chmod +x start-discourse

И скопируйте файл в вашу папку bin:

sudo cp start-discourse /usr/bin/

Готово. Теперь, каждый раз при открытии bash Ubuntu, просто выполните команду ниже и приступайте к разработке :+1:

start-discourse

Альтернативно, если вы используете Windows 10 в редакциях Enterprise, Pro или Education, вы можете создать виртуальную машину Linux в Hyper-V для настройки среды разработки Discourse.

Заметки об окружении Windows

По состоянию на 30 июня 2020 года:
По состоянию на 1 июля 2020 года

Последний обзор @SaraDev 2022-06-16T02:00:00Z


Этот документ находится под версионным контролем — предлагайте изменения на GitHub.

52 лайка
How to install Discourse on windows
Help installing Discourse for Developer
Database connection error when setting up Discourse development environment using Linux Bash Shell on Windows 10
Restoring backup fails in Win10/Ubuntu development environment
How to Install Discourse on LocalHost in Windows?
Error installing `bullseye-backports` when trying to install for Development
How can i install Discourse forum on my win 10 dedicated server OVH
How to install on localhost
Restoring backup fails in Win10/Ubuntu development environment
Help with setting up discourse An error occurred while installing xorcist (1.1.2), and Bundler cannot continue
Trying to set up Discourse on my website
Migrate a MyBB forum to Discourse
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Phorum forum to Discourse
Migrate a PunBB forum to Discourse
Migrate from another forum to Discourse
Unable to setup discourse in my windows 10
Self hosting discourse with WSL shows an error, the command shown also doesnt work
No such file or directory - convert (Errno::ENOENT)
PG::UndefinedTable: ERROR: relation "pg_range" does not exist
I'm having trouble installing a local Discourse instance on Windows 11
Issues while installing Discourse on WSL
Guide to Setting Up Discourse Development Environment - Windows 11
Need help integrating code wrote on Edittext to the Discourse
Problem in development Installation
Contributing to Discourse development
Subscribe to post an ad
Restoring backup fails in Win10/Ubuntu development environment
Migrate a Ning forum to Discourse
Windows server publish method
Use the Discourse API ruby gem
Topics which users cannot directly reply to, but can create a linked topic?
How to add a new language
How to Start Sidekiq When Using Puma
Discourse-webpack: A boilerplate for developing JS-heavy Discourse components
How can I directly edit Discourse database from a GUI?
Can't set up dev environment due to cppjieba_rb failing to install
Cloning and making our own Discourse community
How to Add Ngrok to Allowed Hosts
»vagrant up« hangs
Discourse installation end to end on Windows Server 2016
No connection to db issue
How to Install Discourse on LocalHost in Windows?
WSL environment deadlocks
Problem with development on Windows with Docker and mounted volume
Please help, how do I install Discourse on macOS?
Discourse standalone
Set up a local Discourse Development Environment?
Migrate a NodeBB forum with Redis to Discourse

Отлично, решение найдено.

Я заметил, что замена 127.0.0.1 на localhost исправляет проблему с изображениями.

После небольшого поиска вот команда, которую можно использовать для запуска Discourse:

DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u


Позже я постараюсь обновить руководство.

4 лайка

Есть ли возможность просмотреть этот PR?

Это сделало бы это руководство немного более дружелюбным.

3 лайка

Есть ли какие-то идеи, почему я получаю сообщение «К сожалению, произошла непредвиденная ошибка, и Bundler не может продолжить работу» после выполнения bundle install?

1 лайк

та же проблема

Можете прислать скриншот ошибки? Какая версия Ruby у вас установлена?

У меня возникли проблемы с зависимостями:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
Для работы с этим lockfile-файлом необходимо использовать Bundler версии 2 или выше.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1

ux430uq@Asus-UX430UQ:~/discourse$ gem install bundler

Fetching: bundler-2.4.20.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    У вас нет прав на запись в каталог /var/lib/gems/2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] пароль для ux430uq:
Fetching: bundler-2.4.20.gem (100%)
ERROR:  Error installing bundler:
        Последней версией bundler (>= 0), поддерживающей вашу Ruby и RubyGems, является версия 2.3.26. Попробуйте установить её командой `gem install bundler -v 2.3.26`
        bundler требует версию Ruby >= 2.6.0. Текущая версия Ruby — 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Bundler version 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

Как я могу легко исправить это? Я пытался установить версии 2.6.0, затем 2.7.0, но всегда возникали другие проблемы.

Как и некоторые ранее комментировавшие, я также столкнулся с трудностями и ошибками при попытке следовать этой инструкции — пробовал как на Windows 10, так и на Windows 11.

После ряда проб и ошибок я наконец нашёл шаги, которые позволяют создать полностью рабочую среду разработки под Windows 11. Это было протестировано на последней сборке 22H2, а также на предварительной версии релиза 23H2 (предполагаю, что это также будет работать на новейшей сборке Windows 10).

Если это кому-то пригодится, я только что опубликовал инструкцию здесь:

Надеюсь, это поможет людям, таким как я, которые пытаются запустить Discourse под Windows :smiley:

2 лайка

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

Я установил Ubuntu (версия не указана) через WSL на Windows 11, в результате чего была установлена последняя LTS-версия — в данном случае 22.04.

У меня не возникло никаких проблем: всё прошло гладко, без ошибок, и установка разработчика работает корректно.

Если в будущем у вас возникнут трудности с установкой чего-либо по одному из наших официальных руководств, пожалуйста, записывайте ошибки и сообщайте нам об этом — это всегда полезно :smile:


Однако есть два предупреждения:

При установке Node.js:

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕВАНИИ СКРИПТА


  Этот скрипт, расположенный по адресу https://deb.nodesource.com/setup_X, который использовался
  для установки Node.js, теперь устарел и в конечном итоге будет отключён.

  Пожалуйста, посетите репозиторий NodeSource distributions на GitHub и следуйте
  инструкциям по миграции вашего репозитория.
  https://github.com/nodesource/distributions

  В репозитории GitHub NodeSource Node.js Linux distributions содержится
  информация о том, какие версии Node.js и какие дистрибутивы Linux
  поддерживаются, а также как их установить.
  https://github.com/nodesource/distributions


                          ПРЕДУПРЕЖДЕНИЕ ОБ УСТАРЕВАНИИ СКРИПТА

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

ЧТОБЫ ИЗБЕЖАТЬ ЭТОГО, ПЕРЕЙДИТЕ НА НОВЫЙ СКРИПТ
Продолжение через 60 секунд (нажмите Ctrl-C для прерывания) ...

При запуске redis-server --daemonize yes:

# ВНИМАНИЕ: необходимо включить переполнение памяти! Без этого фоновое сохранение или репликация могут завершиться неудачей при нехватке памяти. Отключение этой опции также может привести к сбоям даже при наличии достаточного объёма памяти. Подробнее см. https://github.com/jemalloc/jemalloc/issues/1328. Чтобы исправить эту проблему, добавьте 'vm.overcommit_memory = 1' в файл /etc/sysctl.conf, затем перезагрузите систему или выполните команду 'sysctl vm.overcommit_memory=1', чтобы изменения вступили в силу.

Не знаю, почему у меня тогда возникло столько проблем! Возможно, в моей установке Windows что-то было странное, и я случайно исправил это во время устранения неполадок, даже не осознав этого! :stuck_out_tongue:

В любом случае, я доволен тем, что уже узнал, и с нетерпением жду продолжения работы по переносу моих форумов на Discourse.

2 лайка

Мне пришлось переустановить Windows, и теперь у меня чистая установка Windows 11.
Я буду следовать гайду и позже отчитаюсь! Также буду иметь в виду гайд от @AliBenBongo.

1 лайк

Вот продолжение.

Конечно, руководство можно было бы обновить, но оно всё ещё отлично работает на чистой Windows 11 22H2. :+1:

Единственная проблема, с которой я столкнулся, заключалась в том, что, хотя команда wsl работала в терминале, функция WSL по умолчанию не была включена:

3 лайка

Я думаю, что эта инструкция устарела. Шаги, упомянутые в руководстве для Ubuntu/Debian, больше даже не существуют.

Есть ли способ отменить все эти действия, например, выполнить обратную установку скрипта пакетов, gem-библиотек и клонирования?

Все еще требуется установка 18.04 вместо 20.04?

Получаю ошибку при установке nodejs:

# apt install nodejs

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

Следующие пакеты имеют неудовлетворенные зависимости:
 nodejs : Зависит: libc6 (>= 2.28), но будет установлен 2.27-3ubuntu1.6
E: Не удалось исправить проблемы, у вас есть заблокированные поврежденные пакеты.

Установка на 24.04 не удалась, хост-машина не может подключиться к порту 3000

У меня это работает на 24.04. Рекомендую поделиться более подробной информацией о том, что происходит при запуске сервера.

Попробуйте FORCE_HOSTNAME=localhost bin/ember-cli -u — это запустит одновременно серверы бэкенда и фронтенда.

(В пути: по памяти)