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¶
- Compréhension de la configuration serveur
- Compréhension des connecteurs de stockage
- Pour GitLab Pages : un compte GitLab avec CI/CD activé
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¶
- Dépôt GitLab dans votre connecteur de stockage
- Pipeline CI/CD qui exécute build awesome et construit le site
- 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¶
- L'utilisateur se connecte avec GitLab (OAuth)
- Le site web est stocké dans un dépôt GitLab
- Lorsque l'utilisateur publie, Silex :
- Commite le code source du site dans le dépôt
- Déclenche le pipeline CI/CD (
.gitlab-ci.yml) - Le pipeline exécute
sh build.sh(la compilation build awesome, générée depuisbuild.json) - Le pipeline déploie le dossier
_site/sur GitLab Pages - 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 :
- Allez dans Deployments → Pages
- Cliquez sur New domain
- Saisissez votre domaine (par ex.
my-site.com) - 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¶
- Configuration des connecteurs de stockage
- Configuration serveur
- Personnaliser le build — build.json et le build de publication
- Deploiement vers d'autres plateformes d'hebergement — Déploiement vers d'autres plateformes