Problemas al actualizar la versión antigua 2.8.5

Resulta que no hemos actualizado Discourse en mucho tiempo. Actualmente estamos en la v2.8.5. Recientemente descubrí que Discourse está mucho más allá de la versión 3.
Me gustaría actualizar a la versión actual, pero por ahora, me gustaría al menos actualizar a la última versión 2.8.x - 2.8.14.
Y aquí hay un gran problema. Cuando reconstruyo, Discourse actualiza la imagen base y obtengo este error:

FAILED
--------------------
Pups::ExecError: grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 ) failed with return #<Process::Status: pid 300 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cmd"=>["cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf", "rm /etc/nginx/sites-enabled/default", "mkdir -p /var/nginx/cache", "grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\"before-server\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\"server\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\"discourse\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "mkdir -p /etc/nginx/conf.d/outlets/before-server", "touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf", "touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf", "mkdir -p /etc/nginx/conf.d/outlets/server", "touch /etc/nginx/conf.d/outlets/server/10-http.conf", "touch /etc/nginx/conf.d/outlets/server/20-https.conf", "touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf", "mkdir -p /etc/nginx/conf.d/outlets/discourse", "touch /etc/nginx/conf.d/outlets/discourse/20-https.conf", "touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf"]}
bootstrap failed with exit code 1
---
HINT: The plugin 'discourse-openid-connect' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-openid-connect' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
---
HINT: The plugin 'discourse-data-explorer' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-data-explorer' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
---
HINT: The plugin 'discourse-staff-notes' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-staff-notes' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
---
HINT: The plugin 'discourse-assign' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-assign' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
---
HINT: The plugin 'discourse-solved' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-solved' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
---
HINT: The plugin 'discourse-cakeday' is now bundled with Discourse and should not be included in your container configuration.
Remove the line 'git clone https://github.com/discourse/discourse-cakeday' from your containers/app.yml file, then try again.
For more information, see https://meta.discourse.org/t/373574
---
** 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.

Los plugins están todos claros: deben comentarse en app.yaml. Pero eso no ayuda; los errores de los plugins desaparecen y el error:

The "discourse" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version

persiste.

Y no puedo hacer nada al respecto. ¿Hay alguna forma de actualizar mi foro a la versión 2.8.14?

Si no es así, y de cara al futuro, ¿cómo puedo actualizar de la versión 2.8.5 a la versión 3.x.x? La situación se complica por el hecho de que utilizo una base de datos externa, PosgreSQL. Según entiendo, debido a las funciones de IA en el nuevo Discourse, requiere una base de datos vectorial, PgVector. ¿Necesito migrar de alguna manera? ¿Hay una guía sobre cómo hacerlo de forma correcta y sin problemas?

¡Agradecería mucho su ayuda!

Intenta actualizar Docker. Eso podría ayudar. Si no funciona, ¿quizás sea esto?

─# docker version
Client: Docker Engine - Community
 Version:           28.1.1
 API version:       1.49
 Go version:        go1.23.8
 Git commit:        4eba377
 Built:             Fri Apr 18 09:52:18 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.1.1
  API version:      1.49 (minimum version 1.24)
  Go version:       go1.23.8
  Git commit:       01f442b
  Built:            Fri Apr 18 09:52:18 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
└─# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.6 LTS
Release:	20.04
Codename:	focal

Eliminé todos los complementos de app.yaml. Esto no ayudó:

FAILED
--------------------
Pups::ExecError: grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The "before-server" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 ) falló con el retorno #<Process::Status: pid 156 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec failed with the params {"cmd"=>["cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf", "rm /etc/nginx/sites-enabled/default", "mkdir -p /var/nginx/cache", "grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\\"before-server\\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\\"server\\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'The \\\"discourse\\\" Nginx outlet is missing. This version of discourse_docker is not compatible with the chosen Discourse version.' ; exit 1 )", "mkdir -p /etc/nginx/conf.d/outlets/before-server", "touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf", "touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf", "mkdir -p /etc/nginx/conf.d/outlets/server", "touch /etc/nginx/conf.d/outlets/server/10-http.conf", "touch /etc/nginx/conf.d/outlets/server/20-https.conf", "touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf", "mkdir -p /etc/nginx/conf.d/outlets/discourse", "touch /etc/nginx/conf.d/outlets/discourse/20-https.conf", "touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf"]}
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.

Por favor, comparta su archivo app.yml, sin contraseñas.

Parece que los plugins no son la causa del fallo de reconstrucción, el problema está aquí.

¿Podrías proporcionar el contexto anterior de los registros? Quizás el error real ocurrió allí.

Este es el registro completo:

└─# ./launcher rebuild app
Se detectó la arquitectura x86_64.
ADVERTENCIA: El archivo containers/app.yml es legible por todos. Puedes asegurar este archivo ejecutando: chmod o-rwx containers/app.yml
Asegurando que el launcher esté actualizado
Obteniendo origen
El launcher está actualizado
Deteniendo el contenedor anterior
+ /usr/bin/docker stop -t 600 app
app
2.0.20251003-1437: Extrayendo desde discourse/base
Digest: sha256:0db7c9b4598e2a1806658391669d791fd779aa4301fdfbed6a7f322bf64e66ab
Estado: La imagen está actualizada para discourse/base:2.0.20251003-1437
docker.io/discourse/base:2.0.20251003-1437
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-11-20T12:57:18.105575 #1]  INFO -- : Leyendo desde stdin
I, [2025-11-20T12:57:18.116863 #1]  INFO -- : Archivo > /etc/service/redis/run  chmod: +x  chown:
I, [2025-11-20T12:57:18.120584 #1]  INFO -- : Archivo > /etc/service/redis/log/run  chmod: +x  chown:
I, [2025-11-20T12:57:18.124261 #1]  INFO -- : Archivo > /etc/runit/3.d/10-redis  chmod: +x  chown:
I, [2025-11-20T12:57:18.124872 #1]  INFO -- : Reemplazando daemonize yes con  en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.126958 #1]  INFO -- : Reemplazando (?-mix:^pidfile.*$) con  en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.127984 #1]  INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2025-11-20T12:57:18.131369 #1]  INFO -- :
I, [2025-11-20T12:57:18.131807 #1]  INFO -- : Reemplazando (?-mix:^logfile.*$) con logfile "" en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.132422 #1]  INFO -- : Reemplazando (?-mix:^bind .*$) con  en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.134285 #1]  INFO -- : Reemplazando (?-mix:^dir .*$) con dir /shared/redis_data en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.135071 #1]  INFO -- : Reemplazando (?-mix:^protected-mode yes) con protected-mode no en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.135730 #1]  INFO -- : Reemplazando # io-threads 4 con io-threads $redis_io_threads en /etc/redis/redis.conf
I, [2025-11-20T12:57:18.136429 #1]  INFO -- : > echo redis instalado
I, [2025-11-20T12:57:18.138350 #1]  INFO -- : redis instalado

I, [2025-11-20T12:57:18.138598 #1]  INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2025-11-20T12:57:18.142582 #1]  INFO -- : logfile ""

I, [2025-11-20T12:57:18.142916 #1]  INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2025-11-20T12:57:18.144125 #1]  INFO -- : > sleep 10
18:C 20 Nov 2025 12:57:18.156 # oO0OoO0OoO0Oo Redis está iniciando oO0OoO0OoO0Oo
18:C 20 Nov 2025 12:57:18.156 # Versión de Redis=7.0.15, bits=64, commit=00000000, modified=0, pid=18, recién iniciado
18:C 20 Nov 2025 12:57:18.156 # Configuración cargada
18:M 20 Nov 2025 12:57:18.157 * reloj monótono: POSIX clock_gettime
18:M 20 Nov 2025 12:57:18.158 * Modo de ejecución=standalone, puerto=6379.
18:M 20 Nov 2025 12:57:18.158 # Servidor inicializado
18:M 20 Nov 2025 12:57:18.158 # ADVERTENCIA ¡El sobrecompromiso de memoria debe estar habilitado! Sin él, un guardado en segundo plano o una replicación pueden fallar bajo condiciones de memoria baja. Si está deshabilitado, también puede causar fallos sin condiciones de memoria baja, consulta https://github.com/jemalloc/jemalloc/issues/1328. Para solucionar este problema, añade 'vm.overcommit_memory = 1' a /etc/sysctl.conf y luego reinicia o ejecuta el comando 'sysctl vm.overcommit_memory=1' para que surta efecto.
18:M 20 Nov 2025 12:57:18.158 * Cargando RDB producido por la versión 7.0.15
18:M 20 Nov 2025 12:57:18.158 * Antigüedad del RDB 2960 segundos
18:M 20 Nov 2025 12:57:18.158 * Uso de memoria del RDB al crearlo 6.02 Mb
18:M 20 Nov 2025 12:57:18.179 * Terminada la carga del RDB, claves cargadas: 4596, claves expiradas: 9.
18:M 20 Nov 2025 12:57:18.179 * BD cargada desde disco: 0.021 segundos
18:M 20 Nov 2025 12:57:18.179 * Listo para aceptar conexiones
I, [2025-11-20T12:57:28.146418 #1]  INFO -- :
I, [2025-11-20T12:57:28.147252 #1]  INFO -- : > thpoff echo "¡thpoff está instalado!"
I, [2025-11-20T12:57:28.151019 #1]  INFO -- : ¡thpoff está instalado!

I, [2025-11-20T12:57:28.151452 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_SMTP_ADDRESS"] == "smtp.example.com"; puts "¡Abortando! ¡El correo no está configurado!"; exit 1; end'
I, [2025-11-20T12:57:28.258766 #1]  INFO -- :
I, [2025-11-20T12:57:28.258920 #1]  INFO -- : > /usr/local/bin/ruby -e 'if ENV["DISCOURSE_HOSTNAME"] == "discourse.example.com"; puts "¡Abortando! ¡El dominio no está configurado!"; exit 1; end'
I, [2025-11-20T12:57:28.359414 #1]  INFO -- :
I, [2025-11-20T12:57:28.359546 #1]  INFO -- : > /usr/local/bin/ruby -e 'if (ENV["DISCOURSE_CDN_URL"] || "")[0..1] == "//"; puts "¡Abortando! El CDN debe especificar un protocolo. Una vez corregido, deberías rehacer tus publicaciones ahora para corregir todas las publicaciones."; exit 1; end'
I, [2025-11-20T12:57:28.465003 #1]  INFO -- :
I, [2025-11-20T12:57:28.465230 #1]  INFO -- : > rm -f /etc/cron.d/anacron
I, [2025-11-20T12:57:28.467452 #1]  INFO -- :
I, [2025-11-20T12:57:28.470130 #1]  INFO -- : Archivo > /etc/cron.d/anacron  chmod:   chown:
I, [2025-11-20T12:57:28.474084 #1]  INFO -- : Archivo > /etc/runit/1.d/copy-env  chmod: +x  chown:
I, [2025-11-20T12:57:28.478139 #1]  INFO -- : Archivo > /etc/service/unicorn/run  chmod: +x  chown:
I, [2025-11-20T12:57:28.482090 #1]  INFO -- : Archivo > /etc/service/nginx/run  chmod: +x  chown:
I, [2025-11-20T12:57:28.486062 #1]  INFO -- : Archivo > /etc/runit/3.d/01-nginx  chmod: +x  chown:
I, [2025-11-20T12:57:28.489878 #1]  INFO -- : Archivo > /etc/runit/3.d/02-unicorn  chmod: +x  chown:
I, [2025-11-20T12:57:28.497775 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git clean -f
I, [2025-11-20T12:57:28.718382 #1]  INFO -- :
I, [2025-11-20T12:57:28.718551 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
  set -o errexit
  git fetch --tags --prune-tags --prune --force origin
  if [[ $(git symbolic-ref --short HEAD) == v2.8.5 ]] ; then
      git pull
  else
      git -c advice.detachedHead=false checkout v2.8.5
  fi
'
Desde https://github.com/discourse/discourse
 - [eliminado]             (ninguno)     -> origin/0-a-cakeday
 - [eliminado]             (ninguno)     -> origin/0-a-rubocop
 - [eliminado]             (ninguno)     -> origin/0-a-unused-services
 - [eliminado]             (ninguno)     -> origin/1-anon-nav
 - [eliminado]             (ninguno)     -> origin/add-auto-track-docs
 - [eliminado]             (ninguno)     -> origin/add-postoutletargs
 - [eliminado]             (ninguno)     -> origin/ai-summary-serializer
 - [eliminado]             (ninguno)     -> origin/ai-translation-configuration-update
 - [eliminado]             (ninguno)     -> origin/d-otp
 - [eliminado]             (ninguno)     -> origin/default-locale-temporarily-close-flag
 - [eliminado]             (ninguno)     -> origin/dependabot/bundler/rubocop-discourse-3.13.0
 - [eliminado]             (ninguno)     -> origin/dependabot/bundler/rubyzip-3.1.1
 - [eliminado]             (ninguno)     -> origin/dependabot/bundler/sass-a19c11c4e9
 - [eliminado]             (ninguno)     -> origin/dependabot/bundler/stripe-16.0.0
 - [eliminado]             (ninguno)     -> origin/dependabot/github_actions/actions/setup-node-5
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/ember-cli-6.7.0
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/embroider-f83e75fa89
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/faker-js/faker-10.0.0
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/glimmer/component-2.0.0
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/lint-ed9b700cc1
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/memfs-4.48.1
 - [eliminado]             (ninguno)     -> origin/dependabot/npm_and_yarn/webpack-5.102.0
 - [eliminado]             (ninguno)     -> origin/dev-merge-login-css
 - [eliminado]             (ninguno)     -> origin/dev/migrate-from-advanced-search-to-welcome-banner
 - [eliminado]             (ninguno)     -> origin/dev/no-more-array-clear
 - [eliminado]             (ninguno)     -> origin/dev/no-more-array-deprecations-post-stream
 - [eliminado]             (ninguno)     -> origin/dev/no-more-array-get-set
 - [eliminado]             (ninguno)     -> origin/dev/no-more-array-square-brackets-property
 - [eliminado]             (ninguno)     -> origin/exact-url-match-in-sidebar
 - [eliminado]             (ninguno)     -> origin/experimental-chat-search
 - [eliminado]             (ninguno)     -> origin/feat-add-ical-format-response-to-post-events-index
 - [eliminado]             (ninguno)     -> origin/feature/bump-wiki-docs-topics-op-edit
 - [eliminado]             (ninguno)     -> origin/feature/edit-theme-owned-palettes
 - [eliminado]             (ninguno)     -> origin/feature/split-categories-and-groups-for-moderators-setting
 - [eliminado]             (ninguno)     -> origin/feature/upcoming-changes-v1
 - [eliminado]             (ninguno)     -> origin/fix/deleted-user-email
 - [eliminado]             (ninguno)     -> origin/fix_debounce_in_d_multi_select
 - [eliminado]             (ninguno)     -> origin/fix_multiple_data_uploads
 - [eliminado]             (ninguno)     -> origin/headless-chrome
 - [eliminado]             (ninguno)     -> origin/issue/handle-worker-load-timeout-failure
 - [eliminado]             (ninguno)     -> origin/likes-dmenu
 - [eliminado]             (ninguno)     -> origin/llm-credit-allocation
 - [eliminado]             (ninguno)     -> origin/log_http_accept_language_header
 - [eliminado]             (ninguno)     -> origin/loic-pitchfork
 - [eliminado]             (ninguno)     -> origin/mt/only-skip-option
 - [eliminado]             (ninguno)     -> origin/mt/site_settings
 - [eliminado]             (ninguno)     -> origin/onebox-in-localized-posts
 - [eliminado]             (ninguno)     -> origin/pento/dev-calculate-flakyness
 - [eliminado]             (ninguno)     -> origin/photoswipe-lightbox
 - [eliminado]             (ninguno)     -> origin/remove-category-badge-recursive
 - [eliminado]             (ninguno)     -> origin/remove-footermessage-legacy-text
 - [eliminado]             (ninguno)     -> origin/simplify-add-remove-pm-user-group
 - [eliminado]             (ninguno)     -> origin/split-login-admin-settings
 - [eliminado]             (ninguno)     -> origin/system-email-fallback
 - [eliminado]             (ninguno)     -> origin/toggle_editor_when_unsupported
 - [eliminado]             (ninguno)     -> origin/topic-voting-ux
 - [eliminado]             (ninguno)     -> origin/type-package
 - [eliminado]             (ninguno)     -> origin/unicode-grant-admin
 - [eliminado]             (ninguno)     -> origin/update_pgvector_080
   5d239c560..51c218e3c  main                    -> origin/main
 * [nueva rama]          0-a-browser-testem      -> origin/0-a-browser-testem
 * [nueva rama]          0-a-card-border         -> origin/0-a-card-border
 * [nueva rama]          0-a-deps-categ          -> origin/0-a-deps-categ
 * [nueva rama]          0-a-floating-ui         -> origin/0-a-floating-ui
 * [nueva rama]          0-a-path                -> origin/0-a-path
   94faf7901..a58678538  a11y-post-heading-scrolling -> origin/a11y-post-heading-scrolling
 * [nueva rama]          adplugin-add-implement-impressions -> origin/adplugin-add-implement-impressions
 * [nueva rama]          ai-prototype/cascade-sheets -> origin/ai-prototype/cascade-sheets
 * [nueva rama]          ai-prototype/reaction-last -> origin/ai-prototype/reaction-last
 * [nueva rama]          anthropic-caching       -> origin/anthropic-caching
 + 5c183e735...ffaa66cd8 async_ember_helpers_patch -> origin/async_ember_helpers_patch  (actualización forzada)
 * [nueva rama]          better-email-subject-lines -> origin/better-email-subject-lines
 * [nueva rama]          block-network-system    -> origin/block-network-system
 * [nueva rama]          blocks-system           -> origin/blocks-system
 * [nueva rama]          br/upload               -> origin/br/upload
 * [nueva rama]          browse-latest-topics-in-new-new-sub-tabs -> origin/browse-latest-topics-in-new-new-sub-tabs
 * [nueva rama]          btn-mixin-border-radius -> origin/btn-mixin-border-radius
 * [nueva rama]          cal-fix                 -> origin/cal-fix
 * [nueva rama]          calendar-fix            -> origin/calendar-fix
 * [nueva rama]          capybara_browser_checkts_control -> origin/capybara_browser_checkts_control
 * [nueva rama]          capybara_browser_checkts_experiment -> origin/capybara_browser_checkts_experiment
 * [nueva rama]          chat-banner-content     -> origin/chat-banner-content
 * [nueva rama]          composer-ios-hack       -> origin/composer-ios-hack
 * [nueva rama]          configure_pg_statement_timeout_for_unicorn_processes -> origin/configure_pg_statement_timeout_for_unicorn_processes
 * [nueva rama]          couple-sm-tweaks        -> origin/couple-sm-tweaks
 * [nueva rama]          custom_field            -> origin/custom_field
 * [nueva rama]          d-button-signature      -> origin/d-button-signature
 * [nueva rama]          d-menu-close-animation  -> origin/d-menu-close-animation
 * [nueva rama]          d-otp-followups         -> origin/d-otp-followups
 * [nueva rama]          dependabot/bundler/crack-1.0.1 -> origin/dependabot/bundler/crack-1.0.1
 * [nueva rama]          dependabot/bundler/excon-1.3.1 -> origin/dependabot/bundler/excon-1.3.1
 * [nueva rama]          dependabot/bundler/mail-2.9.0 -> origin/dependabot/bundler/mail-2.9.0
 * [nueva rama]          dependabot/bundler/rubyzip-3.2.2 -> origin/dependabot/bundler/rubyzip-3.2.2
 * [nueva rama]          dependabot/bundler/sass-95568ee139 -> origin/dependabot/bundler/sass-95568ee139
 * [nueva rama]          dependabot/bundler/stripe-18.0.0 -> origin/dependabot/bundler/stripe-18.0.0
 * [nueva rama]          dependabot/bundler/webmock-3.26.1 -> origin/dependabot/bundler/webmock-3.26.1
 * [nueva rama]          dependabot/bundler/zendesk_api-4.0.0.pre.1 -> origin/dependabot/bundler/zendesk_api-4.0.0.pre.1
 * [nueva rama]          dependabot/github_actions/actions/setup-node-6 -> origin/dependabot/github_actions/actions/setup-node-6
 * [nueva rama]          dependabot/npm_and_yarn/chart.js-4.5.1 -> origin/dependabot/npm_and_yarn/chart.js-4.5.1
 * [nueva rama]          dependabot/npm_and_yarn/embroider-b89ca3ee63 -> origin/dependabot/npm_and_yarn/embroider-b89ca3ee63
 * [nueva rama]          dependabot/npm_and_yarn/esbuild-0.27.0 -> origin/dependabot/npm_and_yarn/esbuild-0.27.0
 + c3027deb3...27fb7bbf0 dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.1.0 -> origin/dependabot/npm_and_yarn/fortawesome/fontawesome-free-7.1.0  (actualización forzada)
 * [nueva rama]          dependabot/npm_and_yarn/glob-13.0.0 -> origin/dependabot/npm_and_yarn/glob-13.0.0
 + 6b0686c06...c917fbfa3 dependabot/npm_and_yarn/jsuites-5.13.4 -> origin/dependabot/npm_and_yarn/jsuites-5.13.4  (actualización forzada)
 * [nueva rama]          dependabot/npm_and_yarn/memfs-4.51.0 -> origin/dependabot/npm_and_yarn/memfs-4.51.0
 * [nueva rama]          dependabot/npm_and_yarn/morphlex-1.0.4 -> origin/dependabot/npm_and_yarn/morphlex-1.0.4
 * [nueva rama]          dependabot/npm_and_yarn/types-546d678181 -> origin/dependabot/npm_and_yarn/types-546d678181
 + 39ab10317...9a5504f09 dependabot/npm_and_yarn/uppy-573db43783 -> origin/dependabot/npm_and_yarn/uppy-573db43783  (actualización forzada)
 * [nueva rama]          dev-add-autocomplete-results-signature-type -> origin/dev-add-autocomplete-results-signature-type
 * [nueva rama]          dev-allow-right-left-placements-for-autocomplete-menu -> origin/dev-allow-right-left-placements-for-autocomplete-menu
 * [nueva rama]          dev-azure-json-object   -> origin/dev-azure-json-object
 * [nueva rama]          dev-refactor-d-autocomplete -> origin/dev-refactor-d-autocomplete
 * [nueva rama]          dev-replace-hashtag-autocomplete-templates-with-components -> origin/dev-replace-hashtag-autocomplete-templates-with-components
   9d33c2629..6d7e3ce9f  dev/add-no-category-composer-site-setting -> origin/dev/add-no-category-composer-site-setting
 * [nueva rama]          dev/deprecate-nil-in-site-settings -> origin/dev/deprecate-nil-in-site-settings
 * [nueva rama]          dev/git-ignore-mise-local-conf -> origin/dev/git-ignore-mise-local-conf
 * [nueva rama]          dev/messagebus-response-headers -> origin/dev/messagebus-response-headers
 * [nueva rama]          dev/mt/discourse-category-moderation-groups -> origin/dev/mt/discourse-category-moderation-groups
 * [nueva rama]          dev/no-more-array-ember-methods -> origin/dev/no-more-array-ember-methods
 * [nueva rama]          dev/no-more-array-pushObject -> origin/dev/no-more-array-pushObject
 * [nueva rama]          dev/problem-check-cleanups-part-2 -> origin/dev/problem-check-cleanups-part-2
 + 6e00e4b6d...8898de768 dev/purge-widgets       -> origin/dev/purge-widgets  (actualización forzada)
 * [nueva rama]          dev/remove-widgets-code -> origin/dev/remove-widgets-code
 + 50c30c39f...0d2c402dc dev/user-actions-reviewable-logging -> origin/dev/user-actions-reviewable-logging  (actualización forzada)
 * [nueva rama]          disable-autofocus-otp-ios -> origin/disable-autofocus-otp-ios
 * [nueva rama]          discourse-id-error-logging -> origin/discourse-id-error-logging
 * [nueva rama]          discourse-id-update-support -> origin/discourse-id-update-support
 * [nueva rama]          dont_joins_categories_unnecessarily -> origin/dont_joins_categories_unnecessarily
 * [nueva rama]          dont_override_category_model -> origin/dont_override_category_model
 * [nueva rama]          easy-link-to-own-profile-from-user-card -> origin/easy-link-to-own-profile-from-user-card
 * [nueva rama]          ember_settled_check     -> origin/ember_settled_check
 + 64e725e17...030f51cfe ember_settled_experimental -> origin/ember_settled_experimental  (actualización forzada)
 * [nueva rama]          feature/add-uploads-to-type-objects -> origin/feature/add-uploads-to-type-objects
 + c84648556...6fd7acf52 feature/assuming-iam-role-s3-pt2 -> origin/feature/assuming-iam-role-s3-pt2  (actualización forzada)
   d3ae413fd..560d9e5f4  feature/chat-channel-sidebar-menu -> origin/feature/chat-channel-sidebar-menu
 * [nueva rama]          feature/copy-as-markdown -> origin/feature/copy-as-markdown
 * [nueva rama]          feature/github-mute-category-linkback -> origin/feature/github-mute-category-linkback
 * [nueva rama]          feature/requisite-site-settings -> origin/feature/requisite-site-settings
 * [nueva rama]          feature/upcoming-change-group-simplify -> origin/feature/upcoming-change-group-simplify
 * [nueva rama]          filter-uploads          -> origin/filter-uploads
 * [nueva rama]          fix-credit-allocation-resets -> origin/fix-credit-allocation-resets
 * [nueva rama]          fix-credit-error-popups -> origin/fix-credit-error-popups
 * [nueva rama]          fix-emoji-autocomplete-trigger-even-after-whitespace-in-term -> origin/fix-emoji-autocomplete-trigger-even-after-whitespace-in-term
 * [nueva rama]          fix-selector            -> origin/fix-selector
 * [nueva rama]          fix-translation-missing-in-email-templates -> origin/fix-translation-missing-in-email-templates
 * [nueva rama]          fix/ai-llm-status-check -> origin/fix/ai-llm-status-check
 * [nueva rama]          fix/calendar-missing-starts-at -> origin/fix/calendar-missing-starts-at
 * [nueva rama]          fix/deleted-posts-list-rendering -> origin/fix/deleted-posts-list-rendering
 * [nueva rama]          fix/notify-chat-user-non-channel-member -> origin/fix/notify-chat-user-non-channel-member
 + 9e18befeb...2f019fb59 form-kit-2-0            -> origin/form-kit-2-0  (actualización forzada)
 + 01dabbed3...2d3a082cd horizon_as_default_for_new_sites -> origin/horizon_as_default_for_new_sites  (actualización forzada)
 * [nueva rama]          image_grid_on_rte       -> origin/image_grid_on_rte
 * [nueva rama]          issue/draft-save-no-change -> origin/issue/draft-save-no-change
 * [nueva rama]          issue/fix-placeholder-rte-non-image-upload -> origin/issue/fix-placeholder-rte-non-image-upload
 * [nueva rama]          issue/quote-isolating   -> origin/issue/quote-isolating
 * [nueva rama]          jordan-feature          -> origin/jordan-feature
 + 40d18be01...99c6a3d14 keep-img-tag-implementation-for-excerpt-parser -> origin/keep-img-tag-implementation-for-excerpt-parser  (actualización forzada)
   04ed87792..51c218e3c  latest                  -> origin/latest
 * [nueva rama]          likes-dmenu-mylikes     -> origin/likes-dmenu-mylikes
 * [nueva rama]          limit-post-voting       -> origin/limit-post-voting
 * [nueva rama]          linkbacks               -> origin/linkbacks
 * [nueva rama]          loc-title-edit          -> origin/loc-title-edit
 * [nueva rama]          localized-pg-headline   -> origin/localized-pg-headline
 * [nueva rama]          localized-search-data   -> origin/localized-search-data
 * [nueva rama]          log-max-sql-duration    -> origin/log-max-sql-duration
 + bd7c66753...b6a1847be loic-server-modifiers-types -> origin/loic-server-modifiers-types  (actualización forzada)
 * [nueva rama]          loic/pagy               -> origin/loic/pagy
 * [nueva rama]          martin-brennan-patch-1  -> origin/martin-brennan-patch-1
 + e6bdecf7f...6f0670964 member-xp-1             -> origin/member-xp-1  (actualización forzada)
 * [nueva rama]          modal-animation         -> origin/modal-animation
 + 483d30315...c1aa1fc97 mt/user_options         -> origin/mt/user_options  (actualización forzada)
 * [nueva rama]          multipart-upload-fix    -> origin/multipart-upload-fix
   b38084846..3abbe3301  nat1-merge-branch       -> origin/nat1-merge-branch
 * [nueva rama]          no-silent-failure-invalid-regex-watched-words -> origin/no-silent-failure-invalid-regex-watched-words
 * [nueva rama]          one-step-wizard         -> origin/one-step-wizard
 * [nueva rama]          outlet-suspension-silenced -> origin/outlet-suspension-silenced
   3e69277e2..94af89fcf  peek-mode-v2            -> origin/peek-mode-v2
 * [nueva rama]          prevent-model-fails     -> origin/prevent-model-fails
 * [nueva rama]          problem-check-credit    -> origin/problem-check-credit
 * [nueva rama]          prototype-avatars       -> origin/prototype-avatars
 * [nueva rama]          qunit-binding           -> origin/qunit-binding
 * [nueva rama]          quote-button            -> origin/quote-button
 * [nueva rama]          quote-lightbox          -> origin/quote-lightbox
   99695c6c0..e9fb01e59  refactor-subgrid        -> origin/refactor-subgrid
 * [nueva rama]          release-infrastructure  -> origin/release-infrastructure
 * [nueva rama]          repo-refactor           -> origin/repo-refactor
 * [nueva rama]          revert                  -> origin/revert
 + 8a8148488...503758d99 rollup-plugin-experiment -> origin/rollup-plugin-experiment  (actualización forzada)
 * [nueva rama]          rspec-color             -> origin/rspec-color
 + e8ccaeb1c...a3eccc73d sandbox/ai-team         -> origin/sandbox/ai-team  (actualización forzada)
 + 1ef463255...007db3bd1 sandbox/dev-xp-1        -> origin/sandbox/dev-xp-1  (actualización forzada)
   a925474ed..86f5bb772  sandbox/dev-xp-2        -> origin/sandbox/dev-xp-2
 + 3e69277e2...46a3d9ca5 sandbox/member-xp-1     -> origin/sandbox/member-xp-1  (actualización forzada)
 + 1effbe0cc...915e24a0a sandbox/member-xp-2     -> origin/sandbox/member-xp-2  (actualización forzada)
 + 170018e94...03b301782 sandbox/member-xp-3     -> origin/sandbox/member-xp-3  (actualización forzada)
 + bfb813d85...883862176 sandbox/member-xp-4     -> origin/sandbox/member-xp-4  (actualización forzada)
 + 4c42dfdae...ce93f2ec6 sandbox/staff-xp-1      -> origin/sandbox/staff-xp-1  (actualización forzada)
 * [nueva rama]          screened-ip             -> origin/screened-ip
 * [nueva rama]          scripted_llm_tests      -> origin/scripted_llm_tests
 * [nueva rama]          search-localized        -> origin/search-localized
 * [nueva rama]          shared-edits            -> origin/shared-edits
 * [nueva rama]          show-topic-loading      -> origin/show-topic-loading
   beaacf9e0..47399adbd  stable                  -> origin/stable
 * [nueva rama]          test-runner-exp         -> origin/test-runner-exp
   04ed87792..51c218e3c  tests-passed            -> origin/tests-passed
 * [nueva rama]          tobiaseigen-patch-5     -> origin/tobiaseigen-patch-5
 * [nueva rama]          translation-retry-quota-rewrite -> origin/translation-retry-quota-rewrite
 * [nueva rama]          translations-from-crowdin-main -> origin/translations-from-crowdin-main
 * [nueva rama]          translations-from-crowdin-stable -> origin/translations-from-crowdin-stable
 * [nueva rama]          upgrade_rubocop_discourse -> origin/upgrade_rubocop_discourse
 * [nueva rama]          use-transcoded          -> origin/use-transcoded
 * [nueva rama]          use_pm_on_to_markdown   -> origin/use_pm_on_to_markdown
 * [nueva rama]          ux-ai-bot-sidebar-link  -> origin/ux-ai-bot-sidebar-link
 * [nueva rama]          ux-claimable-reivew-filter -> origin/ux-claimable-reivew-filter
 * [nueva rama]          ux-composer-mode-placeholder -> origin/ux-composer-mode-placeholder
 * [nueva rama]          ux-policy-button-width  -> origin/ux-policy-button-width
 * [nueva rama]          ux-sign-up-button-position -> origin/ux-sign-up-button-position
 * [nueva rama]          version-bump/main       -> origin/version-bump/main
 * [nueva rama]          version_bump/stable     -> origin/version_bump/stable
   c5bca775f..8d7db37c2  vite-squashed-rebased   -> origin/vite-squashed-rebased
 * [nueva rama]          white_space_paragraph_parsing -> origin/white_space_paragraph_parsing
 * [nueva rama]          x-amz-tagging           -> origin/x-amz-tagging
 t [actualización de etiqueta]          beta                    -> beta
 t [actualización de etiqueta]          latest-release          -> latest-release
 * [nueva etiqueta]             v3.5.2                  -> v3.5.2
 * [nueva etiqueta]             v3.6.0.beta2            -> v3.6.0.beta2
HEAD está ahora en 61cf79192 Incremento de versión a v2.8.5 (#17187)
I, [2025-11-20T12:58:10.975801 #1]  INFO -- :
I, [2025-11-20T12:58:10.976348 #1]  INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse git config user.discourse-version v2.8.5
I, [2025-11-20T12:58:10.990092 #1]  INFO -- :
I, [2025-11-20T12:58:10.990310 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-11-20T12:58:10.993582 #1]  INFO -- :
I, [2025-11-20T12:58:10.993719 #1]  INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-11-20T12:58:10.996441 #1]  INFO -- :
I, [2025-11-20T12:58:10.996632 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-11-20T12:58:10.999355 #1]  INFO -- :
I, [2025-11-20T12:58:10.999470 #1]  INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-11-20T12:58:11.002136 #1]  INFO -- :
I, [2025-11-20T12:58:11.002293 #1]  INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-11-20T12:58:11.004947 #1]  INFO -- :
I, [2025-11-20T12:58:11.005072 #1]  INFO -- : > cd /var/www/discourse && mkdir -p                    /shared/log/rails
I, [2025-11-20T12:58:11.007844 #1]  INFO -- :
I, [2025-11-20T12:58:11.007985 #1]  INFO -- : > cd /var/www/discourse && bash -c "touch -a           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-11-20T12:58:11.012438 #1]  INFO -- :
I, [2025-11-20T12:58:11.012548 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-11-20T12:58:11.016830 #1]  INFO -- :
I, [2025-11-20T12:58:11.016924 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/{uploads,backups}"
I, [2025-11-20T12:58:11.021076 #1]  INFO -- :
I, [2025-11-20T12:58:11.021204 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-11-20T12:58:11.025467 #1]  INFO -- :
I, [2025-11-20T12:58:11.025569 #1]  INFO -- : > cd /var/www/discourse && bash -c "mkdir -p           /shared/tmp/{backups,restores}"
I, [2025-11-20T12:58:11.029778 #1]  INFO -- :
I, [2025-11-20T12:58:11.029884 #1]  INFO -- : > cd /var/www/discourse && bash -c "ln    -s           /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-11-20T12:58:11.034102 #1]  INFO -- :
I, [2025-11-20T12:58:11.034224 #1]  INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-11-20T12:58:11.069336 #1]  INFO -- :
I, [2025-11-20T12:58:11.069510 #1]  INFO -- : > cd /var/www/discourse && [ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-11-20T12:58:11.071978 #1]  INFO -- :
I, [2025-11-20T12:58:11.072492 #1]  INFO -- : Reemplazando # redis con sv start redis || exit 1 en /etc/service/unicorn/run
I, [2025-11-20T12:58:11.073877 #1]  INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-11-20T12:58:11.076755 #1]  INFO -- :
I, [2025-11-20T12:58:11.077000 #1]  INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-11-20T12:58:11.079147 #1]  INFO -- :
I, [2025-11-20T12:58:11.079295 #1]  INFO -- : > mkdir -p /var/nginx/cache
I, [2025-11-20T12:58:11.081261 #1]  INFO -- :
I, [2025-11-20T12:58:11.081491 #1]  INFO -- : > grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'Falta el outlet de Nginx "before-server". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.' ; exit 1 )
Falta el outlet de Nginx "before-server". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.
I, [2025-11-20T12:58:11.085029 #1]  INFO -- :
I, [2025-11-20T12:58:11.086820 #1]  INFO -- : Terminando procesos asíncronos
I, [2025-11-20T12:58:11.086912 #1]  INFO -- : Enviando TERM a exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 18
18:signal-handler (1763643491) Recibido SIGTERM programando apagado...
18:M 20 Nov 2025 12:58:11.133 # Usuario solicitó apagado...
18:M 20 Nov 2025 12:58:11.133 * Guardando la instantánea RDB final antes de salir.
18:M 20 Nov 2025 12:58:11.178 * BD guardada en disco
18:M 20 Nov 2025 12:58:11.178 # Redis está listo para salir, adiós...


FALLIDO
--------------------
Pups::ExecError: grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'Falta el outlet de Nginx "before-server". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.' ; exit 1 ) falló con retorno #<Process::Status: pid 156 exit 1>
Ubicación del fallo: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
exec falló con los parámetros {"cmd"=>["cp $home/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf", "rm /etc/nginx/sites-enabled/default", "mkdir -p /var/nginx/cache", "grep -q 'outlets/before-server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'Falta el outlet de Nginx \"before-server\". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.' ; exit 1 )", "grep -q 'outlets/server' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'Falta el outlet de Nginx \"server\". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.' ; exit 1 )", "grep -q 'outlets/discourse' /etc/nginx/conf.d/discourse.conf || ( >&2 echo 'Falta el outlet de Nginx \"discourse\". Esta versión de discourse_docker no es compatible con la versión de Discourse elegida.' ; exit 1 )", "mkdir -p /etc/nginx/conf.d/outlets/before-server", "touch /etc/nginx/conf.d/outlets/before-server/20-redirect-http-to-https.conf", "touch /etc/nginx/conf.d/outlets/before-server/30-ratelimited.conf", "mkdir -p /etc/nginx/conf.d/outlets/server", "touch /etc/nginx/conf.d/outlets/server/10-http.conf", "touch /etc/nginx/conf.d/outlets/server/20-https.conf", "touch /etc/nginx/conf.d/outlets/server/30-offline-page.conf", "mkdir -p /etc/nginx/conf.d/outlets/discourse", "touch /etc/nginx/conf.d/outlets/discourse/20-https.conf", "touch /etc/nginx/conf.d/outlets/discourse/30-ratelimited.conf"]}
La inicialización falló con código de salida 1
** FALLÓ LA INICIALIZACIÓN ** desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
66c43294171cf7dc0616baf53fdaf32130c9e09951dddbe01312c565deeb85db

Es muy probable que tu sistema operativo también esté desactualizado. Lo más fácil y seguro es migrar a una nueva máquina virtual con un sistema operativo y Docker actualizados.

[quote=“Falco, post:5, topic:389201”]Por favor, comparte tu archivo app.yml, sin contraseñas.

[/quote]

Aquí está el app.yml original. Lo ofusqué un poco. Tiene todos los complementos. Para probar, los eliminé todos, pero la reconstrucción todavía produce un error.

app.yml (4.9 KB)

Ubuntu 20.04 todavía está bien y tiene todos los paquetes más recientes.
Docker Engine 28.1.1 también está bastante actualizado.

¿Y por qué migrar a otra VM si puedo actualizar esta in situ?

Consulta mi cita anterior de los registros.

Porque la actualización de postgres puede ser problemática y la instalación en una VM nueva asegura que no termines con un foro roto.

Pero espera. ¿Tienes esta línea en tu app.yml? Eso no va a funcionar porque el contenedor docker actual no funcionará con una versión de Discourse tan antigua. Necesitas actualizar a la última versión, o al menos a la última versión soportada.

version: v2.8.10 ## CAMBIADO DE stable (v2.8.5) A v2.8.10 PARA LA ACTUALIZACIÓN

Además, Discourse ya no funciona sin https, por lo que debes descomentar las plantillas ssl y letsencrypt. Y algunas otras cosas también han cambiado. Recomendaría hacer una reinstalación completa con discourse-setup para obtener también un app.yml actualizado.

PostgreSQL se instala por separado en Docker, y actualizarlo no es un problema.

¿Es esto absolutamente necesario? No quiero actualizar a la versión 3.x.x todavía; todas las funciones de IA en ella requieren migrar de PostgreSQL a PgVector. Realmente no necesitamos IA en el foro, y no estoy familiarizado con PgVector en absoluto, así que no sé cómo migrar así. Por lo tanto, por ahora, preferiría quedarme en la versión 2.8.x más reciente, 2.8.14, si es posible.
Si eso no es posible, entonces por supuesto tendré que migrar. En mi primer mensaje, pregunté si había una guía para tal migración.

Pero no quiero usar el HTTPS y letsencrypt de Discourse. Mi foro está detrás de Nginx, que está configurado de acuerdo con nuestras reglas perimetrales. Me gustaría mantener esta configuración.

¡Muchas gracias por tu ayuda! Espero tus comentarios.

He señalado varias. Me temo que ninguna se aplica a su configuración. Tendrá que actualizar postgres. Tendrá que instalar pgvector.

Luego será un poco más complicado de lo que describí ya que está bastante lejos de una instalación estándar.

Si tiene presupuesto, puede preguntar en Marketplace o contactarme directamente.

La versión más reciente es Discourse 3.6.0.beta3-latest. Si bien nada es imposible, si desea permanecer en 2.8.x, es mejor que no haga nada. No es compatible y tiene graves problemas de seguridad.

Estás utilizando una versión no soportada, elimina la cláusula version en el archivo app.yml para actualizar a la versión actual.

@nahimov ¿pudiste actualizar tu sitio antiguo y no compatible? Te sugiero que sigas este consejo:

@pfaffman @Falco @tobiaseigen ¡Hola!

Vale, vale )) Actualicé de 2.8.5 a 3.5.2. Incluso pude migrar a pg_vector sin ningún problema. ))

Pero abrí el foro actualizado y me quedé confundido. Así es como se veía el foro antiguo en 2.8.5: hay un menú superior y los botones de Iniciar sesión/Cerrar sesión:

SCR-20251215-tzns

Y así es como se ve el foro actualizado: solo hay un menú lateral, sin los botones de Iniciar sesión/Cerrar sesión:

SCR-20251215-ualv

SCR-20251215-uaou

Y aunque pude iniciar sesión en el foro usando la URL /login, no pude cerrar sesión…
¿Podrían decirme cómo recuperar el menú superior y los botones de Iniciar sesión/Cerrar sesión? No pude encontrarlos en la configuración.

¡Me alegra que hayas descubierto cómo actualizar tu sitio!

Puedes cerrar la sesión seleccionando tu avatar en la esquina superior derecha y luego el último elemento en la parte inferior del menú lateral derecho. ¡Ese cambio se introdujo hace varios años ya!

Por favor, no menciones a los miembros por su nombre (@mention) cuando hagas preguntas generales como esta. No somos los únicos que podemos responder a este tipo de preguntas y genera mucho ruido adicional para aquellos a quienes mencionas.

[quote=“tobiaseigen, post:17, topic:389201”]Por favor, no mencione a los miembros por su nombre cuando haga preguntas generales como esta. No somos los únicos que podemos responder a este tipo de preguntas y genera mucho ruido adicional para aquellos a quienes menciona.

[/quote]

Lo siento, no lo volveré a hacer.

[quote=“tobiaseigen, post:17, topic:389201”]Puede cerrar la sesión seleccionando su avatar en la esquina superior derecha y luego en el último elemento en la parte inferior del menú lateral derecho. ¡Ese cambio se introdujo hace varios años!

[/quote]

Sí. Pero no veo el menú en la esquina superior derecha. Por mis capturas de pantalla, está claro que está en la versión antigua del foro, pero no en la actualizada. No capturé la versión completa del foro antiguo. Aquí está la captura de pantalla corregida.

¿Podría ser que nuestro banner personalizado, que funcionaba perfectamente en la versión antigua, esté bloqueando este menú en la nueva versión? ¿Y cómo se puede solucionar esto sin quitar el banner?

SCR-20251215-ufvf

En esa captura de pantalla no has iniciado sesión en Discourse.

Es la versión antigua: 2.8.5

No veo este menú en la nueva versión. ¿Puede estar cubierto por nuestro banner superior personalizado?