---
layout: home
title: "xsshend - Téléversement SSH simple et efficace"
description: "Outil Rust moderne pour le téléversement de fichiers vers multiples serveurs SSH avec interface CLI"
---
<div class="section">
<h2>🔧 Installation rapide</h2>
<div class="highlight">
<pre><code>cargo install xsshend</code></pre>
</div>
<p>xsshend est un outil Rust moderne pour le téléversement de fichiers vers multiples serveurs SSH. Interface en ligne de commande simple et intuitive avec suivi en temps réel.</p>
</div>
<div class="section">
<h2>✨ Fonctionnalités principales</h2>
<div class="features">
<div class="feature">
<h3>🎯 Interface CLI simple</h3>
<p>Commandes intuitives avec filtrage avancé par environnement, région et type de serveur</p>
</div>
<div class="feature">
<h3>📊 Transferts en temps réel</h3>
<p>Barres de progression et suivi détaillé pour chaque serveur</p>
</div>
<div class="feature">
<h3>⚡ Performance optimisée</h3>
<p>Architecture simplifiée suivant les principes SOLID pour une efficacité maximale</p>
</div>
<div class="feature">
<h3>🔐 Sécurité intégrée</h3>
<p>Découverte automatique des clés SSH avec support complet de ssh-agent</p>
</div>
<div class="feature">
<h3>🎯 Configuration assistée</h3>
<p>Commande init pour création et configuration automatique</p>
</div>
<div class="feature">
<h3>🧪 Tests complets</h3>
<p>93 tests automatisés garantissent la fiabilité du code</p>
</div>
</div>
</div>
<div class="section">
<h2>🚀 Démarrage rapide</h2>
<div class="highlight">
<pre><code># Installation
cargo install xsshend
# Initialisation avec assistant
xsshend init
# Lister les serveurs disponibles
xsshend list
# Téléversement simple
xsshend upload fichier.txt
# Filtrage par environnement
xsshend upload app.jar --env Production
# Mode simulation
xsshend upload deploy.sh --env Production --dry-run</code></pre>
</div>
</div>
<div class="section">
<h2>📚 Documentation complète</h2>
<div style="display: flex; flex-wrap: wrap; gap: 10px;">
<a href="usage.html" class="btn">📖 Guide d'utilisation</a>
<a href="configuration.html" class="btn btn-secondary">⚙️ Configuration</a>
<a href="ssh-keys.html" class="btn btn-secondary">🔑 Gestion des clés SSH</a>
<a href="cicd.html" class="btn btn-secondary">🚀 CI/CD</a>
<a href="LAB-GUIDE.html" class="btn btn-secondary" style="background-color: #28a745; color: white;">🧪 Guide du Lab</a>
</div>
</div>
<div class="section">
<h2>🎮 Interface CLI</h2>
<p>Interface en ligne de commande avec filtrage hiérarchique :</p>
<div class="highlight">
<pre><code># Structure hiérarchique des serveurs
Production/
├── Region-A/
│ ├── Public/ # --env Production --region Region-A --type Public
│ │ ├── WEB_SERVER_01 → web01@prod-web-01.example.com
│ │ └── API_SERVER_01 → api01@prod-api-01.example.com
│ └── Private/ # --env Production --region Region-A --type Private
│ └── DATABASE_01 → db01@prod-db-01.example.com
└── Region-B/
└── Public/
└── CACHE_SERVER_01 → cache01@prod-cache-01.example.com
# Exemples d'utilisation
xsshend upload config.json --env Production --region Region-A
xsshend upload app.war --env Production --type Public --dest /opt/tomcat/
xsshend upload logs/ --env Staging --dry-run</code></pre>
</div>
</div>
<div class="section">
<h2>⚡ Progression en temps réel</h2>
<div class="highlight">
<pre><code>🚀 Début du téléversement: 1 fichier(s) vers 3 serveur(s)
📂 Destination: /opt/uploads/
🎯 Serveurs ciblés:
• Production:Region-A:Public:WEB_SERVER_01 → web01@prod-web-01.example.com (PROD)
• Production:Region-A:Public:API_SERVER_01 → api01@prod-api-01.example.com (PROD)
• Production:Region-A:Private:DATABASE_01 → db01@prod-db-01.example.com (PROD)
📤 Téléversement de ./myapp.jar en cours...
web01@prod-web-01... [████████████████████████████████] 2.3MB/2.3MB ✅
api01@prod-api-01... [██████████████████ ] 1.5MB/2.3MB ⏳
db01@prod-db-01..... [████████████████████████████ ] 2.1MB/2.3MB ⏳
✅ Téléversement terminé avec succès!
📊 3 serveur(s) - 0 échec(s)</code></pre>
</div>
</div>
<style>
.section {
margin: 30px 0;
padding: 20px;
background: #f9f9f9;
border-radius: 8px;
border-left: 4px solid #667eea;
}
.section h2 {
color: #333;
margin-bottom: 15px;
font-size: 1.5em;
}
.features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
margin: 20px 0;
}
.feature {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.feature h3 {
color: #667eea;
margin-bottom: 10px;
}
</style>