Prérequis
Ce dont un serveur a besoin avant d'installer Bondry, en hébergement mutualisé et en VPS, et comment le vérifier sans accès terminal.
Bondry est une application PHP. Il n'y a pas de Node, pas d'étape de build et aucun service à garder actif en dehors d'une entrée cron. Cette page indique le minimum pour un hébergement mutualisé et la configuration recommandée pour un VPS, afin de vérifier un hébergeur avant d'acheter.
En un coup d'œil#
| Élément | Exigence |
|---|---|
| PHP | 8.3 ou supérieur (8.3, 8.4 et 8.5 sont pris en charge) |
| Base de données | MySQL 8.0 ou supérieur, ou MariaDB 10.6 ou supérieur (InnoDB, utf8mb4) |
| Serveur web | Apache 2.4 avec mod_rewrite (le produit fournit public/.htaccess), Nginx ou LiteSpeed |
| HTTPS | Certificat valide sur le domaine |
| Cron | Une entrée, chaque minute |
| Réseau sortant | HTTPS vers api.bondry.org |
| Disque | 500 Mo libres avant les envois |
| Mémoire | memory_limit de 256M (128M est le plancher) |
Hébergement mutualisé (minimum)#
Vérifiez chaque ligne dans le panneau de l'hébergeur (cPanel, Plesk ou DirectAdmin).
| À vérifier | Valeur | Pourquoi |
|---|---|---|
| Sélecteur de version PHP | 8.3, 8.4 ou 8.5 | L'installateur refuse les versions plus anciennes |
| Extensions PHP | pdo_mysql, mbstring, openssl, zip, gd, curl, fileinfo, intl, tokenizer |
Toutes sont obligatoires ; l'installateur ne continue pas s'il en manque une |
memory_limit |
256M | 128M est le plancher ; le programme de mise à jour du panneau et le traitement d'images ont besoin de marge |
max_execution_time |
120 ou plus | Le programme de mise à jour l'augmente lui-même quand l'hébergeur le permet |
upload_max_filesize |
64M | Le paquet du cœur pèse environ 16 Mo et les paquets de modules et de thèmes passent par le panneau |
post_max_size |
64M | Doit être au moins égal à upload_max_filesize |
max_input_vars |
3000 | Les grands formulaires du panneau envoient beaucoup de champs |
| OPcache | Activé | Pages plus rapides |
| Répertoires en écriture | storage, bootstrap/cache, modules, themes et public/uploads |
Cache, journaux, paquets installés et envois publics |
| Base de données | Une base MySQL et un utilisateur avec tous les droits dessus | L'installateur crée les tables |
| Tâches cron | Autorisées dans le panneau | Voir ci-dessous |
| E-mail sortant | Identifiants SMTP ou un fournisseur d'API | La valeur par défaut MAIL_MAILER=log écrit les e-mails dans un fichier ; changez-la après l'installation |
| HTTPS sortant | api.bondry.org joignable |
Activation de la licence, heartbeat et mises à jour |
| Disque | 500 Mo libres avant les envois | Voir le tableau ci-dessous |
| SSH | Optionnel | L'installateur web et le panneau font tout |
Cron et file d'attente#
Ajoutez une entrée, chaque minute :
* * * * * php /chemin/vers/bondry/artisan schedule:run >> /dev/null 2>&1
Le planificateur gère le nettoyage, le heartbeat de la licence, la vérification
quotidienne des mises à jour, le nettoyage des fichiers, les déplacements de
stockage, les webhooks, les imports RSS et les résumés. Il n'exécute pas de
worker de file d'attente. Bondry n'exige pas de worker : l'indexation de la
recherche s'exécute après la réponse, dans le même processus. Si le pilote de
file est database et que plus de 100 tâches attendent, la page de santé du
panneau avertit qu'aucun worker ne tourne. Si l'hébergeur n'a pas de cron, la
Configuration avancée propose un mode qui exécute les tâches échues à partir du
trafic du site, au plus une fois par minute.
Disque#
| Élément | Taille |
|---|---|
| Paquet du cœur (compressé) | 16 Mo |
| Installé | environ 60 Mo |
| Copie de sauvegarde faite par le programme de mise à jour pendant une mise à jour | environ 60 Mo |
| Envois | croît avec votre contenu |
Prévoyez 500 Mo libres avant les envois.
Hébergeurs courants#
Tout hébergeur cPanel, Plesk ou DirectAdmin avec les valeurs ci-dessus convient. L'installateur vérifie chaque élément avant d'écrire quoi que ce soit : un hébergeur insuffisant est signalé avant toute modification de votre compte.
VPS ou serveur dédié (recommandé)#
| Taille | CPU | RAM | Disque |
|---|---|---|---|
| Petit (jusqu'à quelques milliers de membres, faible trafic) | 1 vCPU | 1 Go (2 Go avec les modules Designer et LMS) | 10 Go SSD |
| Moyen | 2 vCPU | 4 Go | 40 Go SSD |
| Grand | 4 vCPU | 8 Go | SSD, dimensionné selon les envois |
MySQL profite surtout de la RAM et du SSD.
Pile logicielle#
| Composant | Recommandation |
|---|---|
| Système | Debian 12 ou 13, Ubuntu 22.04 ou 24.04 |
| Serveur web | Nginx avec PHP-FPM 8.3 ou supérieur |
| Base de données | MySQL 8.4 ou MariaDB 10.11 |
| Worker de file (optionnel) | Supervisor ou systemd exécutant php artisan queue:work database --sleep=3 --tries=3 |
| Redis (optionnel) | Cache, session et file ; le fichier .env contient des entrées REDIS_* |
| TLS | Let's Encrypt avec certbot |
| Pare-feu | Seuls 22, 80 et 443 ouverts |
| Cron | La même entrée que ci-dessus |
| Sauvegardes | La base de données et le répertoire public/uploads |
Un bloc serveur Nginx minimal :
server {
listen 443 ssl;
server_name example.com;
root /var/www/bondry/public;
index index.php;
client_max_body_size 64m;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
Propriété des fichiers#
Le code est lisible par l'utilisateur PHP. Seuls storage, bootstrap/cache,
modules, themes et public/uploads sont en écriture. Donnez la propriété à
l'utilisateur PHP-FPM plutôt que d'ouvrir les répertoires à tous.
Environnements testés#
| Environnement | Configuration |
|---|---|
| Production | Debian 13, Nginx, PHP-FPM 8.5, MySQL 8.4 (bondry.org et demo.bondry.org tournent ici) |
| Tests automatisés | PHP 8.3 et PHP 8.4 |
| Développement | macOS, PHP 8.5 |
Vérifier avant d'acheter#
- Envoyez un fichier contenant
<?php phpinfo();et cherchez la version de PHP, la liste des extensions et les valeurs dememory_limit,upload_max_filesize,post_max_sizeetmax_input_vars. Supprimez le fichier ensuite. - Cron : ouvrez la section cron du panneau et confirmez que vous pouvez ajouter une tâche chaque minute avec la ligne de commande PHP.
- HTTPS sortant : demandez à l'hébergeur, ou exécutez un fichier PHP d'une ligne avec
var_dump(file_get_contents('https://api.bondry.org'));et vérifiez l'absence d'erreur de connexion. Supprimez-le ensuite.
Problèmes courants#
| Problème | Cause | Solution |
|---|---|---|
| L'installateur refuse de démarrer | PHP 8.2 ou antérieur sélectionné | Sélectionnez 8.3 ou supérieur dans le panneau |
Point rouge pour intl ou zip |
Extension non activée | Activez-la dans la page des extensions PHP du panneau |
| Les envois échouent | post_max_size ou upload_max_filesize trop bas |
Passez les deux à 64M |
| Erreur 500 après l'installation | storage ou bootstrap/cache non accessible en écriture |
Corrigez le propriétaire ou les droits de ces répertoires |
| Les tâches planifiées ne se sont jamais exécutées | Entrée cron absente ou chemin incorrect | Ajoutez l'entrée ; la page de santé montre la dernière exécution |
| L'activation de la licence échoue | HTTPS sortant vers api.bondry.org bloqué |
Demandez à l'hébergeur de l'autoriser |