# Guide d'Installation de Froxlor sur VPS Linux ## Introduction Froxlor est un panel d'hébergement web open-source puissant et léger qui permet de gérer facilement des sites web, des emails, des bases de données et des serveurs. Ce guide vous accompagne dans l'installation complète de Froxlor sur un VPS Linux (Debian/Ubuntu). ## Qu'est-ce que Froxlor ? Froxlor est une solution de gestion d'hébergement qui offre : - Gestion de domaines et sous-domaines - Gestion des emails et comptes FTP - Gestion de bases de données MySQL/MariaDB - Configuration de serveurs web (Apache, Nginx, Lighttpd) - Support Let's Encrypt pour SSL/TLS - Gestion multi-utilisateurs (admin, revendeurs, clients) - Interface intuitive et responsive ## Prérequis Avant de commencer l'installation, assurez-vous que votre VPS dispose de : - **Système d'exploitation** : - Debian 12 (Bookworm) ou Debian 11 (Bullseye) - **Recommandé** - Ubuntu 22.04 LTS ou Ubuntu 20.04 LTS - **RAM** : Au moins 1 Go (2 Go recommandés) - **Espace disque** : 10 Go minimum (20 Go recommandés) - **Accès root** ou sudo - **Connexion Internet** stable - **Nom de domaine** pointant vers votre VPS (recommandé) ## Étape 1 : Mise à Jour du Système Connectez-vous à votre VPS via SSH : ```bash ssh root@votre-ip-vps ``` Mettez à jour le système : ```bash apt update && apt upgrade -y ``` Redémarrez si nécessaire (surtout après une mise à jour du kernel) : ```bash reboot ``` Reconnectez-vous après le redémarrage. ## Étape 2 : Configuration du Hostname Il est important de configurer correctement le hostname de votre serveur. ### Définir le hostname ```bash hostnamectl set-hostname panel.votre-domaine.com ``` Remplacez `panel.votre-domaine.com` par votre hostname souhaité. ### Vérifier le hostname ```bash hostname hostname -f ``` ### Configurer /etc/hosts Éditez le fichier hosts : ```bash nano /etc/hosts ``` Ajoutez ou modifiez ces lignes : ``` 127.0.0.1 localhost 127.0.1.1 panel.votre-domaine.com panel VOTRE_IP_VPS panel.votre-domaine.com panel # IPv6 (si applicable) ::1 localhost ip6-localhost ip6-loopback ``` Sauvegardez avec `Ctrl+O`, puis quittez avec `Ctrl+X`. ## Étape 3 : Ajout du Dépôt Froxlor Froxlor fournit des packages officiels via son propre dépôt. ### Installation des dépendances ```bash apt install -y apt-transport-https lsb-release ca-certificates curl gnupg ``` ### Ajout de la clé GPG et du dépôt **Pour Debian** : ```bash curl -sSLo /usr/share/keyrings/deb.froxlor.org-froxlor.gpg https://deb.froxlor.org/froxlor.gpg sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.froxlor.org-froxlor.gpg] https://deb.froxlor.org/debian $(lsb_release -sc) main" > /etc/apt/sources.list.d/froxlor.list' ``` **Pour Ubuntu** : ```bash curl -sSLo /usr/share/keyrings/deb.froxlor.org-froxlor.gpg https://deb.froxlor.org/froxlor.gpg sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.froxlor.org-froxlor.gpg] https://deb.froxlor.org/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/froxlor.list' ``` ### Mise à jour de la liste des packages ```bash apt update ``` ## Étape 4 : Installation de Froxlor L'installation de Froxlor via le package APT installera automatiquement toutes les dépendances nécessaires (serveur web, PHP, MariaDB, etc.). ```bash apt install froxlor -y ``` Cette commande installera : - Froxlor - Serveur web (Apache par défaut) - PHP et modules nécessaires - MariaDB (MySQL) - Autres dépendances L'installation peut prendre quelques minutes. Acceptez toutes les confirmations. ### Configuration de MariaDB Pendant l'installation, vous serez invité à : 1. **Définir un mot de passe root pour MariaDB** : - Choisissez un mot de passe fort et sécurisé - Notez-le précieusement 2. **Configuration de phpmyadmin** (si installé) : - Sélectionnez Apache comme serveur web - Configurez le mot de passe administrateur ## Étape 5 : Sécurisation de MariaDB Exécutez le script de sécurisation MySQL : ```bash mysql_secure_installation ``` Répondez aux questions comme suit : ``` Enter current password for root: [Entrez le mot de passe défini] Switch to unix_socket authentication: N Change the root password?: N (si déjà défini) ou Y (pour en définir un nouveau) Remove anonymous users?: Y Disallow root login remotely?: Y Remove test database?: Y Reload privilege tables now?: Y ``` ## Étape 6 : Création d'un Utilisateur Database Privilégié Froxlor a besoin d'un utilisateur de base de données avec des privilèges élevés. ### Connexion à MySQL ```bash mysql -u root -p ``` Entrez le mot de passe root de MariaDB. ### Création de l'utilisateur Dans le prompt MySQL, exécutez : ```sql CREATE USER 'froxlor'@'localhost' IDENTIFIED BY 'MotDePasseSecurise'; GRANT ALL PRIVILEGES ON *.* TO 'froxlor'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; ``` **Remplacez** `MotDePasseSecurise` par un mot de passe fort et unique. **Important** : Notez ces informations, vous en aurez besoin pour l'installation web. ## Étape 7 : Configuration du Pare-feu Ouvrez les ports nécessaires : ```bash # Si UFW n'est pas installé apt install ufw -y # Autoriser SSH (important !) ufw allow 22/tcp # Autoriser HTTP et HTTPS ufw allow 80/tcp ufw allow 443/tcp # Autoriser FTP (si nécessaire) ufw allow 21/tcp # Autoriser les ports passifs FTP (si nécessaire) ufw allow 49152:65535/tcp # Activer le pare-feu ufw enable ``` Vérifiez l'état : ```bash ufw status ``` ## Étape 8 : Installation Web de Froxlor ### Accès à l'installateur Ouvrez votre navigateur et accédez à : ``` http://VOTRE_IP_VPS/froxlor ``` Ou si vous avez configuré un domaine : ``` http://panel.votre-domaine.com/froxlor ``` Vous serez redirigé vers l'assistant d'installation. ### Étape 1 : Sélection de la langue Choisissez votre langue préférée (Français disponible). ### Étape 2 : Vérification des prérequis L'installateur vérifie que tous les prérequis sont remplis : - Version PHP correcte - Modules PHP nécessaires - Droits d'écriture sur les dossiers Si tout est vert, cliquez sur **Suivant**. ### Étape 3 : Configuration de la base de données Remplissez les informations : - **Hôte de la base de données** : `localhost` - **Nom d'utilisateur** : `froxlor` (l'utilisateur créé à l'étape 6) - **Mot de passe** : Le mot de passe de l'utilisateur froxlor - **Base de données** : `froxlor` (sera créée automatiquement) - **Préfixe des tables** : Laissez par défaut ou personnalisez Cliquez sur **Tester la connexion** pour vérifier. Si le test réussit, cliquez sur **Suivant**. ### Étape 4 : Création du compte administrateur Définissez vos informations administrateur : - **Nom d'utilisateur admin** : `admin` (ou personnalisé) - **Mot de passe admin** : Choisissez un mot de passe fort - **Confirmation du mot de passe** - **Email administrateur** : Votre adresse email Cliquez sur **Suivant**. ### Étape 5 : Configuration du serveur Configurez les paramètres du serveur : **Informations générales** : - **Nom du serveur** : Nom d'affichage (ex: "Mon Serveur Web") - **Adresse IP** : Votre IP publique - **Hostname** : panel.votre-domaine.com **Services web** : - **Serveur web** : Apache (recommandé) ou Nginx - **Version PHP** : Sélectionnez la version installée (8.1, 8.2, etc.) **Services email** (si vous souhaitez gérer les emails) : - **Serveur SMTP** : Postfix (recommandé) - **Serveur IMAP/POP3** : Dovecot **Serveur FTP** : - **Serveur FTP** : ProFTPD (recommandé) ou PureFTPd Cliquez sur **Suivant**. ### Étape 6 : Configuration SSL/TLS Si vous avez un domaine configuré : - Cochez **Utiliser Let's Encrypt pour SSL** - Entrez votre email pour Let's Encrypt - Acceptez les conditions Si pas de domaine maintenant, vous pourrez configurer SSL plus tard. Cliquez sur **Suivant**. ### Étape 7 : Finalisation L'installation se termine : - La base de données est créée - Les tables sont initialisées - La configuration est enregistrée Cliquez sur **Terminer l'installation**. ### Suppression de l'installateur Pour des raisons de sécurité, supprimez le dossier d'installation : ```bash rm -rf /var/www/html/froxlor/install ``` ## Étape 9 : Première Connexion ### Accès au panel Accédez à : ``` http://VOTRE_IP_VPS/froxlor ``` Ou : ``` http://panel.votre-domaine.com/froxlor ``` ### Connexion Utilisez les identifiants administrateur créés lors de l'installation : - **Nom d'utilisateur** : admin - **Mot de passe** : Votre mot de passe admin ## Étape 10 : Configuration Post-Installation ### Configuration des services Après la première connexion, Froxlor vous guidera pour configurer les services. 1. Allez dans **Système** > **Configuration** 2. Cliquez sur **Configuration** dans le menu 3. Configurez les services selon vos besoins : - **Serveur web** (Apache/Nginx) - **Serveur email** (Postfix/Dovecot) - **Serveur FTP** (ProFTPD) - **Serveur DNS** (BIND/PowerDNS - optionnel) 4. Cliquez sur **Appliquer les modifications** ### Génération des fichiers de configuration 1. Allez dans **Système** > **Configuration** 2. Cliquez sur **Reconfigurer les services** 3. Sélectionnez tous les services à configurer 4. Cliquez sur **Envoyer** 5. Copiez les commandes shell générées 6. Exécutez-les dans votre terminal SSH : ```bash # Exemple de commande (les vôtres seront différentes) /usr/local/bin/froxlor-cli froxlor:config-services --create ``` ### Redémarrage des services Après avoir appliqué la configuration : ```bash systemctl restart apache2 systemctl restart mysql systemctl restart postfix systemctl restart dovecot systemctl restart proftpd ``` Vérifiez l'état des services : ```bash systemctl status apache2 systemctl status mysql ``` ## Étape 11 : Configuration SSL avec Let's Encrypt ### Activer Let's Encrypt 1. Dans Froxlor, allez dans **Système** > **Paramètres** 2. Cliquez sur l'onglet **Système** 3. Trouvez la section **Let's Encrypt** 4. Activez **Utiliser Let's Encrypt** 5. Entrez votre email 6. Définissez le serveur Let's Encrypt (production) 7. Sauvegardez ### Obtenir un certificat pour le panel 1. Allez dans **Domaines** 2. Ajoutez votre domaine (panel.votre-domaine.com) 3. Cochez **SSL activé** 4. Cochez **Let's Encrypt** 5. Sauvegardez 6. Le certificat sera généré automatiquement ### Forcer HTTPS 1. Allez dans **Système** > **Paramètres** 2. Section **Panel** 3. Activez **Forcer HTTPS** 4. Sauvegardez Maintenant, accédez à Froxlor via : ``` https://panel.votre-domaine.com/froxlor ``` ## Étape 12 : Création de Votre Premier Client ### Ajouter un client 1. Connectez-vous en tant qu'admin 2. Allez dans **Clients** > **Ajouter un client** 3. Remplissez les informations : - **Nom de connexion** : nom_client - **Mot de passe** : Mot de passe sécurisé - **Nom** : Nom complet du client - **Email** : Email du client - **Ressources** : - Espace disque (ex: 5000 MB) - Trafic (ex: 50000 MB) - Domaines (ex: 5) - Sous-domaines (ex: 25) - Comptes email (ex: 50) - Comptes FTP (ex: 10) - Bases de données MySQL (ex: 10) 4. Cliquez sur **Sauvegarder** ## Étape 13 : Ajout d'un Domaine ### En tant qu'administrateur 1. Allez dans **Domaines** > **Ajouter un domaine** 2. Remplissez : - **Client** : Sélectionnez le client - **Domaine** : example.com - **Chemin** : Chemin du domaine (auto-généré) - **SSL** : Activez si souhaité - **Let's Encrypt** : Activez pour SSL automatique 3. Configurez les options : - **PHP** : Activé/Désactivé - **CGI** : Selon besoins - **Logs** : Activés recommandé 4. Cliquez sur **Sauvegarder** ### Configuration DNS Configurez vos enregistrements DNS chez votre registrar : ``` A @ VOTRE_IP_VPS A www VOTRE_IP_VPS AAAA @ VOTRE_IPv6 (si applicable) AAAA www VOTRE_IPv6 (si applicable) ``` ## Étape 14 : Configuration Email ### Création d'un compte email 1. Allez dans **Email** > **Adresses email** 2. Cliquez sur **Créer une adresse email** 3. Remplissez : - **Adresse locale** : contact (pour [email protected]) - **Domaine** : Sélectionnez le domaine - **Mot de passe** : Mot de passe fort - **Quota** : Espace alloué (ex: 1000 MB) 4. Cliquez sur **Sauvegarder** ### Configuration du client de messagerie Pour utiliser l'email avec un client (Outlook, Thunderbird) : **Serveur entrant (IMAP)** : - Serveur : mail.votre-domaine.com - Port : 993 - Sécurité : SSL/TLS - Nom d'utilisateur : [email protected] - Mot de passe : Le mot de passe défini **Serveur sortant (SMTP)** : - Serveur : mail.votre-domaine.com - Port : 587 (STARTTLS) ou 465 (SSL) - Sécurité : STARTTLS ou SSL/TLS - Authentification : Requise - Nom d'utilisateur : [email protected] - Mot de passe : Le mot de passe défini ### Enregistrements DNS pour email Ajoutez ces enregistrements DNS : ``` MX @ 10 mail.votre-domaine.com A mail VOTRE_IP_VPS # SPF TXT @ "v=spf1 mx a ip4:VOTRE_IP_VPS ~all" # DKIM (généré par Froxlor) TXT default._domainkey "v=DKIM1; k=rsa; p=VOTRE_CLE_PUBLIQUE" # DMARC TXT _dmarc "v=DMARC1; p=quarantine; rua=mailto:[email protected]" ``` ## Étape 15 : Configuration FTP ### Création d'un compte FTP 1. Allez dans **FTP** > **Comptes FTP** 2. Cliquez sur **Créer un compte FTP** 3. Remplissez : - **Nom d'utilisateur** : ftpuser - **Mot de passe** : Mot de passe fort - **Chemin** : Chemin d'accès (auto-rempli) - **Description** : Description optionnelle 4. Cliquez sur **Sauvegarder** ### Connexion FTP Utilisez un client FTP (FileZilla) : - **Hôte** : ftp.votre-domaine.com ou VOTRE_IP_VPS - **Port** : 21 - **Type** : FTP - Explicit SSL/TLS - **Nom d'utilisateur** : [email protected] - **Mot de passe** : Le mot de passe défini ## Étape 16 : Gestion des Bases de Données ### Création d'une base de données 1. Allez dans **MySQL** > **Bases de données** 2. Cliquez sur **Créer une base de données** 3. Remplissez : - **Client** : Sélectionnez le client - **Description** : Description de la BDD - **Nom de la base** : Auto-généré ou personnalisé 4. Cliquez sur **Sauvegarder** ### Création d'un utilisateur MySQL 1. Allez dans **MySQL** > **Utilisateurs** 2. Cliquez sur **Créer un utilisateur** 3. Remplissez : - **Nom d'utilisateur** : Auto-généré ou personnalisé - **Mot de passe** : Mot de passe fort - **Description** : Description 4. Assignez à une base de données 5. Cliquez sur **Sauvegarder** ### Accès phpMyAdmin Accédez à phpMyAdmin via : ``` http://panel.votre-domaine.com/phpmyadmin ``` Connectez-vous avec : - **Nom d'utilisateur** : L'utilisateur MySQL créé - **Mot de passe** : Le mot de passe défini ## Étape 17 : Sauvegardes ### Configuration des sauvegardes automatiques 1. Allez dans **Système** > **Paramètres** 2. Section **Sauvegardes** 3. Configurez : - **Chemin de sauvegarde** : /backup/froxlor - **Fréquence** : Quotidienne - **Nombre de sauvegardes à conserver** : 7 4. Sauvegardez ### Script de sauvegarde manuel Créez un script personnalisé : ```bash nano /root/backup-froxlor.sh ``` Contenu : ```bash #!/bin/bash BACKUP_DIR="/backup/froxlor" DATE=$(date +%Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR # Sauvegarde de la base de données mysqldump -u root -p'VOTRE_MOT_DE_PASSE' froxlor > $BACKUP_DIR/froxlor_db_$DATE.sql # Sauvegarde des fichiers web tar -czf $BACKUP_DIR/www_$DATE.tar.gz /var/www/ # Sauvegarde de la configuration tar -czf $BACKUP_DIR/config_$DATE.tar.gz /etc/apache2 /etc/postfix /etc/dovecot # Garder seulement les 7 dernières sauvegardes find $BACKUP_DIR -name "froxlor_db_*.sql" -mtime +7 -delete find $BACKUP_DIR -name "www_*.tar.gz" -mtime +7 -delete find $BACKUP_DIR -name "config_*.tar.gz" -mtime +7 -delete echo "Sauvegarde terminée: $DATE" ``` Rendez-le exécutable : ```bash chmod +x /root/backup-froxlor.sh ``` ### Automatisation avec cron ```bash crontab -e ``` Ajoutez : ``` 0 3 * * * /root/backup-froxlor.sh ``` ## Étape 18 : Sécurité Avancée ### Fail2ban Installez Fail2ban pour protéger contre les attaques par force brute : ```bash apt install fail2ban -y ``` Créez une jail pour Froxlor : ```bash nano /etc/fail2ban/jail.d/froxlor.conf ``` Contenu : ```ini [froxlor] enabled = true port = http,https filter = froxlor logpath = /var/www/html/froxlor/logs/login_errors.log maxretry = 5 bantime = 3600 ``` Créez le filtre : ```bash nano /etc/fail2ban/filter.d/froxlor.conf ``` Contenu : ```ini [Definition] failregex = ^.*Login attempt from for.*$ ignoreregex = ``` Redémarrez Fail2ban : ```bash systemctl restart fail2ban ``` ### Configuration de ModSecurity Pour Apache avec ModSecurity : ```bash apt install libapache2-mod-security2 -y ``` Configurez les règles de base : ```bash cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf ``` Éditez la configuration : ```bash nano /etc/modsecurity/modsecurity.conf ``` Changez : ``` SecRuleEngine DetectionOnly ``` En : ``` SecRuleEngine On ``` Redémarrez Apache : ```bash systemctl restart apache2 ``` ## Étape 19 : Optimisation ### Configuration PHP Optimisez PHP pour de meilleures performances : ```bash nano /etc/php/8.2/apache2/php.ini ``` Modifiez ces valeurs : ```ini memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 max_input_time = 300 ``` ### Configuration Apache Optimisez Apache : ```bash nano /etc/apache2/apache2.conf ``` Ajoutez ou modifiez : ```apache KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 3000 ``` Redémarrez Apache : ```bash systemctl restart apache2 ``` ### Cache OPcache Activez OPcache pour PHP : ```bash nano /etc/php/8.2/apache2/conf.d/10-opcache.ini ``` Configuration recommandée : ```ini opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 ``` Redémarrez Apache : ```bash systemctl restart apache2 ``` ## Étape 20 : Mise à Jour de Froxlor ### Mise à jour via APT Froxlor se met à jour comme n'importe quel package : ```bash apt update apt upgrade froxlor ``` ### Vérification de la version Dans le panel Froxlor, allez dans **Système** > **À propos** pour voir la version installée. ## Dépannage ### Le panel ne s'affiche pas **Vérifications** : 1. Apache fonctionne : ```bash systemctl status apache2 ``` 2. Permissions correctes : ```bash chown -R www-data:www-data /var/www/html/froxlor chmod -R 755 /var/www/html/froxlor ``` 3. Logs Apache : ```bash tail -f /var/log/apache2/error.log ``` ### Erreur de connexion à la base de données **Solutions** : 1. Vérifiez que MySQL fonctionne : ```bash systemctl status mysql ``` 2. Testez la connexion : ```bash mysql -u froxlor -p ``` 3. Vérifiez les permissions : ```sql SHOW GRANTS FOR 'froxlor'@'localhost'; ``` ### Les emails ne fonctionnent pas **Vérifications** : 1. Postfix fonctionne : ```bash systemctl status postfix ``` 2. Dovecot fonctionne : ```bash systemctl status dovecot ``` 3. Vérifiez les logs : ```bash tail -f /var/log/mail.log ``` 4. Testez l'envoi d'email : ```bash echo "Test email" | mail -s "Test" [email protected] ``` ### Certificat SSL non généré **Solutions** : 1. Vérifiez que le domaine pointe vers le serveur : ```bash dig panel.votre-domaine.com ``` 2. Vérifiez les ports 80 et 443 : ```bash netstat -tlnp | grep -E ':(80|443)' ``` 3. Vérifiez les logs Let's Encrypt : ```bash tail -f /var/log/letsencrypt/letsencrypt.log ``` ## Commandes Utiles ### Gestion des services ```bash # Redémarrer tous les services systemctl restart apache2 mysql postfix dovecot proftpd # Voir les logs en temps réel tail -f /var/log/apache2/error.log tail -f /var/log/mail.log tail -f /var/log/proftpd/proftpd.log # Vérifier l'utilisation des ressources htop df -h free -m ``` ### Gestion Froxlor CLI Froxlor propose une interface en ligne de commande : ```bash # Voir les commandes disponibles froxlor-cli list # Reconfigurer les services froxlor-cli froxlor:config-services --create # Régénérer les certificats SSL froxlor-cli froxlor:letsencrypt --renew-all ``` ## Ressources Supplémentaires ### Documentation officielle - **Site officiel** : https://froxlor.org/ - **Documentation** : https://docs.froxlor.org/ - **GitHub** : https://github.com/Froxlor/Froxlor - **Forum** : https://forum.froxlor.org/ ### Communauté - Discord Froxlor - Forum officiel pour le support - GitHub pour les issues et feature requests ### Tutoriels - Vidéos YouTube sur Froxlor - Articles de blog communautaires - Guides spécifiques (WordPress, etc.) ## Conclusion Votre serveur Froxlor est maintenant installé et opérationnel ! Vous pouvez désormais : - Héberger des sites web - Gérer des comptes email professionnels - Créer des comptes FTP pour vos clients - Gérer des bases de données MySQL - Délivrer des certificats SSL automatiques - Administrer facilement votre serveur via une interface web **Points importants à retenir** : - Faites des sauvegardes régulières - Maintenez le système à jour - Surveillez les logs - Sécurisez votre serveur (Fail2ban, pare-feu) - Documentez vos configurations **Bienvenue dans le monde de l'hébergement web avec Froxlor !**