Reconstruyendo Discourse después de añadir un repositorio inválido en GitHub

Tengo un problema con mi sitio de Discourse después de agregar por error un repositorio de GitHub no válido al archivo app.yml. Cuando ejecuté ./launcher rebuild app, el proceso falló y ahora el sitio no se puede reconstruir. Desafortunadamente, tengo copias de seguridad pero fallan durante el proceso de restauración. A continuación, se detallan los problemas, incluido el registro de errores completo.

Pasos seguidos:

  1. Intenté agregar DeepSeek LLM a mi instalación de Discourse siguiendo la guía de esta publicación.
  2. Agregué la URL del repositorio https://github.com/deepseek-ai/DeepSeek-LLM al archivo app.yml.
  3. Ejecuté ./launcher rebuild app, que falló y dejó el sitio no funcional.

Registro de errores completo:

plaintext

CopyEdit

(Ver el rastreo completo ejecutando la tarea con --trace)
I, [2025-01-21T02:32:16.599723 #1]  INFO -- : gem install multipart-post -v 2.4.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed multipart-post-2.4.0
1 gem installed
gem install faraday-multipart -v 1.0.4 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed faraday-multipart-1.0.4
1 gem installed
gem install event_stream_parser -v 1.0.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed event_stream_parser-1.0.0
1 gem installed
gem install ruby-openai -v 7.0.0 -i /var/www/discourse/plugins/discourse-ai-topic-summary/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed ruby-openai-7.0.0
1 gem installed
gem install tokenizers -v 0.4.4 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed tokenizers-0.4.4-x86_64-linux
1 gem installed
gem install tiktoken_ruby -v 0.0.9 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Successfully installed tiktoken_ruby-0.0.9-x86_64-linux
1 gem installed
gem install ed25519 -v 1.2.4 -i /var/www/discourse/plugins/discourse-ai/gems/3.3.6 --no-document --ignore-dependencies --no-user-install
Building native extensions. This could take a while...
Successfully installed ed25519-1.2.4
1 gem installed
... (más registros de instalación de gemas) ...
I, [2025-01-21T02:32:16.600035 #1]  INFO -- : Terminating async processes
I, [2025-01-21T02:32:16.600051 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 39
I, [2025-01-21T02:32:16.600103 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 107
2025-01-21 02:32:16.600 UTC [39] LOG:  received fast shutdown request
107:signal-handler (1737426736) Received SIGTERM scheduling shutdown...
2025-01-21 02:32:16.602 UTC [39] LOG:  aborting any active transactions
2025-01-21 02:32:16.604 UTC [39] LOG:  background worker "logical replication launcher" (PID 54) exited with exit code 1
2025-01-21 02:32:16.605 UTC [49] LOG:  shutting down
107:M 21 Jan 2025 02:32:16.612 # User requested shutdown...
107:M 21 Jan 2025 02:32:16.612 * Saving the final RDB snapshot before exiting.
2025-01-21 02:32:16.634 UTC [39] LOG:  database system is shut down
107:M 21 Jan 2025 02:32:16.667 * DB saved on disk
107:M 21 Jan 2025 02:32:16.667 # Redis is now ready to exit, bye bye...

> FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 837 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Desafíos:

  • No puedo restaurar el sitio desde una copia de seguridad.
  • La reconstrucción falla constantemente, dejando el sitio inoperable.

Solicitud de ayuda:

  1. ¿Cómo puedo abordar estos problemas? ¿La ejecución de rebuild app debió haber creado un plugin erróneo o similar?
  2. ¿Existen pasos de recuperación manuales?
  3. ¿Alguna sugerencia para reconstruir el sitio de forma segura desde este estado?

Me registré para una instancia alojada de Discourse y subí una copia de seguridad, pero la opción de restauración no aparece, aunque el archivo se cargó normalmente.

Agradezco de antemano cualquier consejo o guía sobre cómo proceder. ¡Por favor, hágame saber si se necesitan más detalles!

¿Si quitas el plugin, las reconstrucciones siguen fallando?

Además, ese repositorio no es un plugin. Es el código fuente de Deepseek. Creo que lo que Sam se refería era a hacer un plugin a partir de él.

1 me gusta

Y el paso de recuperación manual es ./launcher start app — si el último contenedor activo no se destruye. Y eliminando ese repositorio de app.yml y reconstruyendo después de eso.

1 me gusta

¿Es lo anterior el fallo? Necesitas incluir la parte anterior que muestra qué migración está fallando.

Supongo que todavía tienes algún plugin roto o un error de formato en tu archivo yml, pero es imposible saberlo con la información que has proporcionado.

Para restaurar una copia de seguridad, tienes que enviar un correo electrónico a team@discourse.org y pedirles que la restauren.

1 me gusta

Elimina esto lo antes posible.

GitHub - deepseek-ai/DeepSeek-LLM: DeepSeek LLM: Let there be answers no es un plugin de Discourse, por lo que nunca debería aparecer en un archivo app.yml.

6 Me gusta

Agradezco a todos y sus comentarios. No puedo explicar cómo se resolvió esto, pero parece que está funcionando. Lo primero que hice cuando me di cuenta de mi error al colocar el repositorio de GitHub que no era un plugin en app.yml y bloquear Discourse fue eliminar esa línea e intentar reconstruir sin éxito. Reinicié el servidor varias veces sin éxito. Reiniciar devolvía el sitio a la operación, pero reconstruir desde el administrador o SSH volvía a bloquearlo. Luego, de repente, ¡BAM! Se reconstruyó desde SSH y luego actualizó los plugins y reconstruyó desde el administrador. Ahora he actualizado Ubuntu y parece que estoy bien. Parece resuelto, pero sigue siendo un misterio. :partying_face:

3 Me gusta