Requisitos
Qué necesita un servidor antes de instalar Bondry, en hosting compartido y en VPS, y cómo comprobarlo sin acceso a terminal.
Bondry es una aplicación PHP. No hay Node, no hay paso de build y no hay ningún servicio que mantener vivo aparte de una entrada de cron. Esta página lista el mínimo para hosting compartido y la configuración recomendada para un VPS, para que compruebes el hosting antes de comprar.
De un vistazo#
| Elemento | Requisito |
|---|---|
| PHP | 8.3 o superior (se admiten 8.3, 8.4 y 8.5) |
| Base de datos | MySQL 8.0 o superior, o MariaDB 10.6 o superior (InnoDB, utf8mb4) |
| Servidor web | Apache 2.4 con mod_rewrite (el producto incluye public/.htaccess), Nginx o LiteSpeed |
| HTTPS | Certificado válido en el dominio |
| Cron | Una entrada, cada minuto |
| Red de salida | HTTPS hacia api.bondry.org |
| Disco | 500 MB libres antes de las subidas |
| Memoria | memory_limit de 256M (128M es el mínimo) |
Hosting compartido (mínimo)#
Comprueba cada línea en el panel del hosting (cPanel, Plesk o DirectAdmin).
| Qué comprobar | Valor | Por qué |
|---|---|---|
| Selector de versión de PHP | 8.3, 8.4 u 8.5 | El instalador rechaza versiones anteriores |
| Extensiones de PHP | pdo_mysql, mbstring, openssl, zip, gd, curl, fileinfo, intl, tokenizer |
Todas son obligatorias; el instalador no continúa si falta una |
memory_limit |
256M | 128M es el mínimo; el actualizador del panel y el procesamiento de imágenes necesitan margen |
max_execution_time |
120 o más | El actualizador lo sube por sí mismo cuando el hosting lo permite |
upload_max_filesize |
64M | El paquete del core pesa unos 16 MB y los paquetes de módulos y temas pasan por el panel |
post_max_size |
64M | Debe ser al menos igual a upload_max_filesize |
max_input_vars |
3000 | Los formularios grandes del panel envían muchos campos |
| OPcache | Activado | Páginas más rápidas |
| Directorios con escritura | storage, bootstrap/cache, modules, themes y public/uploads |
Caché, registros, paquetes instalados y subidas públicas |
| Base de datos | Una base MySQL y un usuario con todos los derechos sobre ella | El instalador crea las tablas |
| Tareas cron | Permitidas en el panel | Ver abajo |
| Correo saliente | Credenciales SMTP o un proveedor de API | El valor por defecto MAIL_MAILER=log escribe el correo en un archivo; cámbialo tras la instalación |
| HTTPS saliente | api.bondry.org accesible |
Activación de licencia, heartbeat y actualizaciones |
| Disco | 500 MB libres antes de las subidas | Ver la tabla de abajo |
| SSH | Opcional | El instalador web y el panel lo hacen todo |
Cron y cola#
Añade una entrada, cada minuto:
* * * * * php /ruta/a/bondry/artisan schedule:run >> /dev/null 2>&1
El programador se encarga de la limpieza, el heartbeat de la licencia, la
comprobación diaria de actualizaciones, la limpieza de archivos, los traslados
de almacenamiento, los webhooks, las importaciones RSS y los resúmenes. No
ejecuta un worker de cola. Bondry no exige worker: la indexación de búsqueda se
ejecuta tras la respuesta, en el mismo proceso. Si el driver de cola es
database y esperan más de 100 trabajos, la página de salud del panel avisa de
que no hay ningún worker en marcha. Si el hosting no tiene cron, la
Configuración Avanzada ofrece un modo que ejecuta las tareas pendientes con el
tráfico del sitio, como máximo una vez por minuto.
Disco#
| Parte | Tamaño |
|---|---|
| Paquete del core (comprimido) | 16 MB |
| Instalado | unos 60 MB |
| Copia de seguridad que hace el actualizador durante una actualización | unos 60 MB |
| Subidas | crece con tu contenido |
Prevé 500 MB libres antes de las subidas.
Hostings habituales#
Cualquier hosting cPanel, Plesk o DirectAdmin con los valores anteriores funciona. El instalador verifica cada elemento antes de escribir nada, así que un hosting que no cumple se señala antes de modificar tu cuenta.
VPS o servidor dedicado (recomendado)#
| Tamaño | CPU | RAM | Disco |
|---|---|---|---|
| Pequeño (hasta unos miles de miembros, poco tráfico) | 1 vCPU | 1 GB (2 GB con los módulos Designer y LMS) | 10 GB SSD |
| Mediano | 2 vCPU | 4 GB | 40 GB SSD |
| Grande | 4 vCPU | 8 GB | SSD, dimensionado según las subidas |
MySQL se beneficia sobre todo de la RAM y del SSD.
Pila de software#
| Componente | Recomendación |
|---|---|
| Sistema operativo | Debian 12 o 13, Ubuntu 22.04 o 24.04 |
| Servidor web | Nginx con PHP-FPM 8.3 o superior |
| Base de datos | MySQL 8.4 o MariaDB 10.11 |
| Worker de cola (opcional) | Supervisor o systemd ejecutando php artisan queue:work database --sleep=3 --tries=3 |
| Redis (opcional) | Caché, sesión y cola; el archivo .env tiene entradas REDIS_* |
| TLS | Let's Encrypt con certbot |
| Cortafuegos | Solo 22, 80 y 443 abiertos |
| Cron | La misma entrada de arriba |
| Copias de seguridad | La base de datos y el directorio public/uploads |
Un bloque de servidor Nginx mínimo:
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;
}
}
Propiedad de los archivos#
El código es legible por el usuario de PHP. Solo storage, bootstrap/cache,
modules, themes y public/uploads tienen escritura. Asigna como propietario
al usuario de PHP-FPM en lugar de abrir los directorios a todo el mundo.
Entornos probados#
| Entorno | Configuración |
|---|---|
| Producción | Debian 13, Nginx, PHP-FPM 8.5, MySQL 8.4 (bondry.org y demo.bondry.org funcionan aquí) |
| Pruebas automatizadas | PHP 8.3 y PHP 8.4 |
| Desarrollo | macOS, PHP 8.5 |
Comprobar antes de comprar#
- Sube un archivo con
<?php phpinfo();y busca la versión de PHP, la lista de extensiones y los valores dememory_limit,upload_max_filesize,post_max_sizeymax_input_vars. Borra el archivo después. - Cron: abre la sección de cron del panel y confirma que puedes añadir una tarea cada minuto con la línea de comandos de PHP.
- HTTPS saliente: pregunta al hosting, o ejecuta un archivo PHP de una línea con
var_dump(file_get_contents('https://api.bondry.org'));y comprueba que no da error de conexión. Bórralo después.
Problemas habituales#
| Problema | Causa | Solución |
|---|---|---|
| El instalador se niega a empezar | PHP 8.2 o anterior seleccionado | Selecciona 8.3 o superior en el panel |
Elemento rojo para intl o zip |
Extensión no activada | Actívala en la página de extensiones de PHP del panel |
| Las subidas fallan | post_max_size o upload_max_filesize demasiado bajos |
Sube ambos a 64M |
| Error 500 tras instalar | storage o bootstrap/cache sin escritura |
Corrige el propietario o los permisos de esos directorios |
| Las tareas programadas nunca se ejecutaron | Falta la entrada de cron o la ruta es incorrecta | Añade la entrada; la página de salud muestra la última ejecución |
| Falla la activación de la licencia | HTTPS saliente hacia api.bondry.org bloqueado |
Pide al hosting que lo permita |