Self-Hosting-Migrationsbeispiel – VPS zu VPS

Ich teile meine jüngste Erfahrung mit der Migration einer selbst gehosteten Discourse-Installation von einem VPS auf einen anderen, um den Entwicklern von Discourse und der Community der Administratoren zu danken. Diese Migration erhält die LetsEncrypt-SSL- und E-Mail-Konfigurationen.

Die ursprüngliche Installation befand sich auf einer Google Cloud Platform (GCP) g1-small Instanz (1 vCPU, 1,7 GB RAM) und folgte dem offiziellen Leitfaden (INSTALL-cloud.md) sowie dem Zweig tests-passed.

Die neue Installation läuft auf einem Evolution Host ‘Developer’-Typ KVM VPS (2 CPU-Kerne, 2 GB RAM, 40 GB SSD, 7m23s Wiederherstellungszeit, 10 €/Monat). Ubuntu Server 18.04.4 minimal wurde mit einer 1-GB-Swap-Partition installiert (wahrscheinlich basierend auf einer Vorlage).

Wenn Ihr Host mit zusätzlicher Software installiert wurde, stellen Sie sicher, dass unnötige Software (z. B. Webserver) entfernt wird, und sichern Sie Ihren Host (Standardbenutzernamen, Passwörter, sshd-Konfigurationen usw.).

Im Folgenden finden Sie die als Root ausgeführten Terminalbefehle, wobei installationspezifische Daten entfernt wurden (ersetzen Sie die Teile in GROSSBUCHSTABEN durch Ihre eigenen). Bitte kommentieren Sie mit Korrekturen oder Fragen!

Vorbereitung des neuen Hosts

apt update && apt -y dist-upgrade
apt install -y byobu mosh htop iotop hugepages curl git && byobu-enable

hugeadm --thp-never

fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
echo '/swapfile       swap    swap    auto      0       0' | tee -a /etc/fstab
echo 'vm.swappiness = 10' > /etc/sysctl.d/30-discourse-swap.conf

git clone https://github.com/discourse/discourse_docker.git /var/discourse

reboot

Vorbereitung des alten Hosts & Sicherung der Discourse-Dateien

cd /var/discourse
./launcher rebuild app

./launcher enter app
discourse backup
exit

(Bemerken Sie den Dateinamen Ihrer Discourse-Sicherung)

cp -v containers/app.yml ~
cd shared/standalone
cp -v settings.yml ~
tar cvf ~/ssl.tar ssl
tar cvf ~/letsencrypt.tar letsencrypt

cd ~
scp -C ssl.tar letsencrypt.tar app.yml settings.yml BENUTZERNAME@NEUER-HOST-IP:~
scp /var/discourse/shared/standalone/backups/default/IHRE-DISCOURSE-SICHERUNG.tar.gz BENUTZERNAME@NEUER-HOST-IP:~
exit

Wiederherstellung von Discourse auf dem neuen Host

(Verschieben Sie die mit scp oben kopierten Dateien in das Home-Verzeichnis des Root-Benutzers)

echo 'NEUER-HOST-IP IHRE-DISCOURSE-FQHN' | tee -a /etc/hosts

cd /var/discourse
cp -v ~/app.yml containers

mkdir -v shared/standalone
cd shared/standalone
cp -v ~/settings.yml .   
tar xvf ~/ssl.tar
tar xvf ~/letsencrypt.tar

cd /var/discourse
./discourse-setup

(discourse-setup sollte fehlerfrei abgeschlossen werden, sodass Sie alle relevanten Konfigurationsinformationen überprüfen können)

mkdir -v shared/standalone/backups/default
cp -v ~/IHRE-DISCOURSE-SICHERUNG.tar.gz shared/standalone/backups/default

./launcher enter app
discourse enable_restore
discourse restore IHRE-DISCOURSE-SICHERUNG.tar.gz
discourse disable_restore

Testen von Ihrem lokalen Rechner aus

echo 'NEUER-HOST-IP IHRE-DISCOURSE-FQHN' | tee -a /etc/hosts

Navigieren Sie zu https://IHRE-DISCOURSE-FQHN/admin/email

Geben Sie am unteren Rand der Seite Ihre E-Mail-Adresse ein, um den E-Mail-Versand zu testen, und stöbern Sie auf Ihrer Discourse-Seite, um den funktionierenden Status zu bestätigen.

Wenn Sie zufrieden sind, dass alles ordnungsgemäß funktioniert, ändern Sie den DNS-A-Eintrag für IHRE-DISCOURSE-FQHN, damit er auf die IP-Adresse Ihres neuen Hosts zeigt.

6 „Gefällt mir“