Aller au contenu
Vimonto Deploy

Automatisation

Écrivez-le une fois, exécutez-le partout

Lancez vos déploiements depuis votre pipeline et faites échouer le build quand ils échouent. Exécutez le même script bash sur tous vos serveurs en un clic, et informez vos propres systèmes de chaque déploiement.

Quatre façons de lancer un déploiement sans cliquer

  • Déploiement à chaque push

    Liez un dépôt GitHub, GitLab ou Bitbucket et un webhook est ajouté pour vous. Les push sur la branche du site déclenchent un déploiement ; les autres branches sont ignorées.

  • URL de déploiement

    Un seul POST vers une URL secrète, sans jeton. Elle répond 202, 409 si un déploiement est en cours, ou 422. Régénérez-la à tout moment.

  • CLI deploy

    deploy deploy shop.example.com --watch lance le déploiement, affiche sa sortie en continu et se termine avec son résultat.

  • API REST

    Créez un déploiement en POST, puis suivez sa tâche jusqu’à ce qu’elle réussisse ou échoue. JSON en entrée, JSON en sortie, 120 requêtes par minute et par jeton.

CLI

Déployez depuis GitHub Actions en une étape

Le CLI est un unique fichier PHP sans dépendances, téléchargé depuis votre adresse Vimonto Deploy à /cli/deploy. Les runners Ubuntu de GitHub ont déjà PHP : il n’y a rien à installer.

Créez un jeton avec la seule portée Déployer et stockez-le comme secret. Avec --watch, un déploiement raté fait passer le pipeline au rouge. La même commande fonctionne dans GitLab CI.

.github/workflows/deploy.yml
name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy shop.example.com
        run: php bin/deploy deploy shop.example.com --watch
        env:
          DEPLOY_TOKEN: ${{ secrets.DEPLOY_TOKEN }}
          DEPLOY_URL: https://deploy.example.com
          DEPLOY_ORG: acme

API REST

Une API pour vos propres scripts

Les jetons d’API personnels agissent en votre nom : ils peuvent faire ce que votre rôle autorise, sur les serveurs que vos équipes vous attribuent, dans les portées que vous choisissez. Lecture consulte, Déployer lance et suit les déploiements pour la CI, et Écriture crée et supprime aussi des bases de données et lance sauvegardes et recettes. Les jetons expirent après 30, 90 ou 365 jours, ou jamais, et seul leur hash est stocké.

Les opérations longues tournent comme une tâche que vous pouvez interroger avec GET /tasks/<id> pour connaître son statut, son étape, sa progression et sa sortie. Les erreurs sont en JSON avec un message, et les réponses 409 contiennent l’ID de la tâche en cours.

  • Lister serveurs, sites et déploiements ; trouver un site par son domaine
  • Lancer des déploiements et suivre leurs tâches
  • Créer et supprimer des bases de données
  • Lister les sauvegardes et en lancer une immédiatement
  • Lister les recettes et en exécuter une sur plusieurs serveurs

Référence de l’API

MCP

Laissez votre assistant IA déployer

Vimonto Deploy intègre un serveur MCP, pour que des assistants comme Claude Code, Claude Desktop, Cursor et VS Code puissent lister vos serveurs et sites, déployer un site et suivre le déploiement, lire la sortie d’une tâche échouée, créer des bases de données et lancer des sauvegardes et des recettes.

Il se connecte avec un jeton d’API personnel : l’assistant peut faire exactement ce que les portées du jeton et votre rôle permettent, sur les serveurs auxquels vous avez accès. Rien ne peut être supprimé par ce biais.

Connecter un assistant

Recettes

Des scripts bash enregistrés pour tous vos serveurs

Une recette est un script bash que vous écrivez une fois et exécutez sur un ou plusieurs serveurs actifs, en root ou avec l’utilisateur du serveur. Chaque serveur a sa propre tâche, vous suivez donc chaque sortie séparément, et vous pouvez recevoir un rapport unique par e-mail quand tout est terminé.

Des variables comme {{server_name}}, {{ip_address}}, {{private_ip_address}} et {{server_type}} sont remplies pour chaque serveur juste avant l’exécution du script.

Recette : libérer de l’espace disque
set -e
echo "Cleaning up on {{server_name}} ({{ip_address}})"
apt-get autoremove -y
journalctl --vacuum-time=14d
df -h /

Hooks de déploiement

Informez vos propres systèmes de chaque déploiement

Activez le Hook de déploiement d’un site et Vimonto Deploy envoie un POST en JSON à votre endpoint HTTPS après chaque déploiement, réussi ou non, sans retarder le déploiement. Utilisez-le pour un bot de chat, un changelog ou un outil d’automatisation, et envoyez Tester le hook de déploiement pour le vérifier.

Vous préférez l’e-mail ? Ajoutez jusqu’à 10 adresses, y compris hors de l’organisation, qui reçoivent un e-mail chaque fois qu’un déploiement du site échoue.

Contenu du hook de déploiement (abrégé)
{
    "event": "deployment.succeeded",
    "site": { "id": 12, "domain": "shop.example.com" },
    "server": { "id": 3, "name": "web-1" },
    "deployment": {
        "status": "succeeded",
        "branch": "main",
        "commit_message": "Fix the checkout total"
    }
}

Questions sur l’automatisation

Faut-il utiliser l’URL de déploiement, le CLI ou l’API ?

L’URL de déploiement est la plus simple : un seul curl -X POST, sans jeton, mais votre pipeline ne sait pas si le déploiement a réussi. Le CLI avec --watch attend et fait échouer le job si le déploiement échoue. L’API vous offre la même chose dans vos propres scripts.

Puis-je créer des serveurs ou des sites via l’API ?

Pas encore. L’API lit les serveurs, sites, déploiements, bases de données, sauvegardes, recettes et tâches ; lance des déploiements ; crée et supprime des bases de données ; et lance sauvegardes et recettes.

De quoi le CLI a-t-il besoin ?

De PHP 8.2 ou plus récent avec l’extension curl, et d’un jeton d’API. Il fonctionne sous macOS, Linux et WSL, et n’a besoin d’aucun accès SSH à vos serveurs : il ne parle qu’à l’API, en HTTPS.

Pourquoi mon pipeline reçoit-il un 409 ?

Un déploiement du site était déjà en cours, souvent parce que le déploiement à chaque push en a lancé un. Désactivez Déployer à chaque push pour les sites déployés par la CI.

Qui peut exécuter des recettes ?

Les propriétaires, administrateurs, managers et développeurs. Les membres limités à leurs équipes ne peuvent exécuter des recettes que sur leurs propres serveurs. Voir sécurité et équipes.

Votre prochain déploiement pourrait être en ligne avant que votre café ne refroidisse.

Créez une organisation, connectez un serveur et poussez. C'est tout.