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 :

ssh root@votre-ip-vps

Mettez à jour le système :

apt update && apt upgrade -y

Redémarrez si nécessaire (surtout après une mise à jour du kernel) :

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

hostnamectl set-hostname panel.votre-domaine.com

Remplacez panel.votre-domaine.com par votre hostname souhaité.

Vérifier le hostname

hostname
hostname -f

Configurer /etc/hosts

Éditez le fichier hosts :

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

apt install -y apt-transport-https lsb-release ca-certificates curl gnupg

Ajout de la clé GPG et du dépôt

Pour Debian :

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 :

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

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.).

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 :

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

mysql -u root -p

Entrez le mot de passe root de MariaDB.

Création de l'utilisateur

Dans le prompt MySQL, exécutez :

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 :

# 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 :

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 :

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 :
# 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 :

systemctl restart apache2
systemctl restart mysql
systemctl restart postfix
systemctl restart dovecot
systemctl restart proftpd

Vérifiez l'état des services :

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é :

nano /root/backup-froxlor.sh

Contenu :

#!/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 :

chmod +x /root/backup-froxlor.sh

Automatisation avec cron

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 :

apt install fail2ban -y

Créez une jail pour Froxlor :

nano /etc/fail2ban/jail.d/froxlor.conf

Contenu :

[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 :

nano /etc/fail2ban/filter.d/froxlor.conf

Contenu :

[Definition]
failregex = ^.*Login attempt from <HOST> for.*$
ignoreregex =

Redémarrez Fail2ban :

systemctl restart fail2ban

Configuration de ModSecurity

Pour Apache avec ModSecurity :

apt install libapache2-mod-security2 -y

Configurez les règles de base :

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Éditez la configuration :

nano /etc/modsecurity/modsecurity.conf

Changez :

SecRuleEngine DetectionOnly

En :

SecRuleEngine On

Redémarrez Apache :

systemctl restart apache2

Étape 19 : Optimisation

Configuration PHP

Optimisez PHP pour de meilleures performances :

nano /etc/php/8.2/apache2/php.ini

Modifiez ces valeurs :

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300

Configuration Apache

Optimisez Apache :

nano /etc/apache2/apache2.conf

Ajoutez ou modifiez :

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxRequestWorkers 150
    MaxConnectionsPerChild 3000
</IfModule>

Redémarrez Apache :

systemctl restart apache2

Cache OPcache

Activez OPcache pour PHP :

nano /etc/php/8.2/apache2/conf.d/10-opcache.ini

Configuration recommandée :

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

Redémarrez Apache :

systemctl restart apache2

Étape 20 : Mise à Jour de Froxlor

Mise à jour via APT

Froxlor se met à jour comme n'importe quel package :

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 :
systemctl status apache2
  1. Permissions correctes :
chown -R www-data:www-data /var/www/html/froxlor
chmod -R 755 /var/www/html/froxlor
  1. Logs Apache :
tail -f /var/log/apache2/error.log

Erreur de connexion à la base de données

Solutions :

  1. Vérifiez que MySQL fonctionne :
systemctl status mysql
  1. Testez la connexion :
mysql -u froxlor -p
  1. Vérifiez les permissions :
SHOW GRANTS FOR 'froxlor'@'localhost';

Les emails ne fonctionnent pas

Vérifications :

  1. Postfix fonctionne :
systemctl status postfix
  1. Dovecot fonctionne :
systemctl status dovecot
  1. Vérifiez les logs :
tail -f /var/log/mail.log
  1. Testez l'envoi d'email :
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 :
dig panel.votre-domaine.com
  1. Vérifiez les ports 80 et 443 :
netstat -tlnp | grep -E ':(80|443)'
  1. Vérifiez les logs Let's Encrypt :
tail -f /var/log/letsencrypt/letsencrypt.log

Commandes Utiles

Gestion des services

# 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 :

# 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

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 !