Instalar Discourse en Ubuntu o Debian para desarrollo

Personalmente, borraría tu pi (a menos que tengas algo que quieras guardar) y reiniciaría desde cero, o simplemente empezaría en una tarjeta SD separada y limpia.

Parece que tenías dos instalaciones de Discourse, de ahí quizás el segundo proceso de Redis.

1 me gusta

¿rm -rf *? ¿O es eso demasiado destructivo?

Ahora funciona más o menos. Tarda mucho en cargar la página y da tiempos de espera porque tarda demasiado.

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 me gusta

¿Qué modelo de pi estás usando? No intentaría esto con algo menos que una pi 4.

Definitivamente llevará algún tiempo.

Una vez que se compile el JavaScript, emite otra llamada al navegador. Debería funcionar.

Ya estaba (creo que fue después del embroiderwebpack y el discourse-pluginsapply-patches (algo así)). Estoy en una Pi 4.

1 me gusta

Esos trabajadores son unicornios (back end). Parecen listos. Tienes que asegurarte de que el front end también esté construido.

Y recuerda conectarte en http://localhost:4200

¿Cómo sabré cuándo ha terminado de construirse?

1 me gusta

Obtienes 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)

(¡esos tiempos son en mi 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)

Sin embargo, al mirar la memoria de mi pi 5, ¡ya está usando 4.27GB solo con Discourse en ejecución y una sola pestaña de Chromium abierta!

Así que si te encuentras con un uso intensivo de swap (lo cual es una mala idea en una tarjeta SD) será muy lento llegar a este punto. Comprueba con el comando htop en otra terminal.

¡Puede que te resulte un desafío ejecutar esto en una pi con menos de 8GB!

1 me gusta

Creo que también obtuve eso.

Lo ejecutaré y te informaré.

Cuando dijo esto:

El último importe registrado fue este:

Entonces se congeló (y todavía lo está). Probablemente superó el límite. Cerré la pestaña del navegador pero todavía está congelada. Ni siquiera puedo hacer CTRL+C.

Sí, me temo que tu pequeño pi necesita más memoria. Una vez que se maximiza así, se congelará.

Una opción es añadir una unidad NVMe y aumentar el espacio de intercambio (swap).

Entonces podrás aumentar el espacio de intercambio de forma segura.

Creo que la única otra solución es conseguir un 8 GB para esta tarea y usar tu 4 GB para otra cosa.

1 me gusta

Buenos días

Cuando escribo el siguiente comando, no sucede nada:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
La imagen muestra una ventana de terminal con un comando para ejecutar un script de instalación de Rails en un sistema Linux. (Subtitulado por IA)

¿Me falta algo?

¿Quizás no tienes wget instalado?

Comprueba si lo tienes con

which wget

Si no, probablemente puedas instalarlo con

sudo apt-get install wget -y
3 Me gusta

Por cierto, añadí una unidad NVMe esta semana y mi Pi 5 funciona de maravilla. También aumenté el espacio de intercambio (que es un proceso ligeramente diferente al de un sistema Linux normal).

Y lo más notable es que esto requirió una reinstalación completa de una instalación de desarrollo de Discourse.

Encontré que siguiendo las instrucciones del OP todo salió perfectamente sin problemas, así que parece que el script y la compatibilidad con Pi están en un muy buen lugar en este momento, ¡gracias por todas las contribuciones!

6 Me gusta

Hola a todos,

He configurado Discourse con éxito en mi servidor local Ubuntu 24.04 LTS para desarrollo. La guía funcionó, ambos comandos finales se ejecutan sin errores.

Pero, ¿cómo puedo acceder a él a través de la red? El servidor Ubuntu no tiene una GUI donde localhost:4200 funcionaría.
Y ServerIP:4200 muestra que no se puede acceder.

¿Alguna sugerencia sobre cómo habilitar el acceso desde dispositivos en red en mi LAN?

¡Gracias!

2 Me gusta

Si inicias Rails con bin/rails -b 0.0.0.0, esto debería hacerlo disponible para otros hosts en tu red. Luego, también necesitarías iniciar Ember por separado en una nueva pestaña con bin/ember-cli.

Luego, visitar ServerIP:4200 debería funcionar (a menos que, por supuesto, tengas algún problema de firewall).

3 Me gusta

Instalé Ubuntu 24 en WLS2. [1]

Estos son los problemas que encontré:

  • E: No se puede localizar el paquete libltdl7-dev

  • Tu versión de Ruby es 3.2.1, pero tu Gemfile especificó ~> 3.3
    Con el aumento de la versión de Ruby a > 3.3 recientemente, el script también necesita una actualización: install-rails/linux at main · discourse/install-rails · GitHub

    • Lo que hice:
      rbenv install 3.3.7
      rbenv global 3.3.7
      rbenv rehash
  • ERROR Soporte de motor no admitido para /home/arkshine/discourse: se esperaba: {"pnpm":"^9"} (actual: {"node":"v18.20.6","pnpm":"10.5.2"})

    • Se necesita sudo: sudo pnpm install [2]
  • ERROR No se pudo cambiar pnpm a v9.15.5. Parece que falta la CLI de pnpm en "~/.local/share/pnpm/.tools/pnpm/9.15.5/bin" o es incorrecta

    • Al ejecutar pnpm install. Pude solucionarlo con:
      • npm install -g corepack@latest
      • corepack use pnpm@latest-9

Como no soy root, la falta de sudo en el código hace imposible ejecutarlo al final. No sé si hay una forma inteligente, pero no la encontré. No tuve estos problemas con Ubuntu 22.
Como root, pude hacerlo funcionar.

Como nota adicional, existe Developing Discourse using a Dev Container como alternativa.


  1. Debido a que el aumento de la versión de Ruby ahora requiere v3.3+, no pude solucionar mi instalación con Ubuntu 22. ↩︎

  2. Si instalas como no root. ↩︎

2 Me gusta

Sobre Ubuntu 22, lo volví a hacer funcionar. Soy solo un idiota. :baymax_yes:

Mi problema original era que rbenv solo contenía la versión 3.3.0-dev.
Obtenía este tipo de error:

(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)

La solución es actualizar rbenv:

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

Luego puedes instalar una versión más reciente y estable:

(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

¡Y ahora, funciona de nuevo! :party_popper:

2 Me gusta

Acabo de intentar instalar discourse en Ubuntu 24 (versión ARM ejecutándose dentro de VMWare en mi Macbook con Mac OS). Me encontré con varios problemas.

Cambio #1
La instalación de ImageMagick falla. En el script de instalación de ImageMagick, hay una dependencia de libltld7-dev. Esto debe cambiarse a libltld-dev.

Cambio #2
Por defecto, se instala Ruby 3.2.1. Esto no funciona con pnmp v9.x. Lo he cambiado a 3.3.7, lo que pareció funcionar.
antiguo:

ruby_version="3.2.1"

nuevo:

ruby_version="3.3.7"

Cambio #3
La instalación de Node 18 causó algunos errores. En el script de instalación, lo cambié a Node 20, lo que pareció funcionar.
antiguo:

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

nuevo:

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

Gracias al comentario de @Arkshine más arriba, que fue útil.

6 Me gusta

¡Con tus actualizaciones todavía funciona con la versión actual. ¡Gracias!