Cómo instalar Monica Personal Relationship Manager en Debian 11

Monica CRM es un CRM (Gestor de Relaciones con Clientes) gratuito y de código abierto escrito en PHP. Monica CRM te ayuda a realizar un seguimiento de eventos personales, actividades, información laboral, contactos, diarios, notas y mucho más.

Monica CRM ofrece muchas funciones, como la gestión de contactos y la relación entre contactos, recordatorios, gestión de actividades y tareas, diario básico, importación y exportación de datos, carga de archivos multimedia como documentos y fotos, y muchas más. Se puede instalar de múltiples formas, mediante Docker, manualmente en el servidor (VPS), o utilizando PaaS (Plataforma como Servicio).

En esta guía, repasarás cómo instalar el CRM Monica Personal Relationship Manager en un servidor Debian 11. También instalarás y configurarás la pila LEMP (Nginx, MariaDB, PHP-FPM), instalarás dependencias PHP mediante Composer, e instalarás y compilarás activos estáticos utilizando Node.js y Yarn.

Requisitos previos

Para que este tutorial funcione, necesitarás un servidor Debian 11 y configurar el usuario no root con privilegios de root o administrador. Además, si planeas desplegarlo en producción, necesitarás un nombre de dominio apuntando a la dirección IP de tu servidor Debian. Además, se recomienda activar el cortafuegos en tu servidor Debian de producción.

Instalación del servidor web Nginx

Monica CRM es una aplicación web escrita principalmente en PHP. Para instalar Monica CRM, puedes utilizar un servidor web como Apache2, Nginx o Caddy web server.

En esta guía, ejecutarás Monica CRM con el servidor web Nginx. Por tanto, ahora instalarás paquetes Nginx en tu servidor Debian.

Antes de empezar a instalar los paquetes, ejecuta el siguiente comando apt para actualizar y refrescar el índice de paquetes de Debian.

sudo apt update

Ahora, instala los paquetes Nginx mediante el siguiente comando apt. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.

sudo apt install nginx

instalar nginx

Una vez instalado Nginx, comprueba que el servicio ‘nginx‘ se está ejecutando mediante el siguiente comando systemctl.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Ahora verás que el servicio ‘nginx’ está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado del servicio Nginx es ahora en ejecución.

instalar nginx

Instalación del servidor MariaDB

El Monica CRM soporta MySQL/MariaDB para la instalación. Ahora instalarás MariaDB en tu servidor Debian. También asegurarás la instalación del servidor MariaDB mediante el script ‘mysql_secure_installation’.

Instala el servidor MariaDB mediante el siguiente comando apt. Cuando se te pida que confirmes la instalación, introduce Y y pulsa ENTER para continuar.

sudo apt install mariadb-server

instalar mariadb

Si MariaDB está instalado, verifica el servicio MariaDB y asegúrate de que se está ejecutando. Ejecuta el siguiente comando systemctl.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Verás que el servidor MariaDB está habilitado y se ejecutará automáticamente al arrancar el sistema. Y el estado actual del servicio MariaDB es en ejecución.

comprobar mariadb

A continuación, asegurarás el despliegue del servidor MariaDB mediante el script‘mysql_secure_installation‘, que proporcionan los paquetes MariaDB.

Ejecuta el siguiente comando para empezar a asegurar el despliegue de MariaDB.

sudo mysql_secure_installation

Se te preguntará por varias configuraciones de MariaDB:

  • ¿Cambiar la autenticación a unix_socket? entrada n.
  • ¿Cambiar la contraseña de root de MariaDB? introduce y para confirmar, introduce la nueva contraseña de tu servidor MariaDB y repite la contraseña.
  • ¿Desactivar la conexión remota del usuario root? introduce y para confirmar – no se debe permitir al usuario root conectarse remotamente.Eliminar usuario anónimo? introduce y para confirmar.
  • ¿Eliminar la base de datos por defecto ‘test’? introduce y para confirmar y eliminar la base de datos de prueba.
  • Por último, introduce y para recargar los privilegios de las tablas y aplicar los nuevos cambios.

El servidor MariaDB ya está instalado y protegido.

Instalación y configuración de PHP-FPM 8.1

Monica CRM es una aplicación web basada en PHP, por lo que debes instalar paquetes PHP en tu servidor Debian. La versión actual de Monica CRM requiere al menos PHP v8.1 o posterior.

Para el sistema Debian 11, instalarás los paquetes PHP 8.1 a través de un repositorio de terceros. Ahora instalarás PHP-FPM 8.1 a través del repositorio sury.org y configurarás tu instalación de PHP de acuerdo con los requisitos de Monica CRM.

Ejecuta el siguiente comando para añadir el repositorio PHP 8.1 a tu servidor Debian.

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

Ahora verás que se añade el nuevo repositorio de PHP 8.1 y que el índice de paquetes se actualiza automáticamente.

añadir repo php

A continuación, instala los paquetes PHP-FPM 8.1 mediante el siguiente comando apt.

sudo apt install php8.1 php8.1-cli php8.1-fpm php8.1-common php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-zip php8.1-intl php8.1-bcmath php8.1-gd php8.1-gmp php8.1-redis

Introduce Y para confirmar la instalación y pulsa ENTER para continuar.

instalar php

Una vez instalado PHP 8.1, edita el archivo de configuración‘/etc/php/8.1/fpm/php.ini‘ utilizando el comando editor nano.

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

Cambia la configuración por defecto de PHP con los siguientes ajustes.

date.timezone = Europe/Paris
max_execution_time = 130
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M

Guarda el archivo y cierra el editor cuando hayas terminado.

A continuación, reinicia el servicio PHP-FPM 8.1 para aplicar los nuevos cambios mediante el siguiente comando systemctl.

sudo systemctl restart php8.1-fpm

Por último, ejecuta el siguiente comando systemctl para verificar el servicio PHP-FPM 8.1 y asegurarte de que el servicio está activado y en funcionamiento.

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

Verás que PHP-FPM 8.1 está habilitado y se ejecutará automáticamente al iniciar el sistema. Y el estado actual del servicio PHP-FPM 8.1 es en ejecución.

La Pila LEMP ya está instalada y configurada, a continuación empieza a crear una nueva base de datos y un nuevo usuario para Monica CRM.

Configurar la base de datos y el usuario MariaDB

Para configurar la base de datos MariaDB y el usuario para la instalación de Monica CRM, debes iniciar sesión en el shell MariaDB.

Accede al intérprete de comandos MariaDB mediante el comando mysql que se indica a continuación.

sudo mysql -u root -p

Ejecuta las siguientes consultas para crear una nueva base de datos y un nuevo usuario para Monica CRM. Para esta guía, crearás una nueva base de datos monicacrm_dbcon el usuario MariaDB monica@localhost. Además, asegúrate de cambiar la contraseña con la nueva contraseña.

CREATE DATABASE monicacrm_db;
CREATE USER monica@localhost;
GRANT ALL ON monicacrm_db.* TO 'monica'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

crear base de datos

A continuación, ejecuta la siguiente consulta para verificar los privilegios del usuario MariaDB monica@localhost.

SHOW GRANTS FOR monica@localhost;
quit

Y verás que el usuario MariaDB monica@localhost tiene permiso para acceder a la base de datos Monica CRM monicacrm_db.

comprobar privilegios de usuario

Instalar Composer

Después de configurar la base de datos MariaDB y el usuario, ahora instalarás el Composer que se utilizará para instalar las dependencias PHP para el Monica CRM.

Instala Composer mediante el comando de una línea que aparece a continuación. Este comando descargará el script instalador de Composer y lo ejecutará. A continuación, instala Composer en /usr/bin/composer.

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

instalar composer

Una vez instalado Composer, verifícalo utilizando el siguiente comando composer. Deberías ver la versión detallada de Composer y la página de ayuda sobre cómo utilizar Composer.

sudo -u www-data composer -v

Instalar Node.js y Yarn

Después de instalar Composer, ahora instalarás Node.js y Yarn. Ambos paquetes se utilizarán para compilar archivos estáticos para Monica CRM. Y la versión actual de Monica CRM requiere al menos Node.js v16.

El repositorio por defecto de Debian proporciona Node.js v12, así que instalarás la última versión de Node.js a través del repositorio de terceros Nodesource.

Ejecuta el siguiente comando para añadir el repositorio Nodesource de Node.js. En este ejemplo, instalarás Node.js v16.

curl -fsSL https://deb.nodesource.com/setup_16.x | bash -

Ahora verás que el repositorio Nodesource se añade a tu sistema Debian y se actualiza el índice de paquetes.

repositorio nodejs

A continuación, ejecuta el siguiente comando para añadir el repositorio de paquetes Yarn a tu sistema.

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Ahora actualiza y refresca tu índice de paquetes de Debian. A continuación, instala Node.js y Yarn mediante el siguiente comando apt.

sudo apt update
sudo apt install nodejs yarn

Introduce y para confirmar la instalación y pulsa ENTER para confirmar y continuar.

instalar nodejs yarn

Una vez instalados Node.js y Yarn, ejecuta el siguiente comando para comprobar el archivo binario de ambas aplicaciones.

which node
which yarn

Por último, comprueba la versión de Node.js y Yarn mediante el siguiente comando. Verás la versión instalada de Node.js y Yarn en la salida.

node --version
yarn --version

En este punto, las dependencias del paquete para Monica CRM están instaladas. A continuación, iniciarás la instalación de Monica CRM descargando el código fuente, instalando las dependencias de los paquetes mediante Composer, y luego compilando los archivos estáticos utilizando Node.js y Yarn.

Instalación de Monica CRM

Ahora comenzarás la instalación de Monica CRM. Descargarás el código fuente, establecerás el permiso y la propiedad correctos, instalarás las dependencias PHP mediante Composer, instalarás y generarás archivos estáticos mediante Yarn y Node.js, y luego generarás la clave de la aplicación y migrarás la base de datos para producción.

Antes de comenzar la instalación, asegúrate de que el paquete git está instalado. Si no lo está, puedes instalarlo mediante el siguiente comando apt.

sudo apt install git -y

Ahora, mueve el directorio de trabajo a«/var/www/» y descarga el código fuente de Monica CRM mediante el comando git como se indica a continuación. Verás el nuevo directorio«monica«.

cd /var/www/
git clone https://github.com/monicahq/monica.git

Muévete al directorio«/var/www/monica» y mueve la rama maestra a la versión específica«3.7.0«. Puedes consultar la página de GitHub de Monica CRM para obtener versiones detalladas de Monica CRM.

cd /var/www/monica
git checkout tags/v3.7.0

A continuación, copia la configuración por defecto .env.example a .env. Luego, cambia la propiedad a‘www-data‘.

cp /var/www/monica/.env.example /var/www/monica/.env
sudo chown www-data:www-data /var/www/monica/.env

Edita el archivo .env utilizando el editor nano.

nano /var/www/monica/.env

Cambia el‘APP_ENV‘ a production y el‘APP_URL‘ al nombre de dominio de tu instalación de Monica CRM. A continuación, cambia los datos de la base de datos MariaDB por la base de datos y el usuario que has creado antes.

APP_ENV=production
...
APP_URL=https://hwdomain.io/
...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
...
DB_DATABASE=monica
DB_USERNAME=homestead
DB_PASSWORD=password

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando para cambiar la propiedad del directorio de instalación de Monica CRM ‘/var/www/monica‘ al usuario www-data. A continuación, crea otro directorio ‘/var/www/.cache‘, y cambia la propiedad a www-data.

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

sudo mkdir -p /var/www/.cache
sudo chown -R www-data:www-data /var/www/.cache

A continuación, ejecuta el siguiente comando de composer para instalar las dependencias del paquete PHP para Monica CRM.

sudo -u www-data composer install --no-interaction --no-dev

A continuación puedes ver la instalación de las dependencias PHP.

instalar dependencias

Una vez instaladas las dependencias, verás un resultado como el siguiente:

instalación completada

A continuación, crea otro directorio nuevo que se utilizará para almacenar la caché de los paquetes JavaScript. A continuación, cambia la propiedad a www-data.

sudo mkdir -p /var/www/.yarn
sudo chown -R www-data:www-data /var/www/.yarn

Después, instala los paquetes JavaScript para las aplicaciones web Monica CRM y genera los archivos estáticos para el entorno de producción mediante el comando yarn que aparece a continuación.

sudo -u www-data yarn install
sudo -u www-data yarn run production

A continuación puedes ver el proceso de descarga de los paquetes JavaScript.

instalar dependencias

A continuación puedes ver el proceso de compilación de los archivos estáticos.

compilar archivos estáticos

Cuando se compilen los archivos estáticos, verás el mensaje de salida como«Compilado correctamente en ...».

archivos estáticos generados

Ahora, ejecuta el siguiente comando para generar la clave de aplicación para Monica CRM. A continuación, migra la base de datos para producción. Cuando se te pida que confirmes la acción, introduce«sí» y pulsa INTRO para continuar.

sudo -u www-data php artisan key:generate
sudo -u www-data php artisan setup:production -v

generar la clave de la app y migrar la base de datos

Una vez migrada la base de datos, verás un resultado como el siguiente:

base de datos migrada

Por último, para completar la configuración de Monica CRM, también necesitarás crear un Cronjob. Ejecuta el siguiente comando para crear un nuevo cron para el usuario www-data.

crontab -u www-data -e

Elige tu editor preferido y prueba la siguiente configuración en el archivo.

* * * * *   /usr/bin/php /var/www/monica/artisan schedule:run >> /dev/null 2>&1

Guarda el archivo y sal del editor cuando hayas terminado.

Para asegurar el permiso del directorio de instalación de Monica CRM, ejecuta el siguiente comando para cambiar la propiedad a www-datos. A continuación, cambia el permiso del directorio‘storage‘ a 775.

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storage

Llegados a este punto, ya has completado la configuración del Monica CRM. A continuación, configurarás el bloque de servidor Nginx para el Monica CRM.

Configurar el bloque de servidor Nginx

Antes de configurar el bloque de servidor Nginx, asegúrate de que tu nombre de dominio apunta a la dirección IP del servidor, y asegúrate también de que ya tienes certificados SSL. Si no tienes certificados SSL, puedes generar SSL gratis a través de Let’sencrypt.

Crea un nuevo archivo‘/etc/nginx/sites-available/monicacrm‘ utilizando el editor nano.

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

Añade las configuraciones de Nginx que se indican a continuación. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL.

server {
listen 80;
server_name hwdomain.io;
return 301 https://$host$request_uri;

}

server {
listen 443 ssl http2;

ssl_certificate /etc/letsencrypt/live/hwdomain.io/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hwdomain.io/private.key;

server_name hwdomain.io;
root /var/www/monica/public;

index index.php;

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

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

Guarda el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el siguiente comando para activar el bloque de servidor Nginx‘monicacrm‘. A continuación, verifica la configuración de Nginx para asegurarte de que tienes la configuración adecuada.

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

Si la configuración de Nginx es correcta, deberías ver un mensaje de salida como«Sintaxis correcta – prueba realizada correctamente«.

Ahora, ejecuta el siguiente comando systemctl para reiniciar el servicio Nginx y aplicar la configuración del bloque del servidor nee.

sudo systemctl restart nginx

Ya puedes acceder a tu instalación de Monica CRM a través del navegador web.

Para terminar

Abre el navegador web y visita el nombre de dominio de tu instalación de Monica CRM (es decir: https://hwdomain.io/). En la primera configuración, tendrás que registrar una cuenta para tu instalación de Monica CRM.

Introduce el nombre de usuario, la contraseña y la dirección de correo electrónico. A continuación, haz clic en Registrar.

configurar usuario

Después de que el usuario se registre, verás el panel de control del usuario de Monica CRM.

salpicadero

Conclusión

En este tutorial, has instalado Monica CRM en el servidor Debian 11. También has configurado la pila LEMP (Nginx, MariaDB y PHP-FPM) en el servidor Debian, has instalado el gestor de paquetes PHP Composer y has instalado Node.js y Yarn.

A lo largo de este tutorial, ya tienes el Monica CRM instalado y asegurado mediante conexiones HTTPS. Ahora puedes empezar a organizar tus contactos, crear diarios y hacer un seguimiento de todo lo importante sobre tus contactos.

También te podría gustar...