Déployer

Deployer est un outil de déploiement gratuit et open-source écrit en PHP par Anton Medvedev. Il vous aide à déployer facilement votre application PHP sur un serveur. En automatisant les tâches de déploiement courantes telles que l’extraction de code...

Déployer

Deployer est un outil de déploiement gratuit et open-source écrit en PHP par Anton Medvedev. Il vous aide à déployer facilement votre application PHP sur un serveur. En automatisant les tâches de déploiement courantes telles que l’extraction de code, l’exécution de migrations et l’effacement des caches, Deployer réduit le risque d’erreur humaine et garantit des déploiements cohérents et reproductibles dans tous les environnements.

Fonctionnalités

  • Possibilité de configurer votre serveur, d’installer un pare-feu, d’installer PHP et MySQL ou Postgres, de configurer HTTPS, etc.
  • Déploiements sans temps d’arrêt avec la possibilité de revenir à la version précédente.
  • Des recettes prêtes à l’emploi pour la plupart des frameworks et applications (y compris une recette pour Laravel).

Installation

Installez Deployer à l’aide de Composer :

composer global require deployer/deployer

Une fois installé, accédez au répertoire de votre projet et exécutez :

dep init

Après avoir répondu à quelques questions, cela créera un fichier ou pour votre recette de déploiement. Ce fichier définit les hôtes, les tâches et les dépendances vis-à-vis d’autres recettes. deploy.php deploy.yaml

Les tâches sont définies à l’aide de la fonction. Vous pouvez également décrire une tâche à l’aide de la fonction. task desc

Il est recommandé d’utiliser une clé d’identité ou une clé privée lors de la connexion à un serveur. Vous pouvez l’ajouter à votre fichier. ~/.ssh/config

Ensuite, exécutez la commande suivante pour provisionner votre serveur :

dep provision

La commande provision vous demandera les versions de PHP, les préférences de base de données et d’autres exigences et installera tout ce qui est nécessaire pour exécuter votre application.

Enfin, vous pouvez déployer votre projet avec :

dep deploy

Une fois votre premier déploiement réussi, votre chemin de déploiement se présente comme suit :

~/www                          // deploy_path
 |- current -> releases/1      // Symlink to current release
 |- releases                   // Directory for all releases
    |- 1                       // Latest release
       |- ...
       |- .env -> shared/.env  // Symlink to shared .env file
 |- shared                     // Shared files between releases
    |- ...
    |- .env                    // Shared .env file
 |- .dep                       // Deployer configuration files

De plus, vous devrez modifier la configuration de votre serveur Web pour servir votre application à partir de l’annuaire. Un exemple de configuration pour Nginx pourrait être le suivant : current

root /home/deployer/www/current/public;
index index.php;
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Exemple de fichier deploy.php

namespace Deployer;
 
host('my-server')
    ->set('hostname', 'my-server.org')
       ->set('deploy_path', '~/www');
    ->set('remote_user', 'deployer');
 
desc('Define my first task');
task('task_a', function () {
    run('whoami');
});
 
desc('Run npm build process');
task('task_b', function () {
    cd('{{release_path}}');
    run('npm install');
    run('npm run prod');
});
 
// Group tasks
desc('Deploys your project');
task('deploy', [
    'task_a',
    'task_b',
]);

Deployer peut également être configuré pour fonctionner avec GitHub Actions ou GitLab CI/CD.

Pour en savoir plus, consultez la documentation et le code source sur GitHub.

Steven KOULO
Steven KOULODéveloppeur Fullstack

Besoin d'un développeur pour votre prochain projet ? Je suis disponible pour des missions freelance.

Me contacter