Instale Discourse no Ubuntu ou Debian para Desenvolvimento

Pessoalmente, eu formataria seu pi (a menos que você tenha algo que queira salvar) e reiniciaria do zero, ou simplesmente começaria em um cartão SD separado e limpo.

Parece que você teve duas instalações do Discourse - daí talvez o segundo processo Redis.

1 curtida

rm -rf *? Ou isso é muito destrutivo?

Agora funciona. Demora muito para carregar a página e gera timeouts porque demora muito.

E, [2024-11-08T14:57:11.960623 #2213] ERROR -- : worker=0 PID:2323 running too long (65s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:18.033374 #2213] ERROR -- : worker=0 PID:2323 timeout (65s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.607509 #2213] ERROR -- : reaped #<Process::Status: pid 2323 SIGKILL (signal 9)> worker=0                                                                                                                             
E, [2024-11-08T14:57:20.645299 #2213] ERROR -- : worker=1 PID:2324 running too long (63s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:20.645461 #2213] ERROR -- : worker=1 PID:2324 timeout (63s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.681291 #2213] ERROR -- : reaped #<Process::Status: pid 2324 SIGKILL (signal 9)> worker=1                                                                                                                             
I, [2024-11-08T14:57:23.676422 #2555]  INFO -- : worker=0 ready                                                                                                                                                                              
I, [2024-11-08T14:57:23.681733 #2556]  INFO -- : worker=1 ready 
1 curtida

Qual modelo de Pi você está usando? Eu não tentaria isso com menos que um Pi 4.

Definitivamente levará algum tempo.

Assim que o JavaScript for compilado, emita outra chamada de navegador. Deverá funcionar então.

Já foi (acho que foi depois do embroider\u003ewebpack e do discourse-plugins\u003eapply-patches (algo assim)). Estou em um Pi 4.

1 curtida

Esses trabalhadores são unicórnios (back end). Eles parecem prontos. Você tem que ter certeza de que o front end também está construído.

E lembre-se de conectar em http://localhost:4200

Como saberei quando a construção terminar?

1 curtida

Você obtém algo como:

[ember-cli] Build successful (41838ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 23127ms
[ember-cli] Babel: admin (1) | 4067ms
[ember-cli] Funnel (422) | 2826ms (6 ms)

(esses tempos são no meu mega PC!)

Raspberry Pi 5 (8GB):

[ember-cli] Build successful (148604ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -+-
[ember-cli] @embroider/webpack (1) | 83461ms
[ember-cli] @embroider/compat/app (1) | 13488ms
[ember-cli] Babel: discourse-plugins (25) | 9313ms (372 ms)
[ember-cli] Babel: admin (1) | 8695ms
[ember-cli] Funnel (407) | 8557ms (21 ms)

Olhando a memória do meu pi 5, porém, ele já está usando 4.27GB apenas com o Discourse rodando e uma única aba do Chromium aberta!

Então, se você estiver enfrentando uso pesado de swap (o que por si só é uma má ideia em um cartão SD), será muito lento para chegar a este ponto. Verifique com o comando htop em outro terminal.

Você pode achar que rodar isso em um pi com menos de 8GB será um desafio!

1 curtida

Eu acho que também entendi isso.

Vou executar isso e retorno para você.

Quando disse isto:

O último valor registado foi este:

Depois congelou (e ainda está). Provavelmente excedeu o limite. Fechei a aba do navegador, mas ainda está congelada. Nem consigo fazer CTRL+C.

Sim, receio que seu pequeno pi precise de mais memória. Uma vez que ele atinge o limite máximo como esse, ele trava.

Uma opção é adicionar um drive NVMe e aumentar o swap.

Você pode então aumentar o swap com segurança.

Acho que a única outra solução é arranjar um 5 de 8GB para esta tarefa e usar seu 4 para outra coisa.

1 curtida

Bom dia

Quando digito o seguinte comando, nada acontece:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
A imagem mostra uma janela de terminal com um comando para executar um script de instalação do Rails em um sistema Linux. (Legenda gerada por IA)

Está faltando alguma coisa?

Talvez você não tenha o wget instalado?

Verifique se você o tem com

which wget

Se não, você provavelmente pode instalá-lo com

sudo apt-get install wget -y
3 curtidas

Aliás, adicionei uma unidade NWMe esta semana e meu Pi 5 está funcionando muito bem. Também aumentei o swap (que é um processo ligeiramente diferente de um sistema Linux normal)

E, notavelmente, isso exigiu uma reinstalação completa de uma instalação de desenvolvimento do Discourse.

Descobri que seguir as instruções no OP fez tudo correr perfeitamente, sem problemas, então parece que o script e a compatibilidade do Pi estão em um lugar muito bom agora, obrigado por todas as contribuições!

6 curtidas

Olá a todos,

Consegui configurar o Discourse com sucesso em meu servidor local Ubuntu 24.04 LTS para desenvolvimento. O guia funcionou, ambos os comandos finais estão sendo executados sem erros.

Mas como posso acessá-lo pela rede? O servidor Ubuntu não tem uma interface gráfica onde localhost:4200 funcionaria.
E ServerIP:4200 mostra que não pode ser alcançado.

Alguma sugestão sobre como habilitar o acesso de dispositivos em rede na minha LAN?

Obrigado!

2 curtidas

Se você iniciar o rails com bin/rails -b 0.0.0.0, isso o tornará disponível para outros hosts em sua rede. Você então também precisaria iniciar o ember separadamente em uma nova aba com bin/ember-cli.

Em seguida, visitar ServerIP:4200 deve funcionar (a menos que, é claro, você tenha alguns problemas de firewall).

3 curtidas

Instalei o Ubuntu 24 no WSL2. [1]

Aqui estão os problemas que encontrei:

  • E: Impossível localizar o pacote libltdl7-dev

  • Sua versão do Ruby é 3.2.1, mas seu Gemfile especificou ~> 3.3
    Com o aumento da versão do Ruby para > 3.3 recentemente, o script também precisa de uma atualização: install-rails/linux at main · discourse/install-rails · GitHub

    • O que eu fiz:
      rbenv install 3.3.7
      rbenv global 3.3.7
      rbenv rehash
  • ERRO Suporte de engine inválido para /home/arkshine/discourse: esperado: {"pnpm":"^9"} (atualmente: {"node":"v18.20.6","pnpm":"10.5.2"})

    • sudo é necessário: sudo pnpm install [2]
  • ERRO Falha ao alternar pnpm para v9.15.5. Parece que o CLI do pnpm está faltando em "~/.local/share/pnpm/.tools/pnpm/9.15.5/bin" ou está incorreto

    • Ao executar pnpm install. Consegui corrigir com:
      • npm install -g corepack@latest
      • corepack use pnpm@latest-9

Como não sou root, a falta de sudo no código impossibilita a execução no final. Não sei se há uma maneira inteligente, mas não a encontrei. Não tive esses problemas com o Ubuntu 22.
Como root, consegui fazer funcionar.

Como observação, existe Developing Discourse using a Dev Container como alternativa.


  1. Como o aumento da versão do Ruby agora exige v3.3+, não consegui corrigir minha instalação com o Ubuntu 22. ↩︎

  2. Se você instalar como não root. ↩︎

2 curtidas

Sobre o Ubuntu 22, consegui fazer funcionar novamente. Eu sou apenas um idiota. :baymax_yes:

Meu problema original era que o rbenv continha apenas a versão 3.3.0-dev.
Eu recebia esse tipo de erro:

(base) arkshine@HOME:~/discourse$ rake db:migrate
Sorry, you can't use byebug without Readline. To solve this, you need to
rebuild Ruby with Readline support. If using Ubuntu, try sudo apt-get     install libreadline-dev and then reinstall your Ruby.
rake aborted!
LoadError: cannot load such file -- readline (LoadError)
/home/arkshine/discourse/config/application.rb:44:in '<top (required)>'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
/home/arkshine/discourse/Rakefile:7:in '<top (required)>'
(See full trace by running task with --trace)

A solução é atualizar o rbenv:

git -C ~/.rbenv/plugins/ruby-build pull

Então você pode instalar uma versão mais recente e estável:

(base) arkshine@HOME:~/discourse$ rbenv install --list
3.1.6
3.2.7
3.3.7
3.4.2
rbenv install 3.3.7
rbenv global 3.3.7
rbenv rehash

E agora, está funcionando novamente! :party_popper:

2 curtidas

Acabei de tentar instalar o Discourse no Ubuntu 24 (versão ARM rodando dentro do VMWare no meu Macbook com Mac OS). Encontrei vários problemas.

Mudança #1
A instalação do ImageMagick falha. No script de instalação do próprio ImageMagick, há uma dependência de libltld7-dev. Isso precisa ser alterado para libltld-dev em vez disso.

Mudança #2
Por padrão, o Ruby 3.2.1 é instalado. Isso não funciona com o pnmp v9.x. Eu alterei para 3.3.7 em vez disso, o que pareceu funcionar.
antigo:

ruby_version="3.2.1"

novo:

ruby_version="3.3.7"

Mudança #3
A instalação do Node 18 causou alguns erros. No script de instalação, alterei para Node 20, o que pareceu funcionar.
antigo:

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

novo:

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Graças ao comentário do @Arkshine acima, que foi útil.

6 curtidas

Com suas atualizações, ainda funciona com a versão atual. Obrigado!