Configura backup automatici per Discourse

:bookmark: Questa guida spiega come configurare i backup automatici per Discourse, incluse le opzioni di archiviazione su server locali e archiviazione compatibile con S3.

Scopri come configurare i backup automatici per la tua piattaforma Discourse.

Questa guida copre la configurazione dei backup automatici, l’archiviazione su server locali o archiviazione compatibile con S3 e la gestione delle opzioni di conservazione dell’archiviazione come Amazon Glacier.

Configurazione dei backup automatici

  1. Naviga nelle impostazioni /admin.
  2. Seleziona la sezione Backup.
  3. Imposta backup_frequency all’intervallo desiderato in giorni. Il valore predefinito è 7 (settimanale). Imposta su 1 per backup giornalieri o 0 per disabilitare i backup automatici. Il massimo è 30.

backup_frequencybackup_frequency100%75%50%

Impostazioni di backup aggiuntive

  • backup_time_of_day — l’ora del giorno (UTC) in cui vengono eseguiti i backup. Predefinito: 3:30.
  • backup_with_uploads — includi i caricamenti nei backup programmati. Predefinito: abilitato. La disattivazione eseguirà il backup solo del database.
  • maximum_backups — il numero massimo di backup da conservare. I backup più vecchi vengono eliminati automaticamente. Predefinito: 5.
  • remove_older_backups — rimuovi i backup più vecchi del numero di giorni specificato. Lascia vuoto per disabilitare.

Archiviazione dei backup sul server locale

Per impostazione predefinita, i backup vengono archiviati sul tuo server locale. Per le istanze self-hosted, accedici tramite /var/discourse/shared/standalone/backups/default.

Archiviazione dei backup su archiviazione compatibile con S3

Utilizzo del pannello di amministrazione

  1. Crea un bucket S3.
  2. Imposta s3_backup_bucket nel pannello di amministrazione.
  1. Configura s3_access_key_id, s3_secret_access_key e s3_region.
  2. Imposta backup_location su “S3”.

image

:warning: ATTENZIONE

L’archiviazione di backup e dei caricamenti regolari nello stesso bucket e nella stessa cartella non è più supportata e non funzionerà.

Il percorso s3_backup_bucket dovrebbe essere usato solo per i backup. Se devi utilizzare un bucket che contiene altri file, assicurati di fornire un prefisso quando configuri l’impostazione s3_backup_bucket (esempio: my-awesome-bucket/backups) e assicurati che i file con quel prefisso siano privati.

D’ora in poi tutti i backup verranno caricati su S3 e non verranno più archiviati localmente. L’archiviazione locale sarà utilizzata solo per file temporanei durante i backup e i ripristini.

Vai alla scheda Backups nella dashboard di amministrazione per sfogliare i backup: puoi scaricarli in qualsiasi momento per eseguire un backup manuale fuori sede.

Utilizzo delle variabili d’ambiente in app.yml

È anche possibile configurare i backup S3 utilizzando variabili d’ambiente in app.yml. Per ulteriori informazioni, consulta Configurare un provider di archiviazione oggetti compatibile con S3 per i caricamenti

Si noti che l’articolo sopra menzionato copre la configurazione S3 in app.yml per i backup e per i caricamenti di file/immagini. Se desideri utilizzare S3 solo per i backup (e non per i caricamenti di file/immagini), puoi omettere i seguenti parametri dalla configurazione di app.yml:

  • DISCOURSE_USE_S3
  • DISCOURSE_S3_CDN_URL
  • DISCOURSE_S3_BUCKET

In questo caso, non è necessario configurare il passaggio after_assets_precompile né configurare una CDN.

Assicurati di includere tutti gli altri parametri richiesti dal tuo provider di archiviazione, come menzionato nell’articolo. Ecco un esempio di configurazione che attiva S3 solo per i backup (per Scaleway S3):

DISCOURSE_S3_REGION: nl-ams
DISCOURSE_S3_ENDPOINT: https://s3.nl-ams.scw.cloud
DISCOURSE_S3_ACCESS_KEY_ID: my_access_key
DISCOURSE_S3_SECRET_ACCESS_KEY: my_secret_access_key
DISCOURSE_S3_BACKUP_BUCKET: my_bucket/my_folder
DISCOURSE_BACKUP_LOCATION: s3

Archiviazione su spazio di archiviazione a costo inferiore

Si noti che su AWS S3 è anche possibile abilitare una regola del ciclo di vita per il trasferimento automatico in un bucket Glacier per mantenere bassi i costi dei backup S3. Altri provider di archiviazione hanno spesso un’offerta simile.

59 Mi Piace

You are able to Archive Backups from your S3 Bucket to Glacier.
It is cheaper, but an Restore attemps more Time.

This Site will Help you to reduce Backup costs.:

11 Mi Piace

Setting this up can be rather confusing. Here’s a simple guide to help you out.

  • Log into your Discourse admin panel
  • Configure daily backups
  • Set maximum backups to 7
  • Log into your Amazon Web Services account
  • Go in the S3 Dashboard
  • Open the bucket containing the backups
  • Click on the properties tab
  • Activate versioning
  • Open the Lifecycle menu
  • Add a rule for the whole bucket
  • Set current version to expire after 15 days
  • Set previous version to
  • Archive to Glacier after 1 days
  • expire after 91 days
  • Save and logout

How it works

Versioning will keep backups automaticly deleted by Discourse. One day after beeing deleted it will be moved to the Glacier storage. After 91 days it will be delete from the Glacier storage.

Warning

Amazon charge you for item stored in Glacier for 90 days even if you delete them before. Make sure your Glacier Lyfecicle keep your file at least 90 days.

11 Mi Piace

I may have missed this, but how to I make sure a bucket for backups is private the proper way? Setting up file and image uploads to S3 doesn’t seem to be described here.

1 Mi Piace

Looks like there is no such option anymore.

UPD: ah, now it’s split into 2 steps of this wizard.

So I guess it should be like this:

2 Mi Piace

Does S3 backup functionality play nice without IAM access key and secret if using AWS roles assigned to the instance and s3 use iam profile is enabled in the settings menu?

Edit: The answer is YES! Just ensure you have region set appropriately.

1 Mi Piace

I had this problem too, which was resolved by adding a couple of lines to the policy document:

"Resource": [
        "arn:aws:s3:::your-uploads-bucket",
        "arn:aws:s3:::your-uploads-bucket/*",
        "arn:aws:s3:::your-backups-bucket",
        "arn:aws:s3:::your-backups-bucket/*"
      ]

Should this be added to the OP (which isn’t a wiki)? Or perhaps in the OP of Set up file and image uploads to S3?

2 Mi Piace

Is there a good reason not to make daily backups aren’t the default?

Fixes needed for OP

Add something about moving S3 backups to Glacier?
Delete the S3 stuff and link to Configure an S3 compatible object storage provider for uploads

It’d be overkill and expensive. Same reason we don’t recommend changing the oil in your car every 500 miles?

You back up your servers once a week?

I think your 500 mile oil change analogy would be a good answer for “why not keep 30 backups?”, but it doesn’t make sense to me here.

Do you not think that if you’re going to have 5 backups most people would rather have backups every day so that if they do have to revert to a backup they’ve lost no more than a day? The only time I remember an older backup being useful is when images fell out of tombstone.

If they have so little disk space that they can’t hold 5 backups, it would seem better to learn that in 5 days when they still have some memory of what they did than wait 4-5 weeks.

1 Mi Piace

Yes, that is correct, for my self hosted servers.

If you prefer different settings, feel free to edit them from the defaults. What’s stopping you from doing so?

1 Mi Piace

Well, I’ll be!

I’m cleaning up topics like this one. If the defaults were changed, it wouldn’t be needed!

I’m convinced that the defaults won’t be changed, so I’ll move ahead. :wink

2 Mi Piace

Once a week is a good starting point and a solid default.

1 Mi Piace

I had the very same problem!

i suggest to add a note regarding this on the initial post too!

3 Mi Piace

Would be nice if this could be used to upload to a different S3 compatible provider, such as running MinIO.

If you want to use minio, see Using Object Storage for Uploads (S3 & Clones). If you want different services for backups and assets then you’re out of luck (though there are ways to set up triggers to copy from one bucket 8 another)

No, just want for backups, so they get automatically pushed to a different machine on my network.

Then the guide I linked is what you’re looking for.

1 Mi Piace

Is it possible to be more frequent than once per day? I’d rather not make assumptions and set backup freqeuncy to a float

1 Mi Piace

If you want more frequent backups you’ll need to do them externally.

3 Mi Piace