Cómo configurar un CRM personal con Monica en Ubuntu 20.04

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Creación de una base de datos MySQL y un usuario para almacenamiento persistente
  • Paso 2: Clonación y configuración de Monica
  • Paso 3: Instalación de complementos y administradores de paquetes de PHP
  • Paso 4: Instalación de paquetes de dependencia y preparación de activos
  • Paso 5: Configurar un trabajo cron para mantener los procesos en segundo plano en ejecución
  • Paso 6: Configuración de Apache para que sirva a su interfaz de usuario de Monica
  • Paso 7: Instalación de Certbot y configuración de certificados TLS
  • Conclusión
  • El modelo tradicional de gestión de relaciones con los clientes ( CRM ) de gestión de datos está diseñado para las relaciones entre empresas y muchos clientes . El software CRM se esfuerza por organizar y analizar las grandes cantidades de datos que las empresas recopilan de los clientes, al mismo tiempo que proporciona asistencia para coordinar los canales de comunicación. Para ayudar a las empresas a fortalecer las relaciones que tienen con cada uno de sus numerosos clientes individuales, el software CRM genera información con el objetivo de mejorar la satisfacción del cliente, la retención de clientes, el crecimiento de las ventas y más.

    El equipo detrás de Monica llama a su producto “CRM personal”. Monica toma los principios empresariales mencionados anteriormente y los aplica a las relaciones personales entre personas comunes. Todo lo que quieras recordar sobre tus amigos y familiares se puede almacenar y organizar en Monica.

    Este tutorial le guiará a través de una instalación manual completa de Monica. Esta versión de Monica tiene todas las funciones, es completamente gratuita y de código abierto, y le brinda el control más granular sobre su configuración.

    Prerrequisitos

    Antes de comenzar, debes tener lo siguiente:

    • Un servidor Ubuntu 20.04 con al menos 1,5 GB de RAM, configurado de acuerdo con nuestra guía de configuración de servidor inicial para Ubuntu 20.04 , con un usuario no root con sudoprivilegios y un firewall habilitado.

    Advertencia: si su servidor tiene menos de 1,5 GB de RAM, las tareas de Yarn incluidas en este tutorial de instalación no solo tardarán mucho más, sino que es posible que no se completen. Esto hace que la instalación sea imposible de completar. En ese caso, cambiar a un servidor con una mayor cantidad de RAM es la única solución.

    • Una pila LAMP instalada en su servidor. Puede configurarla siguiendo los pasos 1 a 3 de Cómo instalar la pila Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 20.04 .
    • La última versión de Node.js instalada en su servidor, utilizando un PPA NodeSource como se detalla en la Opción 2 de Cómo instalar Node.js en Ubuntu 20.04 .

    Paso 1: Creación de una base de datos MySQL y un usuario para almacenamiento persistente

    Monica necesita un lugar donde almacenar todos los datos ingresados, y el equipo detrás de Monica recomienda usar MySQL. MySQL ha demostrado ser confiable en muchos entornos de producción y es parte de la pila tecnológica LAMP (sistema operativo Linux, servidor web Apache, base de datos MySQL, lenguaje de programación PHP) que Monica emplea.

    Necesitará crear una base de datos y un usuario MySQL para usar con Mónica y luego otorgarle a ese usuario los privilegios adecuados.

    Comience iniciando sesión en la consola MySQL:

    1. sudo mysql

    Crea una base de datos configurada para manejar los datos de Mónica, sustituyendo con el nombre de base de datos que prefieras:

    1. CREATE DATABASE monicadb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Crea un nuevo usuario con un nombre de usuario y una contraseña de tu elección. Todas las acciones de la base de datos que realices con Monica se realizan a través de este usuario, así que recuerda el nombre de usuario y la contraseña que elijas:

    1. CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'strong_mysql_password';

    Otorgue a este nuevo usuario privilegios sobre la nueva base de datos que acaba de crear:

    1. GRANT ALL ON monicadb.* TO 'sammy'@'localhost';

    Para que los nuevos privilegios que acaba de otorgar surtan efecto, vuelva a cargar las tablas de concesión de MySQL:

    1. FLUSH PRIVILEGES;

    Ahora puedes salir de la consola MySQL ingresando:

    1. exit

    Has terminado de preparar tu base de datos, asegurándote de que todos los datos que ingreses en Monica persistirán.

    Paso 2: Clonación y configuración de Monica

    Para instalar Monica es necesario clonarla desde el repositorio de código oficial de Monica .

    Primero, necesitas los permisos adecuados para clonar a Monica en el directorio predeterminado del sitio Apache usando git. Usa chownpara configurar tu usuario Linux actual como el propietario de este directorio para obtener los permisos adecuados:

    1. sudo chown -R $USER:$USER /var/www

    De forma predeterminada en Ubuntu, Apache sirve contenido desde el /var/www/html/directorio. El siguiente comando se utiliza gitpara clonar el repositorio de Monica en un directorio llamado /var/www/monica/. Más adelante en esta guía, configurará un host virtual Apache para servir a Monica desde este directorio:

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

    Después de ejecutar este comando, tienes un clon del repositorio oficial de Monica en /var/www/monica. Aunque ahora tienes un clon funcional, tienes que seleccionar la última versión de Monica. Usa gitpara acceder a fetchlos metadatos más recientes, que incluyen las etiquetas git que apuntan a la última versión de Monica, y luego usa checkoutpara seleccionar una versión para usar.

    Primero, muévete a tu repositorio clonado:

    1. cd /var/www/monica

    A continuación fetchlos últimos datos de git:

    1. git fetch

    A continuación, checkoutla última versión de Monica usando git, que está marcada por las etiquetas git que obtuviste a través de fetch. Para elegir la última versión, consulta la página de lanzamiento de Monica . Al momento de escribir esto, la última versión de Monica es3.7.0, pero sustituya según corresponda:

    1. git checkout tags/v3.7.0

    Ahora que tiene la última versión, puede comenzar a configurar Monica. Monica depende de variables de entorno para la configuración. El equipo de Monica proporciona un archivo de configuración de ejemplo, pero no lo editará directamente. En su lugar, haga su propia copia de este archivo de configuración ejecutando el siguiente comando:

    1. cp .env.example .env

    Abra el archivo de configuración recién copiado con nanoo con su editor de texto preferido:

    1. nano .env

    En este archivo, configure sus credenciales MySQL. Asegúrese de que sean precisas según la configuración de su base de datos en el Paso 1. Desplácese hacia abajo en el archivo hasta encontrar las siguientes líneas y sustituya los datos según corresponda:

    /var/www/monica/.env

    . . .DB_DATABASE=monicadbDB_USERNAME=sammyDB_PASSWORD=strong_mysql_password. . .

    Una vez insertado, guarde y salga de su editor de texto. Si está utilizando nano, presione CTRL+Opara guardar el archivo y luego presione CTRL+Xpara salir.

    Paso 3: Instalación de complementos y administradores de paquetes de PHP

    Ahora que Monica está configurada y vinculada a una base de datos, es hora de configurar una interfaz para interactuar con Monica. Ya tienes PHP y Node.js instalados como requisitos previos para este tutorial. También necesitas instalar complementos de PHP, Composer con el framework Laravel y Yarn para construir una interfaz adecuada para Monica.

    Comience instalando los complementos PHP requeridos por Mónica:

    1. sudo apt install php-bcmath php-cli php-curl php-common
    2. php-fpm php-gd php-gmp php-intl php-json php-mbstring
    3. php-mysql php-opcache php-redis php-xml php-zip

    A continuación, instala Composer , que actúa como administrador de dependencias para PHP. Composer también es el administrador de dependencias preferido de Laravel , que es el marco web que impulsa a Monica con PHP.

    Descargue el instalador oficial de Composer en /tmp, una carpeta temporal que es una buena ubicación para archivos de instalación descartables y así evitar el desorden en su servidor:

    1. curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

    Instalar Composer, especificando la ubicación de instalación real y la convención de nomenclatura con los indicadores --install-diry --filename:

    1. sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin/ --filename=composer

    Una vez instalado Composer, es necesario instalar otro gestor de dependencias: Yarn . Mientras que Composer es un gestor de dependencias para PHP, Yarn se encarga de las dependencias de JavaScript. Con Node.js ya instalado en los requisitos previos, tienes acceso a la forma preferida de instalar Yarn, que es a través de npm .

    npmTambién es un gestor de paquetes de JavaScript y, si bien Yarn y npmtienen funciones superpuestas, Yarn se creó para abordar diferentes necesidades, incluidas las npmrelacionadas con su estabilidad y seguridad.

    El método convencional para instalar Yarn es instalarlo globalmente. Esto garantiza que todas las herramientas de prueba y automatización de un proyecto utilicen exactamente la misma versión de Yarn, lo que evita inconsistencias. Instale Yarn ingresando:

    1. sudo npm install --global yarn

    Una vez instalados los administradores de paquetes, el siguiente paso es hacer que Composer y Yarn instalen los paquetes y activos que administran.

    Paso 4: Instalación de paquetes de dependencia y preparación de activos

    Composer se encarga de la instalación de todos los paquetes de dependencias PHP que necesita Monica. En el siguiente comando, --no-interactionomite las solicitudes de confirmación durante el proceso, ya que hay una cantidad enorme de dependencias que deben instalarse. --no-devOmite la instalación de herramientas de desarrollo que no necesitará. Para instalar Composer, ingrese:

    1. composer install --no-interaction --no-dev

    Siempre que el comando se complete correctamente, no hay problema si el resultado no es exactamente el mismo que este ejemplo:

    OutputInstalling dependencies from lock fileVerifying lock file contents can be installed on current platform.Package operations: 183 installs, 0 updates, 0 removals. . .Package manifest generated successfully.92 packages you are using are looking for funding.Use the `composer fund` command to find out more! IlluminateFoundationComposerScripts::postInstall

    A continuación, use Yarn para instalar los paquetes front-end de JavaScript que requiere Monica:

    1. yarn install

    Cualquier advertencia de dependencia es normal y no crítica siempre que la instalación se realice completamente:

    Outputyarn install v1.22.18[1/5] Validating package.json...[2/5] Resolving packages...[3/5] Fetching packages...[4/5] Linking dependencies...warning "  laravel-mix@6.0.41" has unmet peer dependency "@babel/core@^7.15.8".. . .Done in 5.85s.Done in 80.32s.

    Monica incluye recursos estáticos como fuentes, imágenes, archivos JavaScript y CSS que deben prepararse antes de que el sitio front-end de Monica pueda ofrecerlos. También incluye un productionscript que automatiza este proceso. Utilice el yarn runcomando, que toma el nombre de un script como argumento. Esto puede llevar mucho tiempo, ya que implica la preparación de recursos estáticos:

    1. yarn run production

    Nuevamente, es normal tener múltiples advertencias de dependencia y obsolescencia. Esto se puede ignorar de manera segura siempre que se complete el comando.

    Outputyarn run v1.22.18$ php artisan lang:generate -vvvCreated: public/js/langs/vi.jsonCreated: public/js/langs/es.jsonCreated: public/js/langs/tr.json. . .webpack compiled successfullyDone in 79.24s.

    Una vez que Composer y Yarn hayan implementado las dependencias, aún debe terminar de configurar el marco de trabajo de Laravel. Todos los proyectos de Laravel requieren APP_KEYque se configure la variable de entorno. Esto suele hacerse de manera automática en un proyecto de Laravel convencional, pero como está clonando un proyecto de Laravel existente desde el repositorio de Monica, debe hacerlo manualmente.

    Esta es una tarea muy común, por lo que el equipo de Laravel ha proporcionado el siguiente comando para generar y configurar la clave de su aplicación:

    1. php artisan key:generate

    Una vez que hayas configurado la clave de tu aplicación, ya puedes preparar Laravel para su uso específico con Monica. El siguiente comando configura Laravel para un entorno de producción. Laravel inicializa las migraciones de bases de datos necesarias, borra los cachés, inicializa la base de datos, configura enlaces simbólicos y crea tu primera cuenta de Monica.

    Ingresa lo siguiente, sustituyendo tu email y contraseña deseados para tu primera cuenta de Mónica:

    1. php artisan setup:production --email=your_email_address --password=your_password -v

    Cuando se le solicite, escriba yespara confirmar la configuración y presione ENTERpara continuar.

    Output You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:  yes✓ Maintenance mode: on'/usr/bin/php7.4' 'artisan' down --retry="10"✓ Clear config cache'/usr/bin/php7.4' 'artisan' config:clear. . .Setup is done. Have fun.

    Las dependencias de Mónica ahora están completamente instaladas y se ha creado tu primera cuenta de Mónica.

    Paso 5: Configurar un trabajo cron para mantener los procesos en segundo plano en ejecución

    Monica requiere que varios procesos en segundo plano estén siempre en ejecución. Esto proporciona funciones como recordatorios programados y cálculo periódico de estadísticas, cuya lista completa se encuentra aquí .

    Mónica lo gestiona mediante el uso de cron, que se especializa en el manejo de tareas programadas o periódicas. Puedes añadirlas ingresando primero:

    1. sudo crontab -u www-data -e

    Si es la primera vez que utiliza crontab, se le solicitará que elija su editor de texto preferido. Para elegir nano, escriba 1y luego presione ENTER. Ahora, puede agregar las tareas periódicas de Laravel de Monica como un archivo programado cron. Dado que no se necesitan los registros de salida y error para estas tareas programadas, puede establecerlo /dev/nullcomo destino, lo que equivale a que se descarten los datos. Inserte lo siguiente al final del archivo:

    * * * * * php /var/www/monica/artisan schedule:run  /dev/null 21

    Cuando haya terminado, guarde y salga del editor de texto. De esta forma, se habrá asegurado de que Monica siempre le proporcione las últimas estadísticas y recordatorios al permitirle ejecutar tareas periódicamente en segundo plano.

    Paso 6: Configuración de Apache para que sirva a su interfaz de usuario de Monica

    Ahora que su interfaz para Monica está configurada, puede preparar su servidor web Apache modificando los permisos del directorio y habilitando los módulos necesarios.

    Primero, otorgue al usuario y al grupo www-data de su servidor acceso a sus activos estáticos para que puedan servirse a través de Internet:

    1. sudo chown -R www-data:www-data /var/www/monica/storage

    A continuación, deberás apuntar tu servidor web Apache a la ubicación en la que se encuentra actualmente Monica en tu sistema. Esto requiere configurar un archivo de configuración de Apache, pero ese archivo necesita que el rewritemódulo esté habilitado. Este módulo te permite reescribir las URL en rutas más claras y legibles según las condiciones que establezcas.

    Habilite el rewritemódulo Apache ingresando:

    1. sudo a2enmod rewrite

    Ahora puede utilizar el rewritemódulo en sus archivos de configuración de Apache. Cree su archivo de configuración principal de Apache para Monica ingresando lo siguiente:

    1. sudo nano /etc/apache2/sites-available/monica.conf

    Para una nueva instalación, el equipo de Monica recomienda la siguiente configuración de Apache. Esta configuración proporciona la configuración básica de Apache, incluido el manejo de solicitudes de páginas web de Monica, la entrega de recursos estáticos como JavaScript, CSS e imágenes, y la configuración de registros de errores y acceso.

    Monica viene configurada para aceptar la dirección IP de su servidor o, si tiene una configurada, el nombre de dominio de su servidor. Inserte lo siguiente en su archivo de configuración de Apache, sustituyendo uno de estos en lugar dedominio_del_servidor_o_IP:

    /etc/apache2/sites-available/monica.conf

    VirtualHost *:80    ServerName server_domain_or_IP    ServerAdmin webmaster@localhost    DocumentRoot /var/www/monica/public    Directory /var/www/monica/public        Options Indexes FollowSymLinks        AllowOverride All        Require all granted    /Directory    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined/VirtualHost

    Cuando haya terminado, guarde y salga de su editor de texto.

    Para comenzar a utilizar su sitio Monica, primero habilite su nuevo sitio y luego deshabilite el sitio predeterminado que viene con todas las instalaciones de Apache.

    Primero, habilita tu nuevo sitio de Monica:

    1. sudo a2ensite monica.conf

    A continuación, deshabilite la página de destino predeterminada de Apache:

    1. sudo a2dissite 000-default.conf

    Ahora está listo para iniciar su servidor web. Para ofrecer páginas de manera más óptima, el equipo de Monica recomienda utilizar FPM (FastCGI Process Manager) de PHP, que optimiza la interacción entre PHP y su servidor web Apache. FPM, en comparación con la implementación original de FastCGI para PHP, es mucho más eficiente en el manejo de procesos generados a partir de solicitudes a su servidor web.

    Para utilizar FastCGI, primero habilítelo y luego configure las variables que se enviarán al módulo FastCGI. Ingrese lo siguiente para habilitar FastCGI en Apache:

    1. sudo a2enmod proxy_fcgi setenvif

    Para habilitar FPM, primero habilite su archivo de configuración. Este archivo existe con un nombre que contiene la versión de PHP que está ejecutando actualmente. Puede encontrar la versión actual de PHP ingresando:

    1. php -v

    En la respuesta se muestra la versión de PHP. Solo tienes que anotar los dos primeros números del número de versión de PHP.

    OutputPHP 7.4.3 (cli) (built: Mar  2 2022 15:36:52) ( NTS )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

    Con este número de versión, puede habilitar FPM ingresando lo siguiente y sustituyendo su versión de PHP según corresponda:

    1. sudo a2enconf php7.4-fpm

    Ahora es necesario reiniciar FPM antes de que pueda funcionar:

    1. sudo systemctl restart php7.4-fpm

    Con los cambios implementados, valide su archivo de configuración de Apache:

    1. sudo apache2ctl configtest

    Mientras Syntax OKse muestre la línea, se pueden ignorar otras advertencias. Por último, reinicie Apache para que surtan efecto todos los cambios anteriores:

    1. sudo systemctl restart apache2

    Abra su navegador web e ingrese el nombre de dominio o IP de su servidor en la barra de direcciones:

    http://server_domain_or_IP

    La siguiente pantalla de Mónica se carga en respuesta:

    Ahora puedes iniciar sesión en tu cuenta de Mónica creada previamente conSu dirección de correo electrónicoytu_contraseñapara acceder a la página de inicio de Mónica.

    Paso 7: Instalación de Certbot y configuración de certificados TLS

    Su sitio Monica ya está operativo, pero si planea hacer que sus datos sean accesibles a través de Internet con un dominio de servidor, se recomienda encarecidamente protegerlo con cifrado TLS. Actualmente, su sitio es accesible a través de HTTP, lo que es adecuado para realizar pruebas y usarlo en su máquina local.

    Para protegerlo, debe cambiar una configuración en Monica para permitir solo el tráfico HTTPS a su sitio de Monica. HTTPS requiere un certificado TLS, por lo que debe instalar Certbot para obtener un certificado TLS a través de la autoridad de certificación gratuita Let’s Encrypt.

    Primero, abre .env:

    1. nano .env

    La configuración que debe cambiar es APP_ENV. De manera predeterminada, está configurada localpara permitir el tráfico HTTP. Cámbiela a para productionlimitar el tráfico solo a HTTPS. Busque y edite la línea:

    /var/www/monica/.env

    . . .APP_ENV=production. . .

    Cuando haya terminado, guarde y salga de su editor de texto.

    Suponiendo que haya seguido el requisito previo para instalar Apache, su firewall solo permite conexiones en el puerto 80para tráfico HTTP. Para permitir también el tráfico HTTPS, agregue esta regla de firewall:

    1. sudo ufw allow 'Apache Full'

    Además, debes eliminar la regla de firewall de Apache aplicada anteriormente que ahora es redundante:

    1. sudo ufw delete allow 'Apache'

    Con su firewall ahora listo, instale Certbot y el complemento Certbot que lo integra con Apache:

    1. sudo apt install certbot python3-certbot-apache

    Este complemento de Apache permite a Certbot buscar en sus archivos de configuración de Apache y solicitarle de forma interactiva los dominios de servidor que ya configuró en monica.conf. Para iniciar el proceso interactivo de creación de un certificado TLS para su dominio, ejecute el siguiente comando:

    1. sudo certbot --apache

    Ingrese su dirección de correo electrónico válida y acepte los términos del servicio. Certbot detectará su dirección de correo electrónico.dominio_servidorEstablezca previamente en monica.confy pregunte si desea redirigir todo el tráfico HTTP a HTTPS. Acepte esta opción de redirección, ya que Monica ahora está configurada para permitir solo el tráfico HTTPS.

    Certbot descargará su certificado y recargará automáticamente Apache con la nueva configuración y certificados.

    OutputCongratulations! You have successfully enabled https://test.do-community.com. . .

    Visita tu sitio web nuevamente y te redireccionará automáticamente de HTTP a HTTPS. Tu sitio ahora está protegido con encriptación TLS.

    Conclusión

    Ya ha completado la configuración de Monica y está listo para comenzar a utilizarla. Monica está diseñada en torno a una interfaz web que está diseñada para ser intuitiva. Para obtener más información sobre Monica, consulte el repositorio oficial de Monica .

    Si estás interesado en otras herramientas alojadas por ti mismo que realmente sean para empresas, puedes consultar Cómo instalar Odoo en Ubuntu 20.04 con Docker . Odoo es una herramienta de planificación de recursos empresariales (ERP) de código abierto que atiende necesidades empresariales como contabilidad, nóminas, gestión de inventario y más.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion