Instale o Discourse no macOS para desenvolvimento

:warning: Este guia cobre instruções de instalação para um ambiente de desenvolvimento no macOS. Para guias de produção, consulte: Install Discourse in production with the official supported instructions

Então, você quer configurar o Discourse no macOS para hackear e desenvolver?

Vamos assumir que você não tem Ruby/Rails/Postgres/Redis instalados no seu Mac. Vamos começar :rocket: !

Instalar Dependências do Discourse

Você precisará dos seguintes pacotes no seu sistema:

** opcional

reinicie seu terminal

Agora que instalamos as dependências do Discourse, vamos prosseguir para instalar o próprio Discourse.

Reinicie seu Terminal

Sair do seu shell e reiniciá-lo garante que os caminhos dos pacotes instalados sejam corretamente reconhecidos pelo Terminal.

Clonar o Discourse

Clone o repositório do Discourse na pasta ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ indica a pasta inicial, então o código-fonte do Discourse estará disponível na sua pasta inicial.

Inicializar o Discourse

Mude para a pasta do Discourse:

cd ~/discourse

Instale as gems necessárias:

bundle install

Instale as dependências de JS:

pnpm install

Em seguida, execute estes comandos para configurar sua instância local do Discourse:

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Inicie os servidores Rails + Ember. Você tem duas opções aqui.

Opção 1: usando duas abas/janelas separadas do Terminal, execute o Rails e o Ember CLI separadamente via:

bundle exec rails server

e

bin/ember-cli

Opção 2: usando apenas uma aba/janela do Terminal:

bin/ember-cli -u # executará o servidor Pitchfork em segundo plano

:tada: Agora você deve ser capaz de acessar http://localhost:4200 para ver sua instalação local do Discourse. (Observe que o primeiro carregamento pode levar até um minuto, pois o servidor está sendo aquecido.)

Você também pode tentar executar os testes:

bundle exec rake autospec

Todos (ou quase todos) os testes devem passar.

Criar Novo Administrador

Para criar um novo administrador, execute o seguinte comando:

RAILS_ENV=development bundle exec rake admin:create

Siga as instruções para criar uma conta de administrador.

Configurar E-mail

Execute o MailHog:

mailhog

Parabéns! Agora você é o administrador da sua própria instalação do Discourse!

Bom hacking! E para começar, consulte o Guia para Iniciantes na Criação de Plugins do Discourse.


Este documento está sob controle de versão - sugira alterações no GitHub.

78 curtidas
Setup discourse on Mac OS
Running Discourse on Docker for Mac
Localhost:3000/users gives no-results
How to install Discourse on windows
How to install Discourse locally?
Best dev installation method for running on macOS?
Please help, how do I install Discourse on macOS?
Local installation internal use only
Help me setup my Discourse development environment
Discourse standalone
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Error after cleaning tmp folder
MacOS Installation Gem::FilePermissionError
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
Migrate a PunBB forum to Discourse
Migrate a phpBB3 forum to Discourse
Migrate a FluxBB forum to Discourse
Migrate a vBulletin 3 forum to Discourse via XenForo
Regarding the installation - docker
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Migrate a bbPress WordPress plugin forum to Discourse
Install Discourse for development using Docker
Use the Discourse API ruby gem
Enable CORS on localhost for DiscourseConnect
Set Environmental Variables
Need help integrating code wrote on Edittext to the Discourse
Keyboard navigation messes up the search menu
WP-Discourse not connected and admin email not recognized
Contributing to Discourse development
How to install discussions on localhost in my mac?
How to install Discourse for Wordpress locally running on MAMP
Error when building: "Runtime Error: discourse does not support compiling scss/sass files via sprockets"
Discourse as Your First Rails App
Migrate from GetSatisfaction to Discourse
Upgrading Mathjax to version 4
Windows server publish method
Migrate a MyBB forum to Discourse
Category option: max topics per user (2 use-case examples)
Can't deploy to heroku
[PAID] Import from Legacy Postgres DB
Vagrant based server failing on db:migrate
Change unicorn port from 3000 in development
I want to build a debug version of discourse
Moderation Tools
Rails server --daemon and plugins
Installing problem - bundle install
Nginx Performance Report plugin incompatible with development environment setup script
Rake aborted message is showing when installing vagrant development
Update PhantomJS to latest for Ubuntu dev guide?
Cannot Backup my Development Instance (Fails)
Install error : Protocol violation
Can't set up dev environment due to cppjieba_rb failing to install
How to edit the discourse files? A development box?
How to add a new language
How to relax Content Security Policy
Installing Discourse for macOS Development Using asdf and docker-compose
Override profile background via SSO
Can't set up dev environment due to cppjieba_rb failing to install
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Install on macOS – Failure: Scheduler::Defer can pause and resume
Disabling SSO in development environment
Local development and deploying from same repo
Discourse Connect on Local instance is not working
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Please help, how do I install Discourse on macOS?
How to connect to an external database running on localhost
How can I include discourse in my local dev stack?
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Redis version error when I run bundle exec db:create
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?

If anyone is getting failing specs with most of them being .count errors, then try the following:

RAILS_ENV=test bundle exec rake db:reset

I had a problem where development data somehow got into my test database and was causing lots of failures.

7 curtidas

Is it possible to reset a discourse completely?

2 curtidas

Yes, do:

rake db:drop db:create db:migrate

Note that this will wipe everything and you will have to create your Admin user account again.

11 curtidas

Can someone assist me in how I can update my discourse?

/launcher rebuild app

returns an error.

1 curtida

./launcher rebuild app is for discourse_docker based production setup. To update local/development Discourse instance you need:

cd ~/discourse
git pull origin master
8 curtidas

I get this error @techAPJ,

error: Your local changes to the following files would be overwritten by merge:
	.gitignore
Please commit your changes or stash them before you merge.
Aborting

The error message is pretty clear:

Please commit your changes or stash them before you merge.

If you want to ignore your local changes, do:

git fetch origin
git reset --hard origin/master
7 curtidas

Usando o guia do fórum do Ruby on Rails, estou atualmente travado no passo 7.

Essa provavelmente é uma pergunta muito de “iniciante”, mas como faço para “apontar” para a branch experimental que foi linkada naquele tópico? Tentei algumas coisas e, por fim, recebi a mensagem Unknown command mini_racer toda vez.

1 curtida

Eles podem perguntar aqui sem problemas.

Existem algumas instruções específicas para M1 que escrevemos e referenciamos no fórum do Rails neste guia.

Precisaria verificar no meu M1 Air mais tarde, e talvez meus colegas de trabalho que configuraram Macs recentemente saibam melhor se isso ainda é necessário, mas há um exemplo de como apontar para uma branch no passo 7:

gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

Então, você editaria essa linha na sua versão local do discourse/Gemfile:

e depois executaria bundle install.

4 curtidas

O link está logo no topo da postagem original.

O tópico do fórum Ruby on Rails está inativo há muitos meses. O autor original (OP) não está ativo desde fevereiro e não respondeu a nenhum comentário lá pedindo ajuda.

Aqui há mais pessoas dispostas a me ajudar. Só dizendo. :wink:

Tentei copiar isso para o Terminal e recebi o mesmo erro Unknown command mini_racer de antes.

É justo admitir que o guia do fórum Ruby on Rails não é tão claro quanto eu esperava nesse aspecto.

Peço desculpas antecipadamente… :pray:

2 curtidas

Não é um comando para executar. Você precisará EDITAR o arquivo de texto real chamado “Gemfile” localizado dentro do diretório do Discourse.

1 curtida

D’oh! :facepalm:

Obrigado! Vou tentar isso agora mesmo.

Na minha opinião, alguém deveria editar o guia do fórum do Ruby on Rails e fornecer mais esclarecimentos sobre o passo 7. Mas é só a minha opinião.

Já volto. Aguarde um momento…

1 curtida

Desculpe, mas tenho que correr. Acredito que a correção do mini_racer para Macs M1 já foi mesclada. Acabei de verificar meu Gemfile no meu Mac M1 e o meu não foi editado. Então, acho que você pode pular a etapa 7.

3 curtidas

Executei a etapa 8 e recebi o erro Could not locate Gemfile.

Acho que consegui resolver a etapa 7, mas a etapa 8 ainda está me dando problemas e exibindo o erro mencionado acima.

Você precisa estar dentro do diretório do Discourse ao executar bundle install.

Olá @merefield: Você poderia descrever um pouco mais sua configuração remota?

Ao desenvolver um tema, posso fazer alterações em um site ao vivo, mas para desenvolver um plugin, não vejo como evitar fazer isso na minha máquina local, com toda a base de código do Discourse ali (com meu plugin sobreposto).

O resultado é que, para qualquer alteração (que não seja CSS) ao codificar um plugin, ao recarregar: 1) minha ventoinha do computador entra em ação e 2) leva cerca de 30 segundos para recarregar. E se precisar reiniciar o servidor, leva vários minutos.

Esses atrasos realmente somam — com o resultado de que pode me levar uma hora para codificar algo que, com meu fluxo normal de codificação (onde há recarregamento automático ou, no máximo, 2 a 3 segundos por alteração), levaria 15 minutos.

Portanto, agradeceria qualquer sugestão para acelerar o processo.

1 curtida

Isso provavelmente seria melhor no tópico do Ubuntu, pois estou apenas executando essa instalação em um servidor na nuvem, com nginx e DNS completo na frente (sem Docker), então estou realmente endereçando o domínio. Tudo é executado a partir do terminal. Até mesmo o Ember CLI está funcionando bem nesse ambiente agora.

Não é tão rápido assim, mas é suficientemente rápido. Tem a vantagem de permitir executar e testar serviços completos de callback HTTPS.

O ambiente de desenvolvimento de plugins mais rápido que conheço é, de longe, o Docker Dev local no WSL2, que voa. Além disso, é extremamente simples de manter. Infelizmente, o discourse_theme ainda não funciona nesse ambiente, pelo que sei, então voltei ao meu servidor na nuvem para esse trabalho.

É um pouco estranho por que a Apple está ficando para trás nisso? Os engenheiros da Microsoft mostraram-se muito astutos.

3 curtidas

Caso alguém receba erros ao tentar instalar o ruby 2.7.3, aparentemente algo mudou após o Xcode 12, o que quebra o processo de instalação com o rbenv:

Eu continuava recebendo isso, mesmo tendo as versões mais recentes do psych e libyaml instaladas:

Parece que sua instalação de ruby está faltando o psych (para saída YAML).
Para eliminar este aviso, por favor, instale o libyaml e reinstale seu ruby.

Eu tentei a solução alternativa que eles sugerem no guia, mas continuei recebendo o mesmo erro e acabei tendo que usar o rvm:

rvm install 2.7.3
1 curtida

Em relação a como programar mais rápido ao fazer um plugin, recentemente mudei minha abordagem. E está funcionando muito bem. Basicamente, mova todo o conteúdo de front-end para um componente de tema e codifique apenas o conteúdo de back-end no próprio plugin. Sei que outros já descobriram isso antes. Mas agora que estou fazendo isso, a programação é muito mais rápida e agradável. Detalhes aqui.

3 curtidas