Cómo instalar Monica Personal Relationship Manager en CentOS 8

Monica es una aplicación web de gestión de relaciones personales (PRM) de código abierto, diseñada para organizar las interacciones con tus seres queridos. Piensa en ella como un CRM (una herramienta popular utilizada por los equipos de ventas en el mundo corporativo) para tus amigos o familiares. Monica permite a las personas hacer un seguimiento de todo lo importante sobre sus amigos y familiares. Como las actividades que se realizan con ellos. Cuándo llamaste a alguien por última vez. De qué hablasteis. Te ayudará a recordar el nombre y la edad de los niños. También puede recordarte que tienes que llamar a alguien con quien hace tiempo que no hablas. Este tutorial repasa la instalación de Monica en CentOS 8.

Características

  • Añadir y gestionar contactos
  • Definir relaciones entre contactos
  • Recordatorios
  • Recordatorios automáticos de cumpleaños
  • Mantén el contacto con un contacto enviando recordatorios en un intervalo determinado
  • Gestión de deudas
  • Posibilidad de añadir notas a un contacto
  • Capacidad de indicar cómo has conocido a alguien
  • Gestión de las actividades realizadas con un contacto
  • Gestión de tareas
  • Gestión de regalos
  • Gestión de las direcciones y de las diferentes formas de contactar con alguien
  • Gestión de los tipos de campos de contacto
  • Gestión de las mascotas de los contactos
  • Diario básico
  • Posibilidad de indicar cómo ha ido el día
  • Carga de documentos y fotos
  • Exportación e importación de datos
  • Exportar el contacto como vCard
  • Posibilidad de establecer géneros personalizados
  • Capacidad de definir tipos de actividad personalizados
  • Capacidad de establecer contactos favoritos
  • Seguimiento de las conversaciones realizadas en las redes sociales o en los SMS
  • Multiusuario
  • Etiquetas para organizar los contactos
  • Posibilidad de definir qué sección debe aparecer en la hoja de contactos
  • Multidivisas
  • Multi-idiomas
  • Una API que cubre la mayoría de los datos

Requisitos

  • CentOS 8
  • Git
  • NPM (Node Package Manager)
  • PHP versión 7.1 o más reciente
  • MySQL
  • Servidor HTTP con soporte para PHP (por ejemplo: Apache, Nginx, Caddy…)
  • Compositor
  • Opcional: Redis o Beanstalk

Requisitos previos

  • Un sistema operativo CentOS 8.
  • Un usuario no root con privilegios en sudo.

Pasos iniciales

Comprueba tu versión de CentOS:

cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)

Configura la zona horaria:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso importante porque garantiza que tienes las últimas actualizaciones y correcciones de seguridad de los paquetes de software por defecto de tu sistema operativo:

sudo yum update -y

Instala algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo CentOS:

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release gcc-c++ make libpng-devel

Paso 1 – Instalar PHP

Instala PHP, así como las extensiones PHP necesarias:

sudo yum install -y php php-cli php-fpm php-common php-mbstring php-xml php-mysqlnd php-curl php-zip php-intl php-bcmath php-gd php-json php-gmp

Para mostrar el PHP compilado en módulos, puedes ejecutar:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Comprobar la versión de PHP:

php --version

# PHP 7.2.11-1-(cli) (built: Oct 26 2019 14:14:18) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.11-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies

Iniciar y habilitar el servicio PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Paso 2 – Instalar el cliente acme.sh y obtener el certificado Let’s Encrypt ( opcional )

Asegurar tu sitio con HTTPS no es necesario, pero es una buena práctica para asegurar el tráfico de tu sitio. Para obtener un certificado TLS de Let’s Encrypt utilizaremos el cliente acme.sh. Acme.sh es un sencillo programa de shell de UNIX para obtener certificados TLS de Let’s Encrypt con cero dependencias.

Descarga e instala acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Comprueba la versión de acme.sh:

acme.sh --version
# v2.8.2

Obtén certificados RSA y ECC/ECDSA para tu dominio/nombre de host:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si quieres certificados falsos para probarlos, puedes añadir la bandera --staging a los comandos anteriores.

Después de ejecutar los comandos anteriores, tus certificados y claves estarán en:

  • Para RSA: /home/username/example.com directorio.
  • Para ECC/ECDSA: directorio /home/username/example.com_ecc.

Para listar tus certificados emitidos puedes ejecutar:

acme.sh --list

Crea un directorio para almacenar tus certificados. Utilizaremos el directorio /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instala/copia los certificados en /etc/letsencrypt directorio.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos los certificados se renovarán automáticamente cada 60 días.

Después de obtener los certs sal del usuario root y vuelve al usuario sudo normal:

exit

Paso 3 - Instalar MariaDB y crear una base de datos para Mónica

Instala el servidor de bases de datos MariaDB:

sudo yum install -y mariadb-server

Comprueba la versión de MariaDB:

mysql --version
# mysql  Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Inicia y habilita el servicio MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Ejecuta el script mysql_secure installation script para mejorar la seguridad de MariaDB y establecer la contraseña para MariaDB root usuario de MariaDB:

sudo mysql_secure_installation

Responde a cada una de las preguntas:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Conéctate al shell de MariaDB como usuario root:

sudo mysql -u root -p
# Enter password

Crea una base de datos MariaDB vacía y un usuario para Mónica y recuerda las credenciales:

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;

Sal de MariaDB:

mariadb> exit

Sustituye dbname,  username y password por tus nombres.

Paso 4 - Instalar y configurar NGINX

Monica funcionará bien con la mayoría de los principales programas de servidores web con soporte para PHP, pero en esta guía utilizaremos NGINX. Siéntete libre de utilizar Apache si lo prefieres en lugar de NGINX.

Instala NGINX:

sudo yum install -y nginx

Comprueba la versión de NGINX:

sudo nginx -v
# nginx version: nginx/1.14.2

Ejecuta el comando sudo vim /etc/nginx/conf.d/monica.conf y configura NGINX para Mónica.

server {
  listen 80;
  listen 443 ssl;

  server_name example.com;
  root /var/www/monica/public/;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
index index.php; charset utf-8; location ^~ /storage { deny all; } location / { try_files $uri $uri/ /index.php?$query_string; } location ~* \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } }

Prueba la configuración de NGINX:

sudo nginx -t

Recarga NGINX:

sudo systemctl reload nginx.service

Paso 5 - Instalar Node.js y npm

Instala Node.js:

curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs

Comprueba las versiones de Node.js y npm:

node -v && npm -v
# v12.13.1
# 6.12.1

Paso 6 - Instalar Composer

Instala Composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Comprueba la versión de Composer:

composer --version
# Composer version 1.9.1 2019-11-01 17:20:17

Paso 7 - Instalar y configurar Monica

Crea una carpeta raíz de documentos vacía en la que se instalará Monica:

sudo mkdir -p /var/www/monica

Navega hasta la carpeta raíz de documentos:

cd /var/www/monica

Cambia la propiedad de la carpeta /var/www/monica al usuario johndoe:

No olvides sustituir "johndoe" por tu nombre de usuario.

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

Clona el repositorio de Monica en él:

git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.15.2

NOTA: Comprueba que se trata de una versión etiquetada de Mónica, ya que la rama maestra puede no ser siempre estable. Busca la última versión oficial en la página de versiones de Github y actualízala con el número de versión anterior a la última versión.

Para crear tu versión de todas las variables de entorno necesarias para que el proyecto funcione ejecuta

cp .env.example .env

Actualiza .env a tus necesidades específicas. No olvides poner DB_USERNAME y DB_PASSWORD con las configuraciones que se utilizan detrás. Tendrás que configurar un servidor de correo para que el registro y los recordatorios funcionen correctamente.

Ejecuta composer install --no-interaction --no-suggest --no-dev para instalar todos los paquetes.

Ejecuta php artisan key:generate para generar una clave de aplicación. Esto config uraráAPP_KEY con el valor correcto automáticamente.

Ejecuta php artisan setup:production -v para ejecutar las migraciones, sembrar la base de datos y las carpetas de enlaces simbólicos.

Establece la propiedad y los permisos adecuados:

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

Ejecuta sudo vim /etc/php-fpm.d/www.conf y establece el usuario y el grupo nginx. Inicialmente, se establecerá el usuario y el grupo apache.

sudo vim /etc/php-fpm.d/www.conf

Reinicia php-fpm.service:

sudo systemctl restart php-fpm.service

Paso 8 - Completa la instalación de Mónica

Ahora, abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la siguiente página:

Crear una cuenta

Proporciona tu dirección de correo electrónico, tu nombre y tu contraseña. A continuación, haz clic en el botón Registrar. Deberías ver el panel de control de Monica en la siguiente página:

Inicio de sesión de Monica PRM

También te podría gustar...