Connecteurs de stockage¶
Configurez l'emplacement de stockage des données et ressources des sites web dans Silex.
Les connecteurs de stockage s'activent et se configurent entièrement via les variables d'environnement ci-dessous (
STORAGE_CONNECTORS,GITLAB_*) : c'est la façon supportée sur Docker et depuis les sources. Consultez Configuration serveur → Étendre le serveur si les connecteurs intégrés ne couvrent pas votre besoin.
Aperçu¶
Les connecteurs de stockage gèrent la couche de persistance : sauvegarde du HTML/CSS des sites web, des ressources et des métadonnées. Silex propose une option intégrée pour stocker les sites :
- GitLab : stockage dans des dépôts GitLab avec authentification OAuth
Un connecteur de système de fichiers (fs) existe aussi. Il sert uniquement au développement de Silex.
Le stockage et la publication se configurent séparément. Voir Connecteurs d'hébergement.
Prérequis¶
- Compréhension de la configuration serveur
- Pour GitLab : une instance GitLab et des identifiants d'application OAuth
Stockage par système de fichiers (développement uniquement)¶
Le connecteur fs stocke les sites web sur le disque du serveur, dans SILEX_FS_ROOT, sans comptes utilisateurs. C'est le connecteur par défaut d'un serveur démarré sans configuration, et il ne sert qu'à déboguer Silex. Ne l'utilisez pas pour héberger des sites.
Stockage GitLab¶
Stockez les sites web dans des dépôts GitLab avec authentification par utilisateur.
Prérequis¶
- Instance GitLab (gitlab.com ou auto-hébergée)
- Application OAuth enregistrée dans GitLab
- Variables d'environnement définies sur votre serveur Silex
Configuration de l'application OAuth¶
Sur votre instance GitLab :
- Allez dans Admin → Applications (ou votre profil → Settings → Applications)
- Cliquez sur New application
- Remplissez :
- Name : Silex
- Redirect URI :
https://your-silex.com/api/connector/login/callback?type=storage&connectorId=gitlab - Scopes :
api,write_repository,read_user - Copiez l'Application ID et le Secret
Définir les variables d'environnement¶
STORAGE_CONNECTORS=gitlab
GITLAB_CLIENT_ID=your-app-id
GITLAB_CLIENT_SECRET=your-app-secret
GITLAB_DOMAIN=https://gitlab.com
Pour un GitLab auto-hébergé :
Toujours indiquer le schéma
GITLAB_DOMAIN doit commencer par https://. Silex ajoute les chemins directement
à cette valeur (GITLAB_DOMAIN + /oauth/token) : un simple gitlab.com produit
donc une URL invalide et l'authentification échoue.
Cela fonctionne avec n'importe quelle instance compatible GitLab, pas seulement gitlab.com : un GitLab auto-hébergé, Framagit, JiHuLab et d'autres.
Fonctionnement¶
- Chaque utilisateur se connecte avec son compte GitLab
- Chaque site web est un dépôt dans l'espace de noms GitLab de l'utilisateur
- Données du site web :
website.jsondans le dépôt - Métadonnées du site web :
.website.jsondans le dépôt - Ressources : répertoire
assets/ - Les utilisateurs ne voient que leurs propres dépôts
Structure du dépôt :
Instances GitLab multiples¶
Pour prendre en charge à la fois gitlab.com et une instance auto-hébergée :
STORAGE_CONNECTORS=gitlab,gitlab2
GITLAB_CLIENT_ID=app-id-for-gitlab.com
GITLAB_CLIENT_SECRET=secret-for-gitlab.com
GITLAB_DOMAIN=https://gitlab.com
GITLAB2_CLIENT_ID=app-id-for-self-hosted
GITLAB2_CLIENT_SECRET=secret-for-self-hosted
GITLAB2_DOMAIN=https://gitlab.mycompany.com
Chaque entrée de STORAGE_CONNECTORS obtient son propre bouton dans l'éditeur, étiqueté avec GITLAB_DISPLAY_NAME / GITLAB2_DISPLAY_NAME.
Sites stockés sur FTP¶
Silex n'a plus de connecteur de stockage FTP : retirez donc ftp de STORAGE_CONNECTORS lors de la mise à jour. Les sites restent sur le serveur FTP, avec un dossier par site. Les utilisateurs peuvent télécharger le dossier d'un site et l'ouvrir dans Silex Desktop. Voir Déplacer vers Silex Desktop un site stocké sur FTP.
Dépannage¶
L'OAuth GitLab échoue¶
Vérifiez que :
- L'application OAuth est enregistrée dans GitLab
- L'URI de redirection correspond exactement : https://your-silex.com/api/connector/login/callback?type=storage&connectorId=gitlab
- Les identifiants sont corrects : GITLAB_CLIENT_ID et GITLAB_CLIENT_SECRET
- Le domaine est défini : GITLAB_DOMAIN=https://gitlab.com
Testez l'OAuth en visitant l'URL de connexion dans un navigateur :
Voir aussi¶
- Configuration serveur
- Connecteurs de publication
- Publier sur GitLab — Flux de publication