Initial vault setup
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
---
|
||||
title: Vito
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, deployment, laravel, php, paas]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/vitodeploy/vito]
|
||||
---
|
||||
|
||||
# 🚀 Vito
|
||||
|
||||
> **PaaS self-hosted pour Laravel/PHP** — gérez vos serveurs, sites et applications PHP depuis une seule interface, façon Cloudways ou RunCloud mais en open source.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [vitodeploy.com](https://vitodeploy.com/) |
|
||||
| **GitHub** | [vitodeploy/vito](https://github.com/vitodeploy/vito) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | PHP (Laravel 11) + Livewire |
|
||||
| **Étoiles GitHub** | 3,1k ⭐ |
|
||||
| **Catégorie** | [[cat-deployment\|Deployment]] |
|
||||
| **Cible** | Sites Laravel, WordPress, PHP générique |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Vito** (anciennement *Vitodeploy*) est une **plateforme PaaS spécialisée PHP** qui se distingue des PaaS généralistes (Coolify, CapRover) en intégrant en profondeur les outils de l'écosystème Laravel : queue workers, scheduler (cron), Redis, Horizon, Octane, bref tout ce qu'un développeur Laravel attend sans avoir à le configurer à la main.
|
||||
|
||||
L'architecture est en **deux parties** : une **instance centrale Vito** (l'UI) qui orchestre, et un **Worker** déployé sur chaque serveur cible via SSH. Cela permet de gérer depuis la même interface un VPS à 5 €, un dédié OVH et un bare metal Hetzner, sans qu'ils soient dans le même datacenter. Le provisionnement passe par SSH (root ou sudo) : Vito installe Nginx, PHP-FPM, MariaDB/PostgreSQL, Redis, Supervisor, et configure les services tout seul.
|
||||
|
||||
**Fonctionnalités principales** :
|
||||
|
||||
- ✅ **Multi-serveurs** : pilotez des dizaines de serveurs depuis une seule UI
|
||||
- ✅ **Sites Laravel** : déploiement Git (branche configurable), artisan migrate, queue worker, scheduler automatique
|
||||
- ✅ **Sites WordPress, PHP, Node** : profils de déploiement adaptés
|
||||
- ✅ **SSL automatique** via Let's Encrypt (DNS-01 ou HTTP-01)
|
||||
- ✅ **Firewall et SSH** : Vito gère les règles UFW et la config SSH
|
||||
- ✅ **Monitoring intégré** : load, RAM, disque, services down
|
||||
- ✅ **Notifications** : Telegram, Discord, email
|
||||
- ✅ **API REST** + webhooks pour intégration CI/CD
|
||||
|
||||
**Public cible** : agences web hébergeant plusieurs clients Laravel, freelances PHP, petites équipes qui veulent remplacer Plesk/Cloudways.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Prérequis
|
||||
- Un serveur (VPS, dédié) avec Ubuntu 22.04+ ou Debian 12+
|
||||
- Accès root ou sudo
|
||||
- Un domaine pointant vers le serveur
|
||||
|
||||
### Via Docker (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
services:
|
||||
vito:
|
||||
image: vitodeploy/vito:latest
|
||||
container_name: vito
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- vito-data:/var/www/.vito
|
||||
- ./ssh-keys:/root/.ssh
|
||||
environment:
|
||||
- APP_URL=https://vito.example.com
|
||||
- DB_HOST=db
|
||||
- DB_DATABASE=vito
|
||||
- DB_USERNAME=vito
|
||||
- DB_PASSWORD=changeme
|
||||
depends_on:
|
||||
- db
|
||||
db:
|
||||
image: mysql:8.0
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: vito
|
||||
MYSQL_USER: vito
|
||||
MYSQL_PASSWORD: changeme
|
||||
MYSQL_ROOT_PASSWORD:rootpass
|
||||
volumes:
|
||||
- vito-db:/var/lib/mysql
|
||||
volumes:
|
||||
vito-data:
|
||||
vito-db:
|
||||
```
|
||||
|
||||
### Installation manuelle (bare metal)
|
||||
|
||||
```bash
|
||||
# Sur Ubuntu 22.04+
|
||||
curl -sS https://vitodeploy.com/install.sh | sudo bash
|
||||
```
|
||||
|
||||
Suivre ensuite l'assistant web pour créer le compte admin et connecter le premier serveur.
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
- **Connexion aux serveurs cibles** : ajouter la clé SSH publique générée par Vito dans `~/.ssh/authorized_keys` du serveur cible
|
||||
- **DNS** : créer un wildcard `*.example.com` pointant vers le serveur
|
||||
- **Profile de déploiement** : choisir Laravel/WordPress/Node, le profil conditionne l'installation des extensions PHP et la config Nginx
|
||||
- **Backups** : configurer une destination S3 (ou B2, ou local) et la fréquence
|
||||
- **Notifications** : ajouter un webhook Telegram/Discord pour recevoir les alertes
|
||||
|
||||
## 🔗 Alternatives
|
||||
|
||||
- **[[app-cloudpanel]]** — panel PHP/Node généraliste (pas orienté Laravel spécifiquement)
|
||||
- **Cloudways** — PaaS PHP managé (propriétaire, ~14 $/mois)
|
||||
- **RunCloud** — gestion de serveur PHP (propriétaire)
|
||||
- **Plesk / cPanel** — vétérans du hosting mutualisé, plus lourds
|
||||
- **Laravel Forge** — l'original, mais propriétaire et cher (19 $/mois)
|
||||
|
||||
## 🔒 Sécurité
|
||||
|
||||
- ⚠️ **Changer le mot de passe DB** par défaut du `docker-compose.yml` ci-dessus
|
||||
- **Activer 2FA** sur le compte admin Vito
|
||||
- **Restreindre l'API** : Vito expose une API REST, mettre un reverse proxy avec auth (ex. Authelia) devant
|
||||
- **Fail2ban** : Vito installe UFW mais pas fail2ban par défaut, l'ajouter pour protéger SSH
|
||||
- **Isolation des sites** : sur un serveur mutualisé entre plusieurs clients, vérifier que les pools PHP-FPM tournent sous des utilisateurs Unix distincts
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Site officiel](https://vitodeploy.com/)
|
||||
- [Dépôt GitHub](https://github.com/vitodeploy/vito)
|
||||
- [Documentation](https://vitodeploy.com/docs)
|
||||
- [Démo live](https://demo.vitodeploy.com/)
|
||||
|
||||
## 🔗 Pages Liées
|
||||
|
||||
- [[cat-deployment]]
|
||||
- [[app-portainer]]
|
||||
- [[app-cloudpanel]]
|
||||
- [[app-coolify]]
|
||||
- [[cat-docker]]
|
||||
- [[securisation-home-lab]]
|
||||
- [[recettes-docker-compose]]
|
||||
Reference in New Issue
Block a user