Ich bin heute zu einem neuen VPS migriert und dachte, ich teile meine Erfahrungen, da es so aussieht, als ob in letzter Zeit einige Leute auf den alten Betriebssystem-Blocker bei ihren Updates stoßen ![]()
Ich bin bei Digital Ocean, also habe ich ein neues Droplet erstellt.
Alter VPS = Ubuntu Server 18.04.6 LTS
Neuer VPS = Ubuntu Server 23.10
Ich habe die üblichen Wartungsarbeiten auf dem neuen VPS durchgeführt - bitte bearbeiten Sie sie nach Belieben:
Apt-get update
Apt-get upgrade
Apt-get install fail2ban
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow http
ufw allow https
ufw enable
Dann habe ich ein neues leeres Verzeichnis für Discourse erstellt:
sudo mkdir -p /var/discourse
Dann habe ich Docker installiert:
wget -qO- https://get.docker.com/ | sh
Dann habe ich die TTL meines DNS von 30 Minuten auf 10 Minuten geändert (das Minimum, das GoDaddy erlaubt).
Auf meinem alten Server habe ich eine lokale Kopie des Discourse-Datenbank-Backups von letzter Nacht heruntergeladen (man kann nie genug lokale Backups haben). Ich habe auch eine Kopie von app.yml auf meinen lokalen PC heruntergeladen.
Wie von einigen Leuten oben vorgeschlagen, habe ich ein “Root-zu-Root”-Rsync durchgeführt. Ich habe die IP-Adresse anstelle des Hostnamens verwendet, um DNS-Verwechslungen zu vermeiden. Ebenfalls wie oben vorgeschlagen, habe ich die Schalter -avz verwendet:
rsync -avz root@old.ip.address.here:/var/discourse /var
Zur Referenz, mein Discourse-Ordner ist 25 GB groß.
Das Rsync vom alten Server zum neuen Server dauerte ca. 25 Minuten. Dies geschah einfach zwischen zwei Digital Ocean Droplets in derselben LON1-Region. Ihre Erfahrungen können abweichen.
Nach dem Rsync und dem Versuch eines Rebuilds stieß ich auf denselben Fehler, auf den @piratdavid wegen PostgreSQL stieß: “database system is shut down”.
Also habe ich die App auf dem alten VPS gestoppt:
./launcher stop app
Und habe noch ein Rsync durchgeführt, diesmal nur für die Änderungen:
rsync -avz --delete root@old.ip.address.here:/var/discourse /var
Dann habe ich die alte Discourse-App wieder gestartet und sehr schnell in den Wartungsmodus versetzt - damit die Leute sie weiterhin erreichen können und die übliche Wartungswarnung sehen.
Das verschafft mir auch etwas Zeit, um am neuen VPS zu arbeiten ![]()
Ich habe meine HOSTS-Datei auf meinem lokalen PC aktualisiert, damit ich auf das Discourse auf dem neuen VPS zugreifen konnte, ohne Browserwarnungen / -probleme.
Auf dem neuen VPS habe ich dann Folgendes ausgeführt:
./discourse-setup
Dies geschah, damit die RAM- und CPU-Einstellungen in der Datei app.yml automatisch aktualisiert werden konnten.
Dann habe ich einen App-Rebuild auf dem neuen VPS durchgeführt:
./launcher rebuild app
Einige Rauchtests durchgeführt, alles gut.
DNS aktualisiert - Auftrag erledigt.
Vielen Dank für das detaillierte Thema, alle ![]()