Aller au contenu

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 :

  1. 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 le Dockerfile racine. Cela suit toujours le code actuel.
  2. 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)

  1. Ouvrez votre tableau de bord CapRover sur https://captain.votre-domaine.com
  2. Allez dans AppsCreate an appOne-Click Apps
  3. Cherchez silex et sélectionnez silex-platform
  4. Remplissez les champs de configuration
  5. 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 :

openssl rand -base64 32

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 :

SILEX_URL=https://silex.example.com

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_SECRET manquant 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

SILEX_EXPRESS_JSON_LIMIT=50mb
SILEX_EXPRESS_TEXT_LIMIT=50mb

Voir aussi

Éditer cette page sur GitLab