Upgrade ist spektakulär fehlgeschlagen

I have updated my several times over the years and mostly without issue. I got a message that my discourse needed to be updated. Initially i tried to use the web update but it said I needed to login and run ./launcher app rebuild. Which I did.

Below is the failure which appears to be related to the postgres upgrade. I searched the forum and see that there seems to be special instructions to upgrade postgres but not knowing that this was part of this update I did not follow them,. After the failure I tried to follow the steps but those fail as well.

this is the ouotput of the failed update:

wordsmith@digitalwind-ubuntu-20:/var/discourse$ sudo ./launcher rebuild app
[sudo] password for wordsmith:
Sorry, try again.
[sudo] password for wordsmith:
Sorry, try again.
[sudo] password for wordsmith:
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
remote: Enumerating objects: 765, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (67/67), done.
remote: Total 765 (delta 252), reused 244 (delta 226), pack-reused 466 (from 4)
Receiving objects: 100% (765/765), 292.42 KiB | 9.75 MiB/s, done.
Resolving deltas: 100% (430/430), completed with 44 local objects.
From https://github.com/discourse/discourse_docker
   ffa8264..efd6bc8  main                               -> origin/main
 * [new branch]      consolidate_layers                 -> origin/consolidate_layers
 * [new branch]      dev-nginx-conf                     -> origin/dev-nginx-conf
 * [new branch]      docker-compose-generate            -> origin/docker-compose-generate
 * [new branch]      gh-action-upload-to-release        -> origin/gh-action-upload-to-release
 * [new branch]      nginx-conf-updates                 -> origin/nginx-conf-updates
 * [new branch]      parameterize-config-filename       -> origin/parameterize-config-filename
 * [new branch]      pento/dev-test-pnpm-10             -> origin/pento/dev-test-pnpm-10
 * [new branch]      revert_only_shipping_en_us_locales -> origin/revert_only_shipping_en_us_locales
 * [new branch]      slim-image-3                       -> origin/slim-image-3
 * [new branch]      update-build-compile-steps         -> origin/update-build-compile-steps
 * [new branch]      update-launcher                    -> origin/update-launcher
 * [new branch]      update_tag                         -> origin/update_tag
Updating Launcher...
Updating ffa8264..efd6bc8
Fast-forward
 .github/workflows/build.yml                   | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
 .gitignore                                    |   2 +
 discourse-setup                               |  23 ++++++----
 image/README.md                               |  12 +----
 image/auto_build.rb                           | 103 +++++++++++++++++++++++++++++++++---------
 image/base/Dockerfile                         | 178 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 image/base/install-imagemagick                |  26 +++++------
 image/base/install-jemalloc                   |   6 +--
 image/base/install-nginx                      |  13 +++---
 image/base/install-oxipng                     |  35 ++++++++-------
 image/base/install-redis                      |   4 +-
 image/base/install-ruby                       |  16 -------
 image/base/install-rust                       |   2 +-
 image/base/nginx_public_keys.key              | 374 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 image/base/release.Dockerfile                 |  16 -------
 image/base/slim.Dockerfile                    | 128 ----------------------------------------------------
 image/discourse_bench/Dockerfile              |  34 --------------
 image/discourse_bench/run_bench.sh            |  19 --------
 image/discourse_dev/Dockerfile                |  38 ++++++++++++++--
 image/discourse_dev/postgres_dev.template.yml |  41 +++--------------
 image/discourse_fast_switch/Dockerfile        |  23 ----------
 image/discourse_fast_switch/create_switch.rb  |  24 ----------
 image/discourse_test/Dockerfile               |  10 ++---
 image/discourse_test/install-chrome           |   2 +-
 image/monitor/Dockerfile                      |  13 ------
 image/monitor/src/monitor.rb                  |  98 ----------------------------------------
 launcher                                      |   6 +--
 scripts/launcher-completion.bash              |  44 ++++++++++++++++++
 templates/import/mbox.template.yml            |   2 +-
 templates/import/mssql-dep.template.yml       |   2 +-
 templates/import/mysql-dep.template.yml       |   2 +-
 templates/import/phpbb3.template.yml          |   2 +-
 templates/import/vanilla.template.yml         |  30 +++++++------
 templates/postgres.10.template.yml            |   3 +-
 templates/postgres.12.template.yml            |   3 +-
 templates/postgres.13.template.yml            | 175 +++++++++++++++++++++++++++--------------------------------------------
 templates/postgres.15.template.yml            |  62 ++++++++++++++------------
 templates/postgres.9.5.template.yml           |   3 +-
 templates/postgres.template.yml               | 105 ++++++++++++++++++++++++++-----------------
 templates/redis.template.yml                  |   6 ++-
 templates/web.china.template.yml              |   3 +-
 templates/web.socketed.template.yml           |   4 +-
 templates/web.ssl.template.yml                |  32 ++++++-------
 templates/web.template.yml                    |  23 +++++-----
 44 files changed, 1186 insertions(+), 818 deletions(-)
 create mode 100644 image/base/Dockerfile
 delete mode 100755 image/base/install-ruby
 create mode 100644 image/base/nginx_public_keys.key
 delete mode 100644 image/base/release.Dockerfile
 delete mode 100644 image/base/slim.Dockerfile
 delete mode 100644 image/discourse_bench/Dockerfile
 delete mode 100644 image/discourse_bench/run_bench.sh
 delete mode 100644 image/discourse_fast_switch/Dockerfile
 delete mode 100644 image/discourse_fast_switch/create_switch.rb
 delete mode 100644 image/monitor/Dockerfile
 delete mode 100644 image/monitor/src/monitor.rb
 create mode 100644 scripts/launcher-completion.bash
Launcher updated, restarting...
WARNING: Docker version 20.10.7 deprecated, recommend upgrade to 24.0.7 or newer.
x86_64 arch detected.

WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed

Please be patient

2.0.20250129-0720: Pulling from discourse/base
af302e5c37e9: Pull complete
ed49ab5c933d: Pull complete
7cb9e730d898: Pull complete
7c28a6b187b2: Pull complete
23222af7238f: Pull complete
59b87d9ed5c1: Pull complete
90d60b432298: Pull complete
d3b3135aa82b: Pull complete
94e7b594395d: Pull complete
cf15e2c89d00: Pull complete
2c0cccf9ec27: Pull complete
5d8ea2a8d564: Pull complete
020f04b42275: Pull complete
06e22604f387: Pull complete
8b0ecc579aad: Pull complete
4d577f7424c0: Pull complete
37ef4781925f: Pull complete
30d67d1af761: Pull complete
43eaf8c26af4: Pull complete
02f4cc50eabd: Pull complete
93896ee36e56: Pull complete
fadd5d615e0e: Pull complete
85f9459cb30e: Pull complete
eaddca2afacb: Pull complete
f54443d29a2d: Pull complete
ed6f0f133683: Pull complete
3d1894dc563f: Pull complete
51ca3f63c909: Pull complete
b87374db2274: Pull complete
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Downloaded newer image for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
Ensuring launcher is up to date
Fetching origin
Launcher is up-to-date
Stopping old container
+ /usr/bin/docker stop -t 600 app
app
2.0.20250129-0720: Pulling from discourse/base
Digest: sha256:01b8516e5504c0e9bc3707773015ff4407be03a89154194ff3b5b8699291bc26
Status: Image is up to date for discourse/base:2.0.20250129-0720
docker.io/discourse/base:2.0.20250129-0720
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2025-02-06T00:07:56.208669 #1]  INFO -- : Reading from stdin
I, [2025-02-06T00:07:56.232158 #1]  INFO -- : File > /etc/service/postgres/run  chmod: +x  chown:
I, [2025-02-06T00:07:56.237056 #1]  INFO -- : File > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2025-02-06T00:07:56.242252 #1]  INFO -- : File > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2025-02-06T00:07:56.246861 #1]  INFO -- : File > /root/install_postgres  chmod: +x  chown:
I, [2025-02-06T00:07:56.251666 #1]  INFO -- : File > /root/upgrade_postgres  chmod: +x  chown:
I, [2025-02-06T00:07:56.253133 #1]  INFO -- : Replacing data_directory = '/var/lib/postgresql/15/main' with data_directory = '/shared/postgres_data' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.254477 #1]  INFO -- : Replacing (?-mix:#?listen_addresses *=.*) with listen_addresses = '*' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.255380 #1]  INFO -- : Replacing (?-mix:#?synchronous_commit *=.*) with synchronous_commit = $db_synchronous_commit in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.256084 #1]  INFO -- : Replacing (?-mix:#?shared_buffers *=.*) with shared_buffers = $db_shared_buffers in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.256905 #1]  INFO -- : Replacing (?-mix:#?work_mem *=.*) with work_mem = $db_work_mem in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.257717 #1]  INFO -- : Replacing (?-mix:#?default_text_search_config *=.*) with default_text_search_config = '$db_default_text_search_config' in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.258521 #1]  INFO -- : Replacing (?-mix:#?checkpoint_segments *=.*) with checkpoint_segments = $db_checkpoint_segments in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.259186 #1]  INFO -- : Replacing (?-mix:#?logging_collector *=.*) with logging_collector = $db_logging_collector in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.265147 #1]  INFO -- : Replacing (?-mix:#?log_min_duration_statement *=.*) with log_min_duration_statement = $db_log_min_duration_statement in /etc/postgresql/15/main/postgresql.conf
I, [2025-02-06T00:07:56.266734 #1]  INFO -- : Replacing (?-mix:^#local +replication +postgres +peer$) with local replication postgres  peer in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T00:07:56.267608 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*127.*$) with host all all 0.0.0.0/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T00:07:56.268347 #1]  INFO -- : Replacing (?-mix:^host.*all.*all.*::1\/128.*$) with host all all ::/0 md5 in /etc/postgresql/15/main/pg_hba.conf
I, [2025-02-06T00:07:56.268965 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
fi

failed to set locale!
[error] character map file `UTF-8' not found: No such file or directory
failed to set locale!
[error] default character map file `ANSI_X3.4-1968' not found: No such file or directory
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = "en_US.UTF-8",
	LC_ALL = "en_US.UTF-8",
	LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
popen failure: Cannot allocate memory
initdb: error: program "postgres" is needed by initdb but was not found in the same directory as "/usr/lib/postgresql/15/bin/initdb"
I, [2025-02-06T00:07:59.495629 #1]  INFO -- : Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
Upgrading PostgreSQL from version 13 to 15

I, [2025-02-06T00:07:59.496900 #1]  INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
I, [2025-02-06T00:07:59.500783 #1]  INFO -- : Terminating async processes
2025-02-06 00:07:59.629 UTC [51] FATAL:  database files are incompatible with server
2025-02-06 00:07:59.629 UTC [51] DETAIL:  The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 15.10 (Debian 15.10-1.pgdg120+1).

Help!!!

4 „Gefällt mir“

Es gibt ein Update für die PostgreSQL-Datenbankversion in diesem Update.
Meine Installation ist neu (6 Monate), aber ich war trotzdem nervös, nachdem ich dieses Forum in den letzten Tagen verfolgt hatte. Mehrere Berichte über fehlgeschlagene Upgrades, aber meistens mit älteren und/oder migrierten Datenbanken

Wie ist die Historie Ihrer Installation? für weitere Hinweise

Hier sind weitere Informationen zum DB-Upgrade und zur Fehlerbehebung

Gute Nachrichten, mein Upgrade verlief perfekt, also funktioniert das Upgrade.

Viel Glück ja

Ich wünschte so sehr, ich hätte mir vor dem Start eine Sicherung per E-Mail geschickt!
UND getestet, ob meine Linode-Sicherungen funktionieren… Ich habe gerade eine wiederhergestellt und sie enthält nicht das, was ich dachte.

Könnten Sie den Inhalt Ihrer app.yml-Datei teilen? Schwärzen Sie alle sensiblen Informationen, bevor Sie sie posten. @Neptune

Bestätigen Sie auch Ihre Docker-Version. Sehen Sie sich das Thema unten an, um ein ähnliches Problem zu lösen, das durch die Aktualisierung von Docker behoben wurde.

1 „Gefällt mir“

Docker-Version 20.10.7, Build f0df350

Hier ist meine app.yml

## Dies ist die All-in-One, eigenständige Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SEHR, SEHR EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuchen Sie http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren
templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
## - "templates/web.ssl.template.yml"
## - "templates/web.letsencrypt.ssl.template.yml"

## Welche TCP/IP-Ports soll dieser Container verfügbar machen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder Nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
## expose:
##   - "8080:80"   # http
##   - "8443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Setzen Sie db_shared_buffers auf maximal 25% des Gesamtspeichers.
  ## wird automatisch vom Bootstrap basierend auf dem erkannten RAM gesetzt, oder Sie können überschreiben
  db_shared_buffers: "256MB"

  ## kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
  #db_work_mem: "40MB"

  ## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
  ## wird automatisch vom Bootstrap basierend auf den erkannten CPUs gesetzt, oder Sie können überschreiben
  UNICORN_WORKERS: 4

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
  ## Erforderlich. Discourse funktioniert nicht mit einer reinen IP-Nummer.
  DISCOURSE_HOSTNAME: wordsmiths.digitalwind.net

  ## Kommentieren Sie aus, wenn der Container mit demselben Hostnamen gestartet werden soll
  ## (-h Option) wie oben angegeben (Standard "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste von per Komma getrennten E-Mails, die bei der Erstanmeldung zu Administratoren und Entwicklern gemacht werden
  ## Beispiel 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'xxx@dev.null'

  ## TODO: Der SMTP-Mailserver, der zum Überprüfen neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  # SMTP-ADRESSE, Benutzername und Passwort sind erforderlich
  # ACHTUNG: Das Zeichen '#' im SMTP-Passwort kann Probleme verursachen!
  DISCOURSE_SMTP_ADDRESS: dev.null
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: xxx@dev.null
  DISCOURSE_SMTP_PASSWORD: "not-here"
  DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: nope
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard true)
  DISCOURSE_SMTP_DOMAIN: dev.null
  DISCOURSE_NOTIFICATION_EMAIL: xxx@dev.null

  ## Wenn Sie die Lets Encrypt-Vorlage hinzugefügt haben, kommentieren Sie unten aus, um ein kostenloses SSL-Zertifikat zu erhalten
  LETSENCRYPT_ACCOUNT_EMAIL: xxx@dev.null

  ## Die HTTP- oder HTTPS-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## Der Maxmind Geolocation IP-Adressschlüssel für die IP-Adressensuche
  ## siehe https://meta.discourse.org/t/-/137387/23 für Details
  #DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins kommen hierher
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/discourse/wp-discourse.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-bbcode-color.git
          - git clone https://github.com/discourse/discourse-calendar
          - git clone https://github.com/discourse/discourse-checklist
          - git clone https://github.com/discourse/discourse-reactions
          - git clone https://github.com/discourse/discourse-policy

## Alle benutzerdefinierten Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn Sie die Absender-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, kommentieren Sie sie aus und ändern Sie sie:
  ## Nachdem Sie die erste Registrierungs-E-Mail erhalten haben, kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"

Ich habe Docker aktualisiert und versucht, Folgendes erneut auszuführen:

wordsmith@digitalwind-ubuntu-20:/var/discourse/containers$ docker --version
Docker version 27.5.1, build 9f9e405
wordsmith@digitalwind-ubuntu-20:/var/discourse/containers$ cd ..
wordsmith@digitalwind-ubuntu-20:/var/discourse$ sudo ./launcher app rebuild
x86_64 arch detected.
ERROR: containers/rebuild.yml does not exist or is not readable.

Available configs ( app )
wordsmith@digitalwind-ubuntu-20:/var/discourse$

Sie müssen das Upgrade in einer Konsole mit ./launcher rebuild app abschließen.

Es gibt eine neue stabile Version.

Das habe ich doch oben gemacht?

1 „Gefällt mir“

Kann mir hier jemand helfen? Meine Installation ist immer noch ausgefallen und ich bin ratlos.

Ich bin neu hier, aber ich werde mein Bestes tun, um Ihnen zu helfen. Ich habe in einem früheren Beitrag gelesen, dass Sie sagten:

Befinden Sie sich im richtigen Verzeichnis?
Ist das oben der aktuellste Versuch und die aktuelle Fehlermeldung?

Haben Sie Ihren Container wie vorgeschlagen neu gestartet?

Ich würde ihn neu starten, ein Backup machen und zu einer neuen VM mit einem aktuellen Betriebssystem wechseln.

1 „Gefällt mir“

Ich glaube, das sollte sudo ./launcher rebuild app sein

4 „Gefällt mir“

Ein GUI-Update wird Ihre Datenbank nicht aktualisieren, oder anders ausgedrückt: Sie müssen ausnahmsweise über die Befehlszeile aktualisieren, um weitere Updates zu erhalten.

2 „Gefällt mir“

Das wird nicht passieren.
Ich habe mich vielleicht vertan oder erinnere mich falsch, aber ich bin ziemlich sicher, dass dein Docker und dein Betriebssystem nicht mehr unterstützt werden, also hör einfach auf, alles zu aktualisieren.

Upgrade einfach nichts. Ich habe kürzlich jemandem geholfen, der seit sechs Jahren nicht aktualisiert hatte. Sie liefen immer noch mit Ubuntu 14.04.

1 „Gefällt mir“

Und dennoch ist es ein Upgrade. Und Sie können es wegen des Datenbank-Upgrades nicht über die grafische Benutzeroberfläche durchführen :man_shrugging:

1 „Gefällt mir“

Es wird genau gleich sein. Sie müssen Docker immer noch aktualisieren. Sie müssen die Datenbank immer noch aktualisieren. Wenn ich mich richtig an Ihre Version erinnere, ist jetzt eine stabile Version verfügbar.

1 „Gefällt mir“

[quote=„anon55243134, post:21, topic:350773″]
„Upgrade“ über die Kommandozeile hat Discourse ebenfalls irreparabel beschädigt
[/quote]

Das ist vielleicht eine zu kühne Aussage. Mit den Fähigkeiten, die einige hier haben, könnte das Problem wahrscheinlich behoben werden. Denken Sie jedoch immer an das erste Gebot beim Upgrade. Machen Sie immer ein Backup.

Das tun sie. In Ihrer App-YAML können Sie Discourse auf den stabilen Zweig (Stable Branch) einstellen. Sie müssen sich jedoch immer noch ab und zu auf dem Server anmelden und ein Upgrade durchführen.

Das ist der Vorteil, wenn Sie für einen gehosteten Plan bezahlen: Sie müssen sich keine Gedanken über Abstürze machen, da der Anbieter des Host-Plans sich darum kümmert.

Self+Hosted hat Vorteile, aber Sie können auf Probleme stoßen, und wenn Sie diese nicht beheben können. Möglicherweise müssen Sie jemanden bezahlen, um das/die Problem(e) zu beheben. Deshalb ist das Erstellen von Sicherungen wichtig. Besonders bei einem großen Update. Ihr VP-Anbieter hat auch die Möglichkeit, einen Snapshot Ihres Servers zu erstellen, den Sie wiederherstellen können, wenn ein Update, z. B. über die Befehlszeile, “spektakulär” fehlschlägt.

Auf meiner Reise von nunmehr über 7 Jahren habe ich viele neue Dinge lernen müssen. Zuletzt habe ich einen neuen Server aufgesetzt und Rsync verwendet, um mein Forum auf einen vollständig aktualisierten aktuellen Ubuntu-Server zu verschieben. Der alte war, wenn ich mich recht erinnere, Ubuntu 20.x. Jetzt läuft der neueste, wenn ich mich recht erinnere, Ubuntu 24.x. Hätte ich mir nicht die Zeit genommen, dies zu lernen und abzuschließen, hätte ich irgendwann ein “spektakulär” fehlgeschlagenes Upgrade gehabt.

1 „Gefällt mir“

Warum denkst du das?
Beta bedeutet nicht „nicht bereit für den Produktionseinsatz“. Stabil bedeutet weniger Änderungen, was zu weniger neuen Fehlern führt. Es bedeutet jedoch auch weniger Fehlerbehebungen und neue Funktionen, da nur sicherheitsrelevante Fehlerbehebungen zurückportiert werden.

1 „Gefällt mir“

Sie hatten mehrere Jahre Glück. Wie Jay erwähnte, ist Ihr Docker veraltet und erfordert ein Hard-Update anstelle eines Soft-Updates über die grafische Benutzeroberfläche.

Die Entwickler von Discourse geben sogar ausdrücklich an, dass Sie gelegentlich Befehlszeilen-Updates durchführen müssen. In meinen über 7 Jahren der Nutzung in den frühen Tagen habe ich beobachtet, dass die Web-GUI mich ausdrücklich darauf hingewiesen hat, dass ich ein Befehlszeilen-Update durchführen muss. Und Sie müssen auch zu gegebener Zeit ein Betriebssystem-Upgrade durchführen (oder einen neuen Server erstellen, um das Betriebssystem zu aktualisieren und Discourse darauf zu verschieben).

Dies ist einer der Nachteile von Self-Hosting: Sie als Self-Host müssen das Backend warten und Dinge reparieren, wenn nötig, oder Sie gehen zu Marketplace und bezahlen jemanden, der die erforderlichen Fähigkeiten besitzt.

1 „Gefällt mir“