ANFRAGE: Unterstützung S3-Backup für einen Dienst wie Backblaze

Ich würde gerne Unterstützung für ein Backup-Ziel bei Backblaze haben.

Derzeit kann ich keinen Endpunkt wie s3.eu-central-003.backblazeb2.com festlegen.

Falls Sie das noch nicht gesehen haben: Configure an S3 compatible object storage provider for uploads

Nein, das hatte ich nicht… Jetzt habe ich es :slight_smile:

Aber andererseits braucht man einen Doktortitel, um eine einfache Sache zu erledigen. Für zukünftige Releases könnte die Benutzerfreundlichkeit für Administratoren ein Problem werden.

Discourse bietet viele erweiterte Funktionen – doch sie sind für einen durchschnittlichen Nutzer (ich ::slight_smile: ) auch zu fortgeschritten, um sie zu nutzen.

Übrigens - ich möchte, dass das Backup nur remote vom Server gespeichert wird.

Es ist keine Upload-Funktion wie bei Bildern erforderlich, da diese auf einem CDN gespeichert werden. Mein Forum ist nicht besonders groß oder hat eine hohe Auslastung…

Es läuft auf einem einfachen 5-Dollar-Droplet…

Oh, das sollte dann ziemlich einfach sein. Wenn es nicht zu groß ist, ist es vielleicht einfach weniger aufwendig, AWS S3 zu verwenden? Die Preise für den Speicher sind nicht schlecht, aber die Bandbreite ist etwas hektisch.

Ich denke, du musst das einfach mit den richtigen Informationen in deine app.yml einfügen und neu aufbauen. Es werden die Teile ausgeschlossen, die für Benutzer-Uploads gedacht sind. Du musst den anderen Teil after_assets_precompile aus dem Tutorial nicht einbeziehen.

Verbinde dich einfach per SSH als Root mit deinem Server und führe dann aus:
cd /var/discourse
nano containers/app.yml

Verwende die Pfeiltasten, um den Cursor zu bewegen, und füge die folgenden Informationen unter dem Teil der Datei ein, der lautet: #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  DISCOURSE_S3_REGION: "us-west-002"
  DISCOURSE_S3_INSTALL_CORS_RULE: false
  DISCOURSE_S3_ENDPOINT: https://s3.us-west-002.backblazeb2.com
  DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
  DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
  DISCOURSE_S3_BACKUP_BUCKET: falcoland-files/backup
  DISCOURSE_BACKUP_LOCATION: s3

Stelle sicher, dass du die richtigen Informationen für Region, Endpunkt, Zugriffsschlüssel, Geheimschlüssel und Backup-Bucket-Name eingegeben hast.

Drücke Strg+O und bestätige zum Speichern, drücke dann Strg+X zum Beenden. Führe dann aus:
./launcher rebuild app

Ich bin ziemlich zuversichtlich, dass es problemlos funktionieren sollte.

Da du bei Digital Ocean bist, wäre es eine gute Idee, vor diesem Schritt ein Backup zu erstellen. So kannst du im Fehlerfall einfach zurückrollen.

Danke für die Beschreibung @markersocial

Ich bin auf https://secure.backblaze.com/b2_buckets.htm gegangen und habe einen neuen Bucket erstellt.

Anschließend bin ich zu App Keys gegangen, um einen neuen App Key für den Zugriff zu erstellen.

Nach der Erstellung erhältst du vorübergehend eine Information wie unten – beachte bitte, dass du dies nur einmal siehst:

Basierend darauf habe ich Folgendes verwendet:

DISCOURSE_S3_REGION: “s3.eu-central-003”
DISCOURSE_S3_INSTALL_CORS_RULE: false
DISCOURSE_S3_ENDPOINT: https://s3.eu-central-003.backblazeb2.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_BACKUP_BUCKET: my_buckets_Name
DISCOURSE_BACKUP_LOCATION: s3

Anschließend habe ich nach einem Snapshot meines Droplets bei Digital Ocean ein Rebuild durchgeführt:

./launcher rebuild app

Dann bin ich zu /admin/backups gegangen und habe ein Backup erstellt:

[2020-08-27 09:25:57] Creating archive: studmed-dk-2020-08-27-092518-v20200820232017.tar.gz
[2020-08-27 09:25:57] Making sure archive does not already exist…
[2020-08-27 09:25:57] pg_dump: executing SEQUENCE SET topic_allowed_users_id_seq
[2020-08-27 09:25:57] Creating empty archive…
[2020-08-27 09:25:57] Archiving data dump…
[2020-08-27 09:25:59] Archiving uploads…
[2020-08-27 09:26:06] Removing tmp ‘/var/www/discourse/tmp/backups/default/2020-08-27-092518’ directory…
[2020-08-27 09:26:06] Gzipping archive, this may take a while…
[2020-08-27 09:26:31] Uploading archive…
[2020-08-27 09:26:41] Executing the after_create_hook for the backup…
[2020-08-27 09:26:41] Deleting old backups…
[2020-08-27 09:26:41] Cleaning stuff up…
[2020-08-27 09:26:41] Removing archive from local storage…
[2020-08-27 09:26:41] Removing ‘.tar’ leftovers…
[2020-08-27 09:26:41] Marking backup as finished…
[2020-08-27 09:26:41] Refreshing disk stats…
[2020-08-27 09:26:42] Notifying ‘frold’ of the end of the backup…
[2020-08-27 09:26:53] Finished!

Dann bin ich zu Backblaze gegangen, um zu prüfen, ob dort etwas passiert ist:

Ich schulde dir ein :beers:

Gute Arbeit! Falls jemand sonst hier landet: Ich glaube, wenn du einen Schlüssel bereitstellst, mit dem Buckets erstellt werden können, erstellt Discourse den Bucket sogar automatisch für dich.

Geschlossen, da dies durch die Befolgung von Objektspeicher für Uploads verwenden (S3 & Clones) standardmäßig unterstützt wird.