xsshend 0.5.2

Simple CLI tool for uploading files to multiple SSH servers
Documentation
---
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>