Install Discourse on Windows for development

:information_source: This tutorial has been tested on Windows 10 and 11.

To set up a development environment for Discourse on Windows, you can do it using Windows Subsystem for Linux feature.

This setup requires the WSL 2 installation. It is only available in Windows 10 builds 18917 or higher. We’ll assume that you already installed Windows Subsystem for Linux 2 (Ubuntu) on your Windows 10 system. WARNING: Install Ubuntu 18.04, and not 20.04 since some installations will fail on 20.04. For more information see June 30th, 2020 notes at the bottom of this post.

Let’s begin!

Installing Discourse

  1. Initially follow the steps from the topic Beginners Guide to Install Discourse on Ubuntu for Development until the step Clone Discourse.
  1. Before setting up the database you have to start PostgreSQL service & Redis server manually using following commands

    sudo service postgresql start
    redis-server --daemonize yes
    
  2. Then go through all the remaining steps of the Ubuntu guide.

Creating a Command to Start Discourse

Now your development environment is almost ready. The only problem is every time when you open Ubuntu on Windows you have to start the PostgreSQL service & Redis server manually. Don’t worry we can have a workaround for this by creating a custom command :wink:

cd ~

Create a new file using the command nano start-discourse and paste the content below then save and exit.

#!/bin/bash

# to start PostgreSQL
sudo service postgresql start

# to start Redis server
redis-server --daemonize yes

Now modify the CHMOD using below command

chmod +x start-discourse

And copy the file to your bin folder

sudo cp start-discourse /usr/bin/

It’s done. Now, whenever you open the Ubuntu bash just run the command below and start developing :+1:

start-discourse

Alternatively, if you are using Windows 10 enterprise, pro, or education edition then you can create a Linux virtual machine in hyper-v to set up the Discourse dev environment.

Notes About Windows Environment

As of June 30, 2020:
As of July 1, 2020

Last Reviewed by @SaraDev on 2022-06-16T02:00:00Z


This document is version controlled - suggest changes on 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
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
How to install on localhost
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
Restoring backup fails in Win10/Ubuntu development environment
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
Use the Discourse API ruby gem
Migrate a Ning forum to Discourse
Windows server publish method
I'm having trouble installing a local Discourse instance on Windows 11
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 — это запустит одновременно серверы бэкенда и фронтенда.

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