1. Accueil
  2. Articles
7 min de lecture
2 vues

Configuration de Scaleway Object Storage avec Dokploy

#Introduction

Dans le cadre du déploiement d'une application moderne utilisant Laravel pour l'API backend et Nuxt /Vue.js pour le frontend, le choix d'une solution de stockage d'objets performante, économique et compatible S3 est crucial. Cet article vous accompagne pas à pas dans la configuration de Scaleway Object Storage avec Dokploy, la plateforme de déploiement open-source.


#Sommaire

  1. Prérequis
  2. Pourquoi Scaleway Object Storage ?
  3. Création du bucket Object Storage
  4. Génération des clés API
  5. Configuration des permissions IAM
  6. Configuration de la destination S3 dans Dokploy
  7. Résolution des erreurs courantes
  8. Intégration avec Laravel
  9. Configuration des sauvegardes automatiques
  10. Conclusion

#Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un compte Scaleway actif avec un moyen de paiement valide (des crédits de 100€ sont offerts pour démarrer)
  • Un serveur VPS avec Dokploy installé et accessible
  • Un bucket Object Storage créé sur Scaleway
  • Les identifiants API (Access Key et Secret Key) de Scaleway

#Pourquoi Scaleway Object Storage ?

Scaleway est un fournisseur cloud européen qui propose des services compétitifs face aux géants américains. Voici les principaux avantages :

Critère Scaleway AWS S3
Prix du stockage (1 To) ~8€/mois ~23$/mois
Transfert sortant (egress) 75 Go gratuits, puis 0,01€/Go 0,09$/Go
Frais de requêtes API Inclus Payant
Localisation Europe (Paris, Amsterdam, Varsovie) ...
Souveraineté des données RGPD conforme Dépend de la région choisie

Pour une application ciblant le Cameroun, Scaleway offre une meilleure latence (via ses datacenters parisiens) et des coûts de transfert jusqu'à 9 fois inférieurs à AWS S3.


#Création du bucket Object Storage

#Étape 1 : Accéder à la console Scaleway

Connectez-vous à la console Scaleway à l'adresse : https://console.scaleway.com

#Étape 2 : Sélectionner le bon service

  1. Dans le menu de gauche, cliquez sur "Storage"
  2. Sélectionnez "Object Storage"
  3. Cliquez sur "+ Create bucket"

#Étape 3 : Configuration du bucket

Remplissez le formulaire comme suit :

Champ Valeur
Bucket name entreprise-media (choisissez un nom unique)
Région Paris (FR-PAR)
Bucket visibility Private (privé)
Storage class Standard One Zone (le plus économique)

#Étape 4 : Options avancées

  • Bucket encryption : Laissez décoché (chiffrement activé par défaut)
  • Bucket versioning : Laissez décoché (augmente les coûts)
  • Activate 90-day free trial : Cochez pour bénéficier de 750 Go gratuits

#Étape 5 : Finaliser

  1. Cochez la case "I have read and accept Scaleway Storage specific conditions"
  2. Sélectionnez le cas d'usage "Web application"
  3. Cliquez sur "Create bucket"

#Génération des clés API

Les clés API sont indispensables pour connecter Dokploy à votre bucket.

#Étape 1 : Accéder à la section IAM

  1. Dans la console Scaleway, cliquez sur votre nom d'organisation en haut à droite
  2. Sélectionnez "API keys" (ou "IAM & API keys")

#Étape 2 : Générer une nouvelle clé

  1. Cliquez sur "+ Generate API key"
  2. Remplissez le formulaire :
Champ Sélection
Select API key bearer "An application"
Application Sélectionnez votre application (ex: entreprise-inc)
API key expiration 1 year (recommandé)
Will this API key be used for Object Storage? "Yes, set up preferred Project"
Project Sélectionnez le projet contenant votre bucket
  1. Cliquez sur "Generate API key"

#Étape 3 : Conserver les identifiants

Une fenêtre affiche vos identifiants :

1Access Key ID: SCWXXXXXXXXXXXXXXXXX
2Secret Key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
1Access Key ID: SCWXXXXXXXXXXXXXXXXX
2Secret Key: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

⚠️ Attention : La Secret Key ne sera affichée qu'une seule fois. Copiez-la immédiatement et conservez-la dans un endroit sécurisé.


#Configuration des permissions IAM

Pour que Dokploy puisse accéder à votre bucket, votre application doit disposer des droits nécessaires.

#Étape 1 : Créer une politique IAM

  1. Dans la console Scaleway, allez dans IAMPolicies
  2. Cliquez sur "Create policy"
  3. Ajoutez les règles suivantes :

Règle #1 :

  • Permissions : ObjectStorageFullAccess
  • Scope : "All projects" (ou sélectionnez le projet concerné)

#Étape 2 : Attacher la politique à l'application

  1. Dans la section "Associer la policy au principal"
  2. Type de principal : "Applications"
  3. Nom de l'application : Sélectionnez votre application (entreprise-inc)

#Étape 3 : Valider

  1. Cliquez sur "Suivant" puis "Créer"
  2. Vérifiez que la politique apparaît bien dans la liste des politiques attachées à votre application

#Configuration de la destination S3 dans Dokploy

#Étape 1 : Accéder à la configuration S3

  1. Connectez-vous à votre interface Dokploy (https://votre-domaine-dokploy.com)
  2. Dans le menu de gauche, cliquez sur Settings (en bas)
  3. Sélectionnez S3 Destinations

#Étape 2 : Ajouter une nouvelle destination

  1. Cliquez sur "Add S3 Destination"
  2. Remplissez les champs suivants :
Champ Valeur
Name Scaleway Media Bucket
Provider Scaleway Object Storage
Access Key Id SCWXXXXXXXXXXXXXXXXX
Secret Access Key XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Bucket entreprise-media
Region fr-par
Endpoint https://s3.fr-par.scw.cloud

#Étape 3 : Ajouter un flag supplémentaire

  1. Cliquez sur "+ Add Flag"
  2. Saisissez : --s3-force-path-style=false

Ce flag est essentiel pour que Dokploy construise correctement l'URL du bucket (format "virtual-hosted style" attendu par Scaleway).

#Étape 4 : Tester et enregistrer

  1. Cliquez sur "Test connection"
  2. Si le test est vert (succès), cliquez sur "Create" ou "Update Destination"

#Résolution des erreurs courantes

#Erreur 1 : Access Denied (403)

Cause : La clé API n'a pas les droits nécessaires sur le bucket.

Solution :

  • Vérifiez que la politique ObjectStorageFullAccess est bien attachée à votre application
  • Régénérez une clé API avec l'option "Oui, configurer le Projet favori"

#Erreur 2 : TLS certificate error (certificate is valid for... not...)

Cause : L'endpoint est mal configuré.

Solution :

#Erreur 3 : Bucket not found

Cause : Le nom du bucket est mal orthographié.

Solution :

  • Vérifiez le nom exact du bucket dans la console Scaleway
  • Corrigez le champ Bucket dans Dokploy

#Erreur 4 : Invalid region

Cause : La région ne correspond pas à celle du bucket.

Solution :

  • Vérifiez la région de votre bucket dans la console Scaleway (PAR = fr-par)
  • Utilisez la valeur fr-par dans Dokploy

#Intégration avec Laravel

Une fois la destination S3 configurée dans Dokploy, vous pouvez intégrer Scaleway Object Storage dans votre application Laravel.

#Configuration du fichier .env

1# Scaleway Object Storage
2AWS_ACCESS_KEY_ID=SCWXXXXXXXXXXXXXXXXX
3AWS_SECRET_ACCESS_KEY=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
4AWS_DEFAULT_REGION=fr-par
5AWS_BUCKET=entreprise-media
7AWS_USE_PATH_STYLE_ENDPOINT=false
1# Scaleway Object Storage
2AWS_ACCESS_KEY_ID=SCWXXXXXXXXXXXXXXXXX
3AWS_SECRET_ACCESS_KEY=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
4AWS_DEFAULT_REGION=fr-par
5AWS_BUCKET=entreprise-media
7AWS_USE_PATH_STYLE_ENDPOINT=false

#Configuration du fichier config/filesystems.php

1'disks' => [
2 // ...
3 's3' => [
4 'driver' => 's3',
5 'key' => env('AWS_ACCESS_KEY_ID'),
6 'secret' => env('AWS_SECRET_ACCESS_KEY'),
7 'region' => env('AWS_DEFAULT_REGION'),
8 'bucket' => env('AWS_BUCKET'),
9 'url' => env('AWS_URL'),
10 'endpoint' => env('AWS_ENDPOINT'),
11 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
12 'throw' => false,
13 ],
14],
1'disks' => [
2 // ...
3 's3' => [
4 'driver' => 's3',
5 'key' => env('AWS_ACCESS_KEY_ID'),
6 'secret' => env('AWS_SECRET_ACCESS_KEY'),
7 'region' => env('AWS_DEFAULT_REGION'),
8 'bucket' => env('AWS_BUCKET'),
9 'url' => env('AWS_URL'),
10 'endpoint' => env('AWS_ENDPOINT'),
11 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
12 'throw' => false,
13 ],
14],

#Exemple d'utilisation

1use Illuminate\Support\Facades\Storage;
2 
3// Upload d'une image
4$path = Storage::disk('s3')->putFile('avatars', $request->file('avatar'));
5 
6// Récupération de l'URL
7$url = Storage::disk('s3')->url($path);
8 
9// Suppression
10Storage::disk('s3')->delete($path);
1use Illuminate\Support\Facades\Storage;
2 
3// Upload d'une image
4$path = Storage::disk('s3')->putFile('avatars', $request->file('avatar'));
5 
6// Récupération de l'URL
7$url = Storage::disk('s3')->url($path);
8 
9// Suppression
10Storage::disk('s3')->delete($path);

#Configuration des sauvegardes automatiques

#Sauvegarde de la base de données PostgreSQL

  1. Dans Dokploy, allez dans votre service PostgreSQL
  2. Cliquez sur l'onglet "Backups"
  3. Sélectionnez la destination "Scaleway Media Bucket"
  4. Configurez la planification :
Paramètre Valeur
Schedule 0 2 * * * (tous les jours à 2h du matin)
Retention 7 jours
  1. Cliquez sur "Save"

#Sauvegarde manuelle

Vous pouvez également déclencher une sauvegarde immédiate en cliquant sur "Create Backup".


#Vérification finale

Pour confirmer que tout fonctionne correctement :

  1. Vérifiez la connexion S3 : Dans Dokploy, le test de la destination S3 doit être vert
  2. Testez un upload Laravel : Uploadez un fichier test via votre application
  3. Vérifiez les sauvegardes : Créez une sauvegarde manuelle de votre base de données
  4. Consultez les fichiers : Dans la console Scaleway, ouvrez votre bucket pour voir les fichiers

#Conclusion

La configuration de Scaleway Object Storage avec Dokploy offre une solution de stockage performante, économique et souveraine pour votre application Laravel/Nuxt. Scaleway s'avère être un excellent choix pour une audience ciblant le Cameroun, avec des coûts de transfert jusqu'à 9 fois inférieurs à AWS S3 et une latence optimisée via ses datacenters européens.

#Récapitulatif des bénéfices

Bénéfice Description
Économie Stockage à 0,008€/Go/mois et egress à 0,01€/Go
Performance Datacenters européens proches de l'Afrique de l'Ouest
Souveraineté Données hébergées en Europe, conformes RGPD
Simplicité Compatibilité S3 native avec Laravel et Dokploy
Fiabilité Classe Standard One Zone avec 750 Go gratuits pendant 90 jours

#Ressources utiles