Aller au contenu

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

  1. Instance GitLab (gitlab.com ou auto-hébergée)
  2. Application OAuth enregistrée dans GitLab
  3. Variables d'environnement définies sur votre serveur Silex

Configuration de l'application OAuth

Sur votre instance GitLab :

  1. Allez dans Admin → Applications (ou votre profil → Settings → Applications)
  2. Cliquez sur New application
  3. Remplissez :
  4. Name : Silex
  5. Redirect URI : https://your-silex.com/api/connector/login/callback?type=storage&connectorId=gitlab
  6. Scopes : api, write_repository, read_user
  7. 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é :

GITLAB_DOMAIN=https://gitlab.mycompany.com

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.json dans le dépôt
  • Métadonnées du site web : .website.json dans le dépôt
  • Ressources : répertoire assets/
  • Les utilisateurs ne voient que leurs propres dépôts

Structure du dépôt :

my-silex-website/
├── website.json
├── .website.json
└── assets/
    ├── logo.png
    └── hero.jpg

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 :

https://your-silex.com/api/connector/auth?type=storage&connectorId=gitlab

Voir aussi

Éditer cette page sur GitLab