Skip to content

martin-lechene/apache-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Apache Manager

Un gestionnaire Apache VirtualHost cross-platform écrit en Rust, fonctionnant sur Debian/Ubuntu, Windows 11, et autres systèmes Unix.

✨ Fonctionnalités

  • Création de VirtualHosts avec configuration automatique
  • Gestion des sites (enable/disable/list/delete)
  • Support multi-plateforme (Linux/Windows)
  • Détection automatique du système d'exploitation
  • Support PHP (optionnel)
  • Support SSL (optionnel)
  • Interface CLI moderne et colorée
  • Sécurité intégrée (vérification des permissions)

📋 Prérequis

Linux (Debian/Ubuntu)

# Installer Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Installer Apache (si pas déjà installé)
sudo apt-get update
sudo apt-get install apache2

# Installer les dépendances de développement
sudo apt-get install build-essential

Windows 11

  1. Installer Rust
  2. Installer Apache HTTP Server (ou utiliser XAMPP/WAMP)
  3. Installer Visual Studio Build Tools (pour la compilation)

🛠️ Installation

Depuis les sources

# Cloner le repository
git clone <repository-url>
cd apache-manager

# Compiler le projet
cargo build --release

# Installer globalement (optionnel)
cargo install --path .

Le binaire sera disponible dans target/release/apache-manager (ou apache-manager.exe sur Windows).

📖 Utilisation

Créer un nouveau site

# Création basique
apache-manager create example.com

# Avec options personnalisées
apache-manager create example.com \
  --root /var/www/example \
  --php 8.3 \
  --alias www.example.com \
  --port 80 \
  --ssl

# Créer sans activer automatiquement
apache-manager create example.com --no-enable

Lister les sites

apache-manager list

Activer/Désactiver un site

apache-manager enable example.com
apache-manager disable example.com

Supprimer un site

# Avec confirmation
apache-manager delete example.com

# Sans confirmation (force)
apache-manager delete example.com --force

Recharger Apache

apache-manager reload

Vérifier le statut

apache-manager status

🔧 Configuration

Linux

Par défaut, Apache Manager utilise :

  • Sites disponibles : /etc/apache2/sites-available
  • Sites activés : /etc/apache2/sites-enabled
  • Logs : /var/log/apache2
  • Document root par défaut : /var/www/{domain}

Windows

Par défaut, Apache Manager cherche Apache dans :

  • C:\Program Files\Apache24 ou
  • C:\Program Files\Apache2.4

Les chemins sont automatiquement détectés et créés si nécessaire.

🔐 Permissions

Linux

Certaines opérations nécessitent des privilèges root :

# Utiliser sudo
sudo apache-manager create example.com

# Ou exécuter en tant que root
sudo su
apache-manager create example.com

Windows

Sur Windows, exécutez l'invite de commande en tant qu'administrateur pour les opérations nécessitant des privilèges élevés.

📁 Structure des fichiers générés

/etc/apache2/sites-available/example.com.conf  # Configuration VirtualHost
/etc/apache2/sites-enabled/example.com.conf     # Lien symbolique (Linux)
/var/www/example.com/                          # Document root
/var/www/example.com/index.html                # Page par défaut

🎯 Exemples d'utilisation

Créer un site avec PHP 8.3

sudo apache-manager create mysite.com \
  --root /var/www/mysite \
  --php 8.3 \
  --alias www.mysite.com

Créer un site avec SSL

sudo apache-manager create secure-site.com \
  --root /var/www/secure \
  --ssl

Note : Vous devrez configurer les certificats SSL manuellement après la création.

Workflow complet

# 1. Créer le site
sudo apache-manager create example.com

# 2. Vérifier qu'il est activé
apache-manager list

# 3. Si besoin, recharger Apache
sudo apache-manager reload

# 4. Vérifier le statut
apache-manager status

🐛 Dépannage

Erreur "Permission denied"

Linux : Utilisez sudo pour les opérations nécessitant des privilèges root.

Windows : Exécutez l'invite de commande en tant qu'administrateur.

Apache ne se recharge pas

Vérifiez que le service Apache est en cours d'exécution :

# Linux
sudo systemctl status apache2

# Windows
sc query Apache2.4

Site non trouvé

Vérifiez que le site existe dans sites-available :

apache-manager list

🚧 Limitations connues

  • Sur Windows, les liens symboliques peuvent nécessiter des privilèges administrateur
  • La configuration SSL nécessite une configuration manuelle des certificats
  • Le support PHP sur Windows peut nécessiter une configuration supplémentaire

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

📝 Licence

MIT License - Voir le fichier LICENSE pour plus de détails.

🙏 Remerciements

Construit avec ❤️ en Rust pour une gestion Apache moderne et cross-platform.