Comment configurer Cloudflare R2 pour votre communauté Discourse

Pour un multisite, si je comprends bien ce que vous faites déjà, vous souhaitez n’utiliser qu’une seule instance avec R2. Si vos paramètres se trouvent dans les paramètres d’administration, vous devez utiliser USE_DB_S3_CONFIG=true avec RAILS_DB=default pour que cela fonctionne parfaitement.

hooks:
  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:upload_assets
          - sudo -E -u discourse RAILS_DB=default USE_DB_S3_CONFIG=true bundle exec rake s3:expire_missing_assets

Pour la migration des téléversements, vous devez exporter ces variables comme ci-dessous, soit d’un coup, soit une par une.

RAILS_DB=default \
DISCOURSE_S3_REGION=auto \
DISCOURSE_S3_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com \
DISCOURSE_S3_BUCKET=discourse-files \
DISCOURSE_S3_ACCESS_KEY_ID=<your-access-key> \
DISCOURSE_S3_SECRET_ACCESS_KEY=<your-secret-key> \
rake uploads:migrate_to_s3

Si vous prévoyez de les ajouter dans app.yml, assurez-vous d’utiliser DISCOURSE_S3_BUCKET, car il y a des fautes de frappe dans la section R2 de Configure an S3 compatible object storage provider for uploads.