Instale Discourse no Windows para desenvolvimento

: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 curtidas

Certo, encontrei uma solução.

Notei que substituir 127.0.0.1 por localhost corrigiria as imagens.

Após pesquisar um pouco, este é o comando que você pode usar para iniciar o Discourse:

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


Tentarei atualizar o guia mais tarde.

4 curtidas

Alguma chance de revisar este PR?

Isso tornaria este guia um pouco mais amigável.

3 curtidas

Alguma ideia do porquê estou recebendo "Infelizmente, ocorreu um erro inesperado e o Bundler não pode continuar." após bundle install\n?

1 curtida

mesmo problema

Você pode fornecer uma captura de tela do erro? Qual versão do Ruby você tem instalada?

Estou tendo problemas com dependências:

ux430uq@Asus-UX430UQ:~/discourse$ bundle install
Você deve usar o Bundler 2 ou superior com este lockfile.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versão do Bundler 1.16.1

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

Buscando: bundler-2.4.20.gem (100%)
ERRO: Enquanto executava gem ... (Gem::FilePermissionError)
Você não tem permissões de escrita para o diretório /var/lib/gems/2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$
ux430uq@Asus-UX430UQ:~/discourse$ sudo gem install bundler
[sudo] senha para ux430uq:
Buscando: bundler-2.4.20.gem (100%)
ERRO: Erro ao instalar bundler:
        A última versão do bundler (>= 0) que suporta seu Ruby e RubyGems foi a 2.3.26. Tente instalar com `gem install bundler -v 2.3.26`
        bundler requer a versão do Ruby >= 2.6.0. A versão atual do ruby é 2.5.0.
ux430uq@Asus-UX430UQ:~/discourse$ bundler -v
Versão do Bundler 1.16.1
ux430uq@Asus-UX430UQ:~/discourse$

Como posso consertar isso facilmente? Eu estava tentando instalar 2.6.0, depois 2.7.0, mas sempre há outros problemas com isso.

Conforme alguns dos comentários anteriores, também encontrei algumas dificuldades e erros ao tentar seguir este guia - tentei em um desktop Windows 10 e Windows 11.

Após alguma tentativa e erro, finalmente tenho etapas que resultam em um ambiente de desenvolvimento totalmente funcional no Windows 11, testado na versão mais recente 22H2 e também na próxima Release Preview 23H2 (presumo que também funcionará na versão mais recente do Windows 10).

Se for útil para alguém, acabei de postar o guia aqui:-

Espero que isso ajude pessoas como eu que estão tentando fazer o Discourse funcionar no Windows :smiley:

2 curtidas

Revisei todo este guia oficial novamente para garantir que nada quebrou desde a minha última tentativa.
Instalei o Ubuntu (versão não especificada) via WSL no Windows 11, que instalou a última versão LTS, 22.04 neste caso.

Não encontrei nenhum problema; tudo foi direto, sem erros, e a instalação de desenvolvimento funciona.

Se você tiver problemas para instalar algo usando um de nossos guias oficiais no futuro, por favor, anote os erros e relate-os para nós, é sempre útil :smile:


Dois avisos, no entanto:

Ao instalar o Node.js:

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

                           AVISO DE DEPRECIAÇÃO DE SCRIPT


  Este script, localizado em https://deb.nodesource.com/setup_X, usado para
  instalar o Node.js está obsoleto agora e eventualmente será desativado.

  Por favor, visite o Github de distribuições NodeSource e siga as
  instruções para migrar seu repositório.
  https://github.com/nodesource/distributions

  O repositório Github de distribuições Linux NodeSource Node.js contém
  informações sobre quais versões do Node.js e quais distribuições Linux
  são suportadas e como instalá-lo.
  https://github.com/nodesource/distributions


                          AVISO DE DEPRECIAÇÃO DE SCRIPT

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

PARA EVITAR ESTA ESPERA, MIGRE O SCRIPT
Continuando em 60 segundos (pressione Ctrl-C para abortar) ...

Ao executar redis-server --daemonize yes:

# AVISO A sobrealocação de memória deve estar habilitada! Sem ela, um salvamento em segundo plano ou a replicação podem falhar em condições de pouca memória. Sendo desabilitada, também pode causar falhas sem condições de pouca memória, veja https://github.com/jemalloc/jemalloc/issues/1328. Para corrigir este problema, adicione 'vm.overcommit_memory = 1' a /etc/sysctl.conf e então reinicie ou execute o comando 'sysctl vm.overcommit_memory=1' para que isso tenha efeito.

Não sei por que tive tantos problemas então! Talvez houvesse algo estranho na minha instalação do Windows que consegui consertar durante a minha solução de problemas sem perceber! :stuck_out_tongue:

Ainda assim, estou feliz com o que aprendi até agora e ansioso para continuar trabalhando na migração dos meus fóruns para o Discourse.

2 curtidas

Tive que reinstalar o Windows e agora tenho um Windows 11 limpo instalado.
Seguirei o guia e reportarei mais tarde! Terei o guia de @AliBenBongo em mente também.

1 curtida

Aqui está um acompanhamento.

O guia certamente poderia usar uma atualização, mas ainda funciona maravilhosamente bem em um Windows 11 22H2 recém-instalado. :+1:

O único problema que tive foi que, mesmo que o comando wsl estivesse funcionando em um terminal, o recurso WSL na verdade não estava habilitado por padrão:

3 curtidas

Acho que este guia está desatualizado. As etapas mencionadas no guia Ubuntu/Debian não existem mais.

Existe uma maneira de desfazer todas essas etapas, por exemplo, reverter o script de instalação de pacotes, gems e clonagem?

Ainda é necessário instalar o 18.04 sobre o 20.04?

Recebendo erro ao instalar nodejs:

# apt install nodejs

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nodejs : Depends: libc6 (>= 2.28) but 2.27-3ubuntu1.6 is to be installed
E: Unable to correct problems, you have held broken packages.```