Déploiement en un clic et CapRover¶
Déployez Silex sur un serveur CapRover, soit avec l'app en un clic, soit depuis le code source.
Vue d'ensemble¶
CapRover est une plateforme conviviale pour auto-héberger des apps Docker sur votre propre serveur. Elle gère le SSL, les logs et les volumes persistants depuis un tableau de bord web. La prise en charge d'autres plateformes est sur la roadmap.
Il y a deux façons de faire tourner Silex sur CapRover :
- Déployer depuis le code source (recommandé pour la dernière version). Le dépôt contient un
captain-definitionà sa racine qui compile l'image depuis leDockerfileracine. Cela suit toujours le code actuel. - App en un clic (la plus rapide, mais figée). Le catalogue one-click de CapRover propose une app
silex-platform. Elle tire une image Docker figée qui ne suit pas le monorepo. Utilisez-la pour un essai rapide, mais préférez le déploiement depuis le code source pour une instance à jour.
Déployer depuis le code source (recommandé)¶
Installez le CLI CapRover et déployez le dépôt cloné :
npm install -g caprover
git clone --recurse-submodules https://github.com/silexlabs/Silex.git
cd Silex
caprover deploy
Le CLI utilise le captain-definition racine, qui compile le Dockerfile racine. Dans le tableau de bord CapRover, définissez les variables d'environnement sur l'app, activez HTTPS et ajoutez un volume persistant.
App en un clic (image figée)¶
- Ouvrez votre tableau de bord CapRover sur
https://captain.votre-domaine.com - Allez dans Apps → Create an app → One-Click Apps
- Cherchez silex et sélectionnez silex-platform
- Remplissez les champs de configuration
- Cliquez sur Deploy
CapRover tire l'image, configure l'app et met en place le SSL automatiquement.
L'image en un clic est figée et ne reçoit pas les mises à jour du monorepo. Pour les nouvelles fonctionnalités et correctifs, déployez plutôt depuis le code source.
Variables d'environnement¶
| Variable | Exemple | Rôle |
|---|---|---|
SILEX_SESSION_SECRET |
(aléatoire, 32+ caractères) | Clé de chiffrement de session, en générer une nouvelle par déploiement |
SILEX_URL |
https://silex.example.com | URL publique visitée |
SILEX_PORT |
6805 | Port interne |
STORAGE_CONNECTORS |
gitlab | Backend de stockage : fs, gitlab, ftp (séparés par des virgules, sans espace) |
HOSTING_CONNECTORS |
gitlab,download | Backend de publication : fs, gitlab, ftp, download (séparés par des virgules, sans espace) |
Générez le secret de session :
Intégration GitLab¶
STORAGE_CONNECTORS=gitlab
HOSTING_CONNECTORS=gitlab,download
GITLAB_CLIENT_ID=votre-id-app-oauth
GITLAB_CLIENT_SECRET=votre-secret-app-oauth
GITLAB_DOMAIN=gitlab.com
Vous pouvez connecter jusqu'à deux instances GitLab en ajoutant les variables GITLAB2_* et en ajoutant gitlab2 aux listes de connecteurs, par exemple gitlab.com en primaire et un GitLab auto-hébergé ou Framagit en secondaire. Voir Connecteurs de stockage pour la configuration OAuth.
Stack auto-hébergée complète¶
Vous pouvez héberger toute la stack sur CapRover, chaque brique disponible en app : Silex pour le design, GitLab pour le stockage et la publication, et WordPress (ou un autre CMS) comme source de données pour le contenu dynamique. Reliez-les via les variables d'environnement ci-dessus.
YunoHost (bientôt)¶
La prise en charge de YunoHost est prévue mais pas encore disponible. Votez pour sur la roadmap.
Autres plateformes¶
La prise en charge d'autres plateformes en un clic (Dokku, Coolify, Sandstorm, etc.) est en discussion sur la roadmap. Votez et commentez pour aider à prioriser.
Persistance des données¶
Ajoutez un volume persistant dans CapRover pour les chemins de stockage et d'hébergement (définis avec SILEX_FS_ROOT et SILEX_FS_HOSTING_ROOT). Les données persistent entre les redémarrages et les mises à jour de l'app. Sauvegardez régulièrement depuis le tableau de bord.
SSL/HTTPS¶
CapRover provisionne et renouvelle les certificats SSL via Let's Encrypt. Activez HTTPS sur l'app, puis définissez SILEX_URL sur votre domaine HTTPS :
Dépannage¶
L'app ne démarre pas¶
Consultez les logs dans le tableau de bord CapRover (page de l'app → Logs). Problèmes fréquents :
SILEX_SESSION_SECRETmanquant ou trop court- Port déjà utilisé (en choisir un autre)
- Permissions du volume de stockage (la plateforme s'en charge en général)
Impossible d'uploader de gros fichiers¶
Voir aussi¶
- Installation avec Docker
- Exécution depuis le code source avec Node.js
- Configuration serveur — API de config serveur