Cómo instalar Monica Personal Relationship Manager en Debian 10

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 realizadas 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 no has hablado desde hace tiempo.

Características

  • Añade y gestiona contactos
  • Define las relaciones entre los contactos
  • Recordatorios
  • Recordatorios automáticos de cumpleaños
  • Permanece en contacto con el 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

  • Debian 10.x (Buster)
  • 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 Debian 10 (buster).
  • Un usuario no root con privilegios en sudo.

Pasos iniciales

Comprueba tu versión de Debian:

lsb_release -ds
# Debian GNU/Linux 10 (buster)

Configura la zona horaria:

sudo dpkg-reconfigure tzdata

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

sudo apt update && sudo apt upgrade -y

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

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https libpng-dev

Paso 1 – Instalar PHP

Instala PHP, así como las extensiones PHP necesarias:

sudo apt install -y php php-cli php-fpm php-common php-mbstring php-xml php-mysql 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
. . .
. . .

Comprueba la versión de PHP:

php --version

# PHP 7.3.11-1~deb10u1 (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

El servicio PHP-FPM se inicia y habilita automáticamente al reiniciar el sistema Debian 10, por lo que no es necesario iniciarlo y habilitarlo manualmente. Podemos pasar al siguiente paso.

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 apt 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

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

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 apt 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/sites-available/monica.conf y configura NGINX para Mónica.

server {
    listen 80;
    listen [::]:80;
    listen 443 ssl;
listen [::]:443 ssl;

ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name example.com; 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/php7.3-fpm.sock; } }

Activa la nueva configuración de monica.conf vinculando el archivo al directorio sites-enabled:

sudo ln -s /etc/nginx/sites-available/monica.conf /etc/nginx/sites-enabled/

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 -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs

Comprueba las versiones de Node.js y npm:

node -v && npm -v
# v12.13.0
# 6.12.0

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 en 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 www-data:www-data /var/www/monica
sudo chmod -R 775 /var/www/monica/storage

Paso 8 - Completa la instalación de Monica

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

Enlaces

Scroll al inicio