Configuration du serveur¶
Configurez un Silex auto-hébergé avec des variables d'environnement.
Aperçu¶
Les variables d'environnement sont la façon supportée de configurer un Silex auto-hébergé — elles contrôlent les ports, les URL, les connecteurs, les limites et le SSL, et couvrent la grande majorité des cas. Commencez par là.
Pour ajouter des plugins d'éditeur GrapesJS, on ne touche pas à la config serveur — on utilise la config client.
Silex possède aussi une config serveur interne (le SaaS complet : dashboard, onboarding, et les connecteurs câblés depuis les variables ci-dessous). Elle est fournie avec Silex et chargée automatiquement — vous ne l'éditez pas.
Prérequis¶
- Un serveur Silex en cours d'exécution (Docker, Node ou auto-hébergé)
- Compréhension des connecteurs de stockage et d'hébergement
Variables d'environnement¶
Toutes les variables d'environnement sont optionnelles sauf SILEX_SESSION_SECRET (recommandé pour la sécurité).
Paramètres principaux du serveur¶
| Variable | Valeur par défaut | Rôle |
|---|---|---|
SILEX_PORT |
6805 | Port d'écoute du serveur |
SILEX_HOST |
localhost | Nom d'hôte (0.0.0.0 pour l'accès distant) |
SILEX_PROTOCOL |
http | http ou https (avant le reverse proxy) |
SILEX_URL |
${PROTOCOL}://${HOST}:${PORT} |
URL publique visitée par les utilisateurs |
SILEX_DEBUG |
false | Mettre à true pour les journaux détaillés et le rechargement de la configuration |
SILEX_SESSION_NAME |
silex-session | Nom du cookie de session |
SILEX_SESSION_SECRET |
(aucune) | Clé aléatoire pour le chiffrement de session ; minimum 32 caractères |
Limites des requêtes Express¶
Pour les envois de fichiers volumineux ou les données :
| Variable | Valeur par défaut | Rôle |
|---|---|---|
SILEX_EXPRESS_JSON_LIMIT |
100mb | Taille maximale du corps JSON |
SILEX_EXPRESS_TEXT_LIMIT |
100mb | Taille maximale du corps texte |
SILEX_EXPRESS_URLENCODED_LIMIT |
100mb | Taille maximale du corps encodé en formulaire |
Les valeurs par défaut ci-dessus viennent du
.env.defaultfourni. L'image Docker les abaisse à1mb/10mb/1mb— augmentez-les là si vous envoyez de gros fichiers.
SSL/HTTPS¶
Pour le HTTPS sans reverse proxy :
| Variable | Valeur par défaut | Rôle |
|---|---|---|
SILEX_SSL_PORT |
(aucune) | Port HTTPS (par ex. 443) |
SILEX_SSL_PRIVATE_KEY |
(aucune) | Chemin vers le fichier de clé privée |
SILEX_SSL_CERTIFICATE |
(aucune) | Chemin vers le fichier de certificat |
SILEX_FORCE_HTTPS |
false | Rediriger HTTP vers HTTPS |
SILEX_FORCE_HTTPS_TRUST_XFP_HEADER |
false | Faire confiance à l'en-tête X-Forwarded-Proto du reverse proxy |
CORS et configuration client¶
| Variable | Valeur par défaut | Rôle |
|---|---|---|
SILEX_CORS_URL |
(aucune) | Autoriser les requêtes depuis cette origine (par ex. https://editor.example.com) |
SILEX_CLIENT_CONFIG |
(aucune) | Chemin vers un fichier de config client — voir Configuration client pour ajouter des plugins GrapesJS |
Connecteurs¶
| Variable | Valeur par défaut | Rôle |
|---|---|---|
STORAGE_CONNECTORS |
ftp | Liste séparée par des virgules : fs, gitlab, ftp |
HOSTING_CONNECTORS |
ftp,download | Liste séparée par des virgules : fs, gitlab, ftp, download |
SILEX_FS_ROOT |
<cwd>/silex/storage |
Chemin du connecteur de stockage fs |
SILEX_FS_HOSTING_ROOT |
<cwd>/silex/hosting |
Chemin du connecteur d'hébergement fs |
FTP_STORAGE_PATH |
(aucune) | Chemin racine sur le serveur FTP pour le stockage |
FTP_HOSTING_PATH |
(aucune) | Chemin racine sur le serveur FTP pour l'hébergement |
GITLAB_DISPLAY_NAME |
(aucune) | Nom d'affichage du connecteur GitLab principal |
GITLAB_DOMAIN |
(aucune) | Domaine de l'instance GitLab (ex : gitlab.com) |
GITLAB_CLIENT_ID |
(aucune) | ID de l'application OAuth pour GitLab |
GITLAB_CLIENT_SECRET |
(aucune) | Secret de l'application OAuth pour GitLab |
GITLAB2_DISPLAY_NAME |
(aucune) | Nom d'affichage d'un second connecteur GitLab |
GITLAB2_DOMAIN |
(aucune) | Domaine de la seconde instance GitLab |
GITLAB2_CLIENT_ID |
(aucune) | ID de l'application OAuth pour le second GitLab |
GITLAB2_CLIENT_SECRET |
(aucune) | Secret de l'application OAuth pour le second GitLab |
Voir Connecteurs de stockage et Connecteurs d'hébergement pour choisir les connecteurs et configurer l'OAuth GitLab.
Intégration NocoDB¶
Utilisé uniquement par le flux d'onboarding SaaS (
server/deploy) pour stocker les inscriptions. Inutile pour l'auto-hébergement — laissez vide et l'onboarding reste désactivé.
| Variable | Valeur par défaut | Rôle |
|---|---|---|
NOCO_URL |
(aucune) | URL de l'instance NocoDB |
NOCO_API_KEY |
(aucune) | Clé API NocoDB |
NOCO_TABLE |
(aucune) | Nom de la table NocoDB pour les métadonnées des sites |
Étendre le serveur¶
Les connecteurs et options ci-dessus sont entièrement pilotés par des variables d'environnement — c'est la façon supportée de configurer une instance.
Il n'y a aucun moyen supporté d'injecter du code ou des connecteurs côté serveur dans une instance Docker ou from-source. Un tel code devrait faire un require() sur les internes de Silex sous dist/…, qui ne sont pas une API publique et changent d'une version à l'autre. (Le package npm @silexlabs/silex qui rendait cela possible est en cours de retrait au profit de l'image Docker et des builds from-source.)
Si les connecteurs intégrés et les variables d'environnement ne couvrent pas votre besoin :
- Pour étendre l'éditeur — blocs, panneaux, plugins GrapesJS — utilisez la config client.
- Pour un nouveau connecteur de stockage/hébergement ou un comportement serveur, ouvrez une issue ou lancez une discussion. Les nouveaux connecteurs sont ajoutés à Silex lui-même pour que tout le monde en profite.
Dépannage¶
Les connecteurs ne se chargent pas¶
Vérifiez que les variables d'environnement sont définies :
Au démarrage, Silex journalise chaque connecteur ajouté (> Add storage connector from env var: …) — regardez les logs du serveur pour voir ce qui a réellement été chargé.
Voir aussi¶
- Configuration client — ajouter des plugins d'éditeur GrapesJS
- Connecteurs de stockage
- Connecteurs d'hébergement
- Comment fonctionne le CMS — Concepts du CMS