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