Cómo instalar FreeScout Help Desk en Debian 12

FreeScout es un servicio de asistencia y bandeja de entrada compartida de código abierto escrito en PHP y basado en el framework Laravel. Está construido como una alternativa a Zendesk/Help Scout. Es un software de helpdesk ligero y potente que se puede instalar en cualquier lugar. FreeScout es un software de helpdesk 100% compatible con dispositivos móviles y admite autenticaciones multilingües y modernas de Microsoft Exchange.

Esta guía te llevará paso a paso por la instalación del servicio de ayuda de FreeScout en el servidor Debian 12. Instalarás FreeScout con LEMP Stack (Nginx, MariaDB y PHP-FPM) en el servidor Debian y asegurarás tu instalación con certificados SSL/TLS de Letsencrypt.

Requisitos previos

Antes de continuar, confirma que has reunido

  • Un servidor Debian 12.
  • Un usuario no root con privilegios de administrador sudo.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalación de dependencias

FreeScout Help Desk es una aplicación de código abierto escrita en PHP, compatible con bases de datos MySQL/MariaDB o PostgreSQL, y puede ejecutarse con servidores web Nginx, Apache e IIS. En esta guía instalarás FreeScout con la pila LEMP (Nginx, MariaDB y PHP-FPM).

Ejecuta el siguiente comando para actualizar y refrescar el índice de paquetes de Debian.

sudo apt update

Una vez actualizado el repositorio, ejecuta el siguiente comando para instalar las dependencias para FreeScout Help Desk, incluyendo la Pila LEMP (Nginx, MariaDB, PHP-FPM) con extensiones PHP adicionales y git.

sudo apt install nginx mariadb-server libmariadb-dev git php-fpm php-mysql php-mbstring php-xml php-imap php-zip php-gd php-curl php-intl

Escribe y para proceder con la instalación.

instalar dependencias

Ahora con las dependencias instaladas, verifica cada dependencia ejecutando el siguiente comando.

Verifica el servicio Nginx para asegurarte de que el servicio se está ejecutando y está habilitado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

El siguiente resultado indica que Nginx se está ejecutando y está habilitado.

verificar nginx

A continuación, verifica el servicio MariaDB utilizando el comando siguiente.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Deberías ver una salida similar habilitada que indica que MariaDB está habilitado y activo (en ejecución).

comprobando mariadb

Ahora ejecuta el siguiente comando para verificar el servicio PHP-FPM.

sudo systemctl is-enabled php8.2-fpm
sudo systemctl status php8.2-fpm

La siguiente salida te muestra que el servicio PHP-FPM se está ejecutando y está habilitado.

comprobar php

Por último, comprueba la versión de PHP-FPM y la lista de extensiones habilitadas mediante el siguiente comando.

php -v
php -m

Deberías ver que PHP-FPM 8.2 está instalado con algunas extensiones habilitadas.

comprueba la versión de php y las extensiones

Configurar PHP-FPM

Después de instalar las dependencias, configurarás tu instalación de PHP-FPM modificando el archivo php.ini.

Abre la configuración php.ini para PHP-FPM /etc/php/8.2/fpm/php.ini utilizando el siguiente comando del editor nano.

sudo nano /etc/php/8.2/fpm/php.ini

Cambia las siguientes opciones y asegúrate de ajustar los detalles de la zona horaria y el límite de memoria según el entorno de tu servidor.

memory_limit = 512M
date.timezone = Europe/Stockholm
upload_max_filesize = 16M
cgi.fix_pathinfo=0

Guarda y sal del archivo cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio PHP-FPM y aplicar los cambios.

sudo systemctl restart php8.2-fpm

Configurar el servidor MariaDB

En el siguiente paso, asegurarás la instalación de tu servidor MariaDB mediante la utilidad mariadb-secure-installation. A continuación, crearás una nueva base de datos y un nuevo usuario que utilizará FreeScout.

Para asegurar tu servidor MariaDB, introduce el siguiente comando.

sudo mariadb-secure-installation

Durante el proceso, introduce Y para confirmar la nueva configuración o n para No y rechazarla. A continuación se muestran algunas de las configuraciones del servidor MariaDB que se te pedirán:

  • ¿Cambiar la autenticación local a unix_socket? Introduce n para no.
  • ¿Configurar la contraseña raíz de MariaDB? Introduce y, luego escribe la nueva contraseña de root de MariaDB y repite.
  • ¿Quitar el usuario anónimo por defecto? Introduce y para confirmar.
  • ¿Desactivar el inicio de sesión remoto para el usuario root? Introduce y para confirmar.
  • ¿Eliminar la prueba de base de datos por defecto? Introduce y para confirmar.
  • ¿Recargar los privilegios de la tabla y aplicar los cambios? Introduce y para confirmar.

Después de asegurar el servidor MariaDB, crearás una nueva base de datos MariaDB y un nuevo usuario que utilizará FreeScout. Para ello, inicia sesión en el servidor MariaDB mediante el cliente mariadb.

Ejecuta el siguiente comando mariadb para acceder al servidor MariaDB. Introduce tu contraseña de root de MariaDB cuando te lo pida.

sudo mariadb -u root -p

Ahora ejecuta las siguientes consultas para crear una nueva base de datos freescout y un usuario freescout. Asegúrate de cambiar la contraseña en la siguiente consulta.

CREATE DATABASE freescout CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON freescout.* TO freescout@localhost IDENTIFIED BY "password";
FLUSH PRIVILEGES;

crear base de datos y usuario

A continuación, ejecuta la siguiente consulta para verificar el usuario freescout y asegurarte de que el usuario puede acceder a la base de datos freescout.

SHOW GRANTS FOR freescout@localhost;

La siguiente salida confirma que el usuario freescout puede acceder a la base de datos freescout.

verificar usuario mariadb

Ahora puedes escribir quit para salir del servidor MariaDB.

Descarga del código fuente de FreeScout

Ahora que los servidores PHP-FPM y MariaDB están configurados, el siguiente paso es descargar el código fuente de FreeScout a través de Git y, a continuación, configurar los permisos y la propiedad adecuados del código fuente de FreeScout.

Ejecuta el siguiente comando para crear un nuevo directorio raíz web /var/www/freescout y muévete a él.

mkdir -p /var/www/freescout; cd /var/www/freescout

Descarga el código fuente de FreeScout desde GitHub mediante el siguiente comando git.

git clone https://github.com/freescout-helpdesk/freescout .

Una vez finalizado el proceso, ejecuta el siguiente comando para cambiar la propiedad del directorio web-root /var/www/freescout al usuario www-data. Esto permitirá a Nginx acceder al código fuente de FreeScout.

sudo chown -R www-data:www-data /var/www/freescout

Por último, también puedes asegurarte de que cada directorio y archivo tiene los permisos adecuados ejecutando el siguiente comando.

find /var/www/freescout -type f -exec chmod 664 {} \;    
find /var/www/freescout -type d -exec chmod 775 {} \;

Llegados a este punto, ya has descargado el código fuente de FreeScout en el directorio raíz de la web /var/www/freescout. En el siguiente paso, crearás una nueva configuración de bloque de servidor Nginx que se utilizará para ejecutar tu instalación de FreeScout.

Configurar el bloque de servidor Nginx

Tras descargar el código fuente de FreeScout, crearás un nuevo bloque de servidor Nginx que se utilizará para ejecutar tu instalación de FreeScout. Antes de continuar, asegúrate de que tienes el nombre de dominio apuntando a la dirección IP de tu servidor.

Crea una nueva configuración de bloque de servidor Nginx /etc/nginx/sites-available/freescout utilizando el siguiente comando del editor nano.

sudo nano /etc/nginx/sites-available/freescout

Introduce la siguiente configuración y asegúrate de cambiar el nombre de dominio

server {
    listen 80;
server_name hwdomain.io;
root /var/www/freescout/public;
index index.php index.html index.htm;

error_log /var/www/freescout/storage/logs/web-server.log;

location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Uncomment this location if you want to improve attachments downloading speed.
# Also make sure to set APP_DOWNLOAD_ATTACHMENTS_VIA=nginx in the .env file.
#location ^~ /storage/app/attachment/ {
#    internal;
#    alias /var/www/freescout/storage/app/attachment/;
#}
location ~* ^/storage/attachment/ {
expires 1M;
access_log off;
try_files $uri $uri/ /index.php?$query_string;
}
location ~* ^/(?:css|js)/.*\.(?:css|js)$ {
expires 2d;
access_log off;
add_header Cache-Control "public, must-revalidate";
}
location ~* ^/(?:css|fonts|img|installer|js|modules|[^\\\]+\..*)$ {
expires 1M;
access_log off;
add_header Cache-Control "public";
}
location ~ /\. {
deny  all;
}
}

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para activar el archivo de bloqueo del servidor /etc/nginx/sites-available/freescout y verifica tu sintaxis Nginx.

sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/
sudo nginx -t

Si tu sintaxis es correcta, deberías obtener una salida test is successful – syntax is ok.

configurar bloque servidor nginx

Ahora ejecuta el siguiente comando para reiniciar el servicio Nginx y aplicar los cambios que has realizado.

sudo systemctl restart nginx

En el siguiente paso, generarás y deberás generar certificados SSL/TLS desde letsencrypt a través de Certbot y el plugin Certbot Nginx.

Proteger FreeScout con certificados SSL/TLS

Para instalar FreeScout Help Desk, debes habilitar HTTPS en tu servidor web. En el siguiente paso, generarás certificados SSL/TLS desde Letsencrypt mediante Certbot y el plugin Certbot Nginx.

Instala Certbot y el plugin Certbot Nginx utilizando el siguiente comando apt. Escribe y para proceder a la instalación.

sudo apt install certbot python3-certbot-nginx

instalar certbot

A continuación, ejecuta el siguiente comando certbot para generar nuevos certificados SSL/TLS para tu nombre de dominio. Asegúrate de cambiar los detalles de tu dirección de correo electrónico y nombre de dominio con tu información.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d help.example.io

Una vez finalizado el proceso, tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/domain.com/. Además, el archivo de bloque de tu servidor Nginx /etc/nginx/sites-available/freescout se configurará automáticamente con HTTPS, de lo que se encarga el plugin Certbot Nginx.

Instalación de FreeScount a través del Instalador Web

Inicia tu navegador web y visita el nombre de dominio de tu instalación de FreeScount, como http://glpi.hwdomain.io/. Serás redirigido a una conexión HTTPS segura y a la página de instalación de FreeScount.

Haz clic en Comprobar requisitos para asegurarte de que están instaladas todas las extensiones PHP necesarias.

comprueba los requisitos

Si las extensiones PHP necesarias están instaladas, haz clic en Comprobar permisos para continuar.

comprobar extensiones php

Ahora asegúrate de que el permiso para el directorio FreeScout es de escritura. A continuación, haz clic en Configurar Entornos.

Introduce el nombre de tu dominio en la configuración URL de la aplicación y haz clic en Configurar base de datos

url de la aplicación

Elige la base de datos por defecto MySQL e introduce el nombre de la base de datos, el usuario y la contraseña. A continuación, haz clic en Configurar aplicación para continuar.

introducir datos de la base de datos

Selecciona el idioma y la zona horaria de la aplicación y haz clic en Configurar Admin.

seleccionar zona horaria

Ahora crea un nuevo usuario administrador para tu instalación de FreeScount. Introduce tu dirección de correo electrónico, el nuevo usuario y la contraseña, y haz clic en Instalar para continuar con la instalación de FreeScout.

configuración administrativa

Una vez que la instalación se haya realizado correctamente, deberías ver las siguientes confirmaciones. Además, podrás ver que necesitas crear una nueva tarea cron para FreeScout.

instalación finalizada

Vuelve a tu servidor terminal y ejecuta el siguiente comando para crear una nueva tarea cron para FreeScout.

crontab -u www-data -e

Introduce la configuración que aparece a continuación.

* * * * * php /var/www/freescout/artisan schedule:run >> /dev/null 2>&1

Guarda y cierra el archivo cuando hayas terminado.

A continuación, vuelve a tu navegador web, haz clic en Iniciar sesión, y aparecerá la página de inicio de sesión de FreeScout. Introduce tu dirección de correo electrónico y contraseña de administrador, y haz clic en Iniciar sesión.

página de inicio de sesión de freescout

Si la instalación se ha realizado correctamente, deberías ver el panel de control de FreeScout como el siguiente:

salpicadero freescout

Conclusión

Para concluir, ya has instalado con éxito FreeScout Help Desk en el servidor Debian 12 con la pila LEMP (Nginx, MariaDB y PHP-FPM). También has asegurado tu instalación de FreeScout con certificados SSL/TLS, generados desde letsencrypt. Ahora puedes implementar y utilizar FreeScout como plataforma de Help Desk para tu organización local/interna.

También te podría gustar...