0.13.14 : fix media uploads, move plugin secrets to env vars
Build release Docker image / Build Docker Images (push) Successful in 7m54s
Build release Docker image / Build Docker Images (push) Successful in 7m54s
Tous les uploads échouaient depuis mai 2026 sur « Credential access key has length 5, should be 32 ». config/env/production/plugins.ts surchargeait l'upload avec l'ancien MinIO auto-hébergé (accessKeyId "admin", 5 caractères, endpoint container.harmonylab.ovh aujourd'hui injoignable). Strapi fusionnant les surcharges d'environnement en profondeur, la config effective en prod n'était ni l'une ni l'autre : endpoint R2 hérité de config/plugins.ts, mais identifiants MinIO, le provider lisant s3Options.credentials en priorité sur les options à plat. - surcharge production supprimée : une seule config plugins, les différences d'environnement passent par les variables d'environnement - upload en forme s3Options attendue par @strapi/provider-upload-aws-s3 5.x (à plat, le provider n'accepte plus qu'au prix d'une dépréciation) - secrets R2 et SMTP sortis du fichier vers env(), .env.example à jour - CSP de production : les médias étaient autorisés depuis container.harmonylab.ovh et 192.168.0.211:9000, jamais depuis le domaine R2 — l'hôte est désormais dérivé de R2_PUBLIC_URL - la surcharge production des middlewares réduisait strapi::body à sa forme par défaut, perdant includeUnparsed nécessaire au webhook Stripe ⚠️ Déploiement : poser R2_* et SMTP_PASSWORD dans Dokploy AVANT de déployer. Les clés historiques restent dans l'historique git : rotation R2 et ZeptoMail à faire. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -5,3 +5,28 @@ API_TOKEN_SALT=tobemodified
|
||||
ADMIN_JWT_SECRET=tobemodified
|
||||
TRANSFER_TOKEN_SALT=tobemodified
|
||||
JWT_SECRET=tobemodified
|
||||
|
||||
# Base de données — sqlite par défaut en dev, postgres/mysql sinon
|
||||
DATABASE_CLIENT=sqlite
|
||||
|
||||
# Stockage des médias (Cloudflare R2, compatible S3)
|
||||
R2_ACCESS_KEY_ID=tobemodified
|
||||
R2_SECRET_ACCESS_KEY=tobemodified
|
||||
R2_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
|
||||
R2_BUCKET=choralsync
|
||||
R2_REGION=auto
|
||||
# Domaine public servant les médias du bucket
|
||||
R2_PUBLIC_URL=https://container.choralsync.com
|
||||
|
||||
# Email transactionnel (ZeptoMail via nodemailer)
|
||||
SMTP_HOST=smtp.zeptomail.eu
|
||||
SMTP_PORT=587
|
||||
SMTP_USERNAME=emailapikey
|
||||
SMTP_PASSWORD=tobemodified
|
||||
SMTP_DEFAULT_FROM="ChoralSync <noreply@choralsync.com>"
|
||||
SMTP_DEFAULT_REPLY_TO=contact@choralsync.com
|
||||
SMTP_DEBUG=false
|
||||
|
||||
# Stripe
|
||||
STRIPE_SECRET_KEY=tobemodified
|
||||
STRIPE_WEBHOOK_SECRET=tobemodified
|
||||
|
||||
Reference in New Issue
Block a user