Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/banredco/helpdesk/llms.txt

Use this file to discover all available pages before exploring further.

Esta guía cubre el proceso completo para poner en marcha Banred Helpdesk en un servidor Linux de producción. Antes de comenzar, asegúrese de que el servidor cumple todos los requisitos de software y extensiones PHP. El tiempo estimado de instalación desde cero es de aproximadamente 20 a 30 minutos.
1

Clonar el repositorio

Descargue el código fuente en el directorio raíz del servidor web:
git clone https://github.com/banredco/helpdesk.git /var/www/helpdesk_ban
cd /var/www/helpdesk_ban
2

Instalar dependencias PHP

Banred Helpdesk utiliza Composer para gestionar su única dependencia externa (google/apiclient). Ejecute la instalación omitiendo los paquetes de desarrollo:
composer install --no-dev
Esto descargará la librería de Google API Client y todas sus dependencias transitivas en el directorio vendor/.
3

Crear la base de datos MySQL

Conéctese a MySQL como usuario root y cree la base de datos junto con el usuario dedicado:
CREATE DATABASE helpdesk CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'helpdeskadmin'@'localhost' IDENTIFIED BY 'TuContraseñaSegura';
GRANT ALL PRIVILEGES ON helpdesk.* TO 'helpdeskadmin'@'localhost';
FLUSH PRIVILEGES;
Luego importe el esquema inicial de tablas (si existe un archivo SQL de estructura) con:
mysql -u helpdeskadmin -p helpdesk < /var/www/helpdesk_ban/database/schema.sql
4

Configurar credenciales de base de datos

Edite el archivo config/database.php con los datos de conexión reales. El repositorio incluye esta estructura con credenciales de ejemplo que debe reemplazar:
config/database.php
<?php
return [
    'host'     => 'localhost',
    'database' => 'helpdesk',
    'username' => 'helpdeskadmin',
    'password' => 'Redesjc2026*',
    'charset'  => 'utf8mb4'
];
Reemplace 'Redesjc2026*' por una contraseña segura y aleatoria antes del primer despliegue. La conexión PDO se establece en config/connection.php, que lee este archivo automáticamente y fija la zona horaria de la sesión MySQL a America/Bogota (-05:00).
5

Crear el directorio de datos privados

El sistema requiere un directorio con permisos de escritura para almacenar adjuntos y el archivo de credenciales de Google Workspace:
mkdir -p /var/www/helpdesk_ban/data/private
chown -R www-data:www-data /var/www/helpdesk_ban
El usuario www-data es el proceso del servidor web en distribuciones Debian/Ubuntu. Ajuste el nombre si su servidor utiliza otro usuario (por ejemplo apache en CentOS/RHEL).
6

Configurar Apache o Nginx

Apache — Cree un Virtual Host en /etc/apache2/sites-available/helpdesk.conf:
<VirtualHost *:80>
    ServerName helpdesk.banred.com
    DocumentRoot /var/www/helpdesk_ban

    <Directory /var/www/helpdesk_ban>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog  ${APACHE_LOG_DIR}/helpdesk-error.log
    CustomLog ${APACHE_LOG_DIR}/helpdesk-access.log combined
</VirtualHost>
Active el sitio y habilite mod_rewrite:
a2ensite helpdesk.conf
a2enmod rewrite
systemctl reload apache2
Nginx — Cree un bloque de servidor en /etc/nginx/sites-available/helpdesk:
server {
    listen 80;
    server_name helpdesk.banred.com;
    root /var/www/helpdesk_ban;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }
}
7

Generar la contraseña del administrador

El script generate-password.php genera un hash bcrypt usando password_hash() con PASSWORD_DEFAULT. Antes de ejecutarlo, abra el archivo y reemplace la contraseña hardcodeada por la que desee usar para el administrador. Luego ejecútelo:
php /var/www/helpdesk_ban/generate-password.php
Copie el hash resultante e insértelo directamente en la tabla users:
UPDATE users
SET password = '$2y$10$HASH_GENERADO_AQUI'
WHERE email = 'admin@banred.com';
Si el usuario administrador aún no existe, créelo con un INSERT asegurándose de asignar role_id = 1.
8

Configurar tareas programadas (cron jobs)

Banred Helpdesk requiere trabajos cron para la importación de correos y otras tareas de mantenimiento automático. Consulte la guía Cron Jobs para conocer los comandos exactos y su frecuencia recomendada.
El archivo config/database.php que se distribuye en el repositorio contiene la contraseña hardcodeada Redesjc2026*. Nunca lleve esta contraseña a producción. Reemplácela por una cadena segura y aleatoria antes del primer despliegue, y asegúrese de que el archivo no sea accesible públicamente desde el servidor web (verifique las reglas de AllowOverride o el bloque location de Nginx).
El archivo raíz index.php redirige automáticamente todas las solicitudes a /admin. No es necesario configurar una regla de reescritura adicional para este comportamiento. El panel de administración está disponible directamente desde la raíz del dominio o IP del servidor.

Build docs developers (and LLMs) love