Aller au contenu

Connecteurs d'hébergement

Configurez l'emplacement de publication des sites web construits par Silex.

Les connecteurs d'hébergement s'activent et se configurent entièrement via les variables d'environnement ci-dessous (HOSTING_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 d'hébergement gèrent la publication : ils reçoivent le HTML, le CSS et les ressources compilés et les déploient vers une URL accessible. Silex inclut un connecteur intégré pour héberger les sites :

  • GitLab Pages : publication automatique sur GitLab Pages via CI/CD

Un connecteur de système de fichiers (fs) existe aussi. Il sert uniquement au développement de Silex.

Contrairement aux connecteurs de stockage, l'hébergement est généralement une opération unidirectionnelle : Silex publie vers le connecteur mais ne télécharge pas depuis celui-ci.

Prérequis

Hébergement par système de fichiers (développement uniquement)

Le connecteur fs écrit les fichiers publiés dans SILEX_FS_HOSTING_ROOT. 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.

Hébergement GitLab Pages

Publication automatique sur GitLab Pages via CI/CD.

Prérequis

  1. Dépôt GitLab dans votre connecteur de stockage
  2. Pipeline CI/CD qui exécute build awesome et construit le site
  3. GitLab Pages activé pour votre projet

Installation

HOSTING_CONNECTORS=gitlab
GITLAB_CLIENT_ID=your-app-id
GITLAB_CLIENT_SECRET=your-app-secret
GITLAB_DOMAIN=https://gitlab.com

Même application OAuth que le connecteur de stockage GitLab.

Fonctionnement

  1. L'utilisateur se connecte avec GitLab (OAuth)
  2. Le site web est stocké dans un dépôt GitLab
  3. Lorsque l'utilisateur publie, Silex :
  4. Commite le code source du site dans le dépôt
  5. Déclenche le pipeline CI/CD (.gitlab-ci.yml)
  6. Le pipeline exécute sh build.sh (la compilation build awesome, générée depuis build.json)
  7. Le pipeline déploie le dossier _site/ sur GitLab Pages
  8. Le site est accessible à https://username.gitlab.io/project-name

.gitlab-ci.yml

Silex génère la configuration CI à chaque publication ; elle ne fait que lancer sh build.sh et ne doit pas être éditée. Pour personnaliser le build, éditez build.json. Consultez Personnaliser le build.

Domaine personnalisé

Dans les paramètres de votre projet GitLab :

  1. Allez dans Deployments → Pages
  2. Cliquez sur New domain
  3. Saisissez votre domaine (par ex. my-site.com)
  4. Suivez les instructions de configuration DNS

Publier en FTP ou en zip

Le serveur Silex n'a plus de connecteur FTP ni de connecteur de téléchargement : retirez donc ftp et download de HOSTING_CONNECTORS lors de la mise à jour. Le build s'exécute sur la forge : de là, build.json peut envoyer le site sur un serveur FTP ou SFTP, et la forge garde un zip de chaque build. Voir Publier sur votre propre hébergeur et Récupérer votre site dans un fichier zip. Silex Desktop peut aussi publier en FTP ou SFTP.

Gestion des tâches

Les connecteurs d'hébergement reçoivent un jobManager pour suivre la progression de la publication :

interface JobManager {
  addJob(data: JobData): string
  setJobData(jobId: string, data: JobData): void
  getJobData(jobId: string): JobData | null
}

Le connecteur met à jour l'état de la tâche au fur et à mesure de la publication. Consultez les événements du serveur pour écouter le cycle de vie de la publication.

Dépannage

GitLab Pages non déployé

Vérifiez : - .gitlab-ci.yml existe dans le dépôt - CI/CD est activé dans les paramètres du projet GitLab - Le pipeline a réussi (vérifiez Build → Pipelines) - Pages est activé (Deployments → Pages)

Voir aussi

Éditer cette page sur GitLab