Monica è un'applicazione web open source per la gestione delle relazioni personali (PRM) progettata per organizzare le interazioni con i tuoi cari. Pensalo come un CRM (uno strumento popolare utilizzato dai team di vendita nel mondo aziendale) per i tuoi amici o familiari. Monica consente alle persone di tenere traccia di tutto ciò che è importante sui loro amici e familiari. Come le attività che si fanno con loro. L'ultima volta che hai chiamato qualcuno. Di cosa hai parlato. Ti aiuterà a ricordare il nome e l'età dei bambini. Può anche ricordarti di chiamare qualcuno con cui non parli da un po'. Questo tutorial esaminerà l'installazione di Monica su CentOS 8.
Caratteristiche
- Aggiungi e gestisci contatti
- Definisci le relazioni tra i contatti
- Promemoria
- Promemoria automatici per i compleanni
- Rimani in contatto con un contatto inviando promemoria a un determinato intervallo
- Gestione dei debiti
- Possibilità di aggiungere note a un contatto
- Possibilità di indicare come hai incontrato qualcuno
- Gestione delle attività svolte con un contatto
- Gestione delle attività
- Gestione dei regali
- Gestione degli indirizzi e di tutti i diversi modi per contattare qualcuno
- Gestione dei tipi di campi di contatto
- Gestione degli animali da contatto
- Diario di base
- Possibilità di indicare come è andata la giornata
- Carica documenti e foto
- Esportazione e importazione di dati
- Esporta contatto come vCard
- Possibilità di impostare sessi personalizzati
- Possibilità di definire tipi di attività personalizzati
- Possibilità di aggiungere contatti preferiti
- Traccia le conversazioni effettuate sui social media o SMS
- Multiutenti
- Etichette per organizzare i contatti
- Possibilità di definire quale sezione deve apparire nel foglio di contatto
- Multi valute
- Multilingue
- Un'API che copre la maggior parte dei dati
Requisiti
- CentOS 8
- Git
- NPM (Gestione pacchetti di nodi)
- PHP versione 7.1 o successiva
- MySQL
- Server HTTP con supporto PHP (es:Apache, Nginx, Caddy...)
- Compositore
- Facoltativo:Redis o Beanstalk
Prerequisiti
- Un sistema operativo CentOS 8.
- Un utente non root con
sudo
privilegi.
Passaggi iniziali
Controlla la tua versione di CentOS:
cat /etc/centos-release
# CentOS Linux release 8.0.1905 (Core)
Imposta il fuso orario:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché ti assicura di avere gli ultimi aggiornamenti e correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:
sudo yum update -y
Installa alcuni pacchetti essenziali necessari per l'amministrazione di base del sistema operativo CentOS:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release gcc-c++ make libpng-devel
Passaggio 1 - Installa PHP
Installa PHP e le estensioni PHP richieste:
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
Per mostrare PHP compilato nei moduli, puoi eseguire:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controlla la versione 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
Avvia e abilita il servizio PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Passaggio 2:installa il client acme.sh e ottieni il certificato Let's Encrypt (opzionale)
Proteggere il tuo sito con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere un certificato TLS da Let's Encrypt utilizzeremo il client acme.sh. Acme.sh è un semplice software shell UNIX per ottenere certificati TLS da Let's Encrypt con zero dipendenze.
Scarica e installa 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 ~
Controlla la versione acme.sh:
acme.sh --version
# v2.8.2
Ottieni RSA e ECC/ECDSA certificati per il tuo dominio/nome host:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Se desideri certificati falsi per il test, puoi aggiungere --staging
flag ai comandi precedenti.
Dopo aver eseguito i comandi precedenti, i tuoi certificati e chiavi sarà in:
- Per RSA :
/home/username/example.com
directory. - Per ECC/ECDSA :
/home/username/example.com_ecc
directory.
Per elencare i certificati emessi puoi eseguire:
acme.sh --list
Crea una directory in cui archiviare i tuoi certificati. Useremo il /etc/letsencrypt
directory.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installa/copia i certificati nella directory /etc/letsencrypt.
# 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"
Tutti i certificati verranno rinnovati automaticamente ogni 60 giorni.
Dopo aver ottenuto i certificati, esci dall'utente root e torna all'utente sudo normale:
exit
Passaggio 3:installa MariaDB e crea un database per Monica
Installa server di database MariaDB:
sudo yum install -y mariadb-server
Controlla la versione di MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Avvia e abilita il servizio MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Esegui mysql_secure installation
script per migliorare la sicurezza di MariaDB e impostare la password per MariaDB root
utente:
sudo mysql_secure_installation
Rispondi a ciascuna delle domande:
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
Connettiti a MariaDB shell come utente root:
sudo mysql -u root -p
# Enter password
Crea un database e un utente MariaDB vuoti per Monica e ricorda le credenziali:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
Esci da MariaDB:
mariadb> exit
Sostituisci dbname,
username
e password
con i tuoi nomi.
Fase 4 - Installa e configura NGINX
Monica funzionerà bene con la maggior parte dei principali software per server Web con supporto PHP, ma in questa guida utilizzeremo NGINX. Sentiti libero di usare Apache se lo preferisci su NGINX.
Installa NGINX:
sudo yum install -y nginx
Controlla la versione di NGINX:
sudo nginx -v
# nginx version: nginx/1.14.2
Esegui sudo vim /etc/nginx/conf.d/monica.conf
comanda e configura NGINX per Monica.
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;
}
}
Prova la configurazione di NGINX:
sudo nginx -t
Ricarica NGINX:
sudo systemctl reload nginx.service
Passaggio 5 - Installa Node.js e npm
Installa Node.js:
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
sudo yum install -y nodejs
Controlla le versioni di Node.js e npm:
node -v && npm -v
# v12.13.1
# 6.12.1
Passaggio 6 - Installa Composer
Installa il compositore:
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
Controlla la versione Composer:
composer --version
# Composer version 1.9.1 2019-11-01 17:20:17
Passaggio 7 - Installa e configura Monica
Crea una cartella radice del documento vuota in cui installare Monica:
sudo mkdir -p /var/www/monica
Vai alla cartella principale del documento:
cd /var/www/monica
Modifica la proprietà di /var/www/monica
cartella per l'utente johndoe:
Non dimenticare di sostituire "johndoe" con il tuo nome utente.
sudo chown -R johndoe:johndoe /var/www/monica
Clona il repository di Monica su di esso:
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.15.2
NOTA:controlla una versione con tag di Monica poiché il ramo principale potrebbe non essere sempre stabile. Trova l'ultima versione ufficiale nella pagina dei rilasci su Github e aggiornala al numero di versione sopra all'ultima versione.
Per creare la tua versione di tutte le variabili di ambiente necessarie per il funzionamento del progetto, esegui:
cp .env.example .env
Aggiorna .env
alle tue esigenze specifiche. Non dimenticare di impostare DB_USERNAME
e DB_PASSWORD
con le impostazioni utilizzate dietro. Dovrai configurare un server di posta per la registrazione e i promemoria per funzionare correttamente.
Esegui composer install --no-interaction --no-suggest --no-dev
per installare tutti i pacchetti.
Esegui php artisan key:generate
per generare una chiave dell'applicazione. Questo imposterà APP_KEY
automaticamente con il valore corretto.
Esegui php artisan setup:production -v
per eseguire le migrazioni, seminare il database e le cartelle dei collegamenti simbolici.
Imposta la proprietà e le autorizzazioni appropriate:
sudo chown -R nginx:nginx /var/www/monica
sudo chmod -R 775 /var/www/monica/storage
Esegui sudo vim /etc/php-fpm.d/www.conf
e imposta utente e gruppo su nginx
. Inizialmente, sarà impostato su utente e gruppo apache
.
sudo vim /etc/php-fpm.d/www.conf
Riavvia php-fpm.service:
sudo systemctl restart php-fpm.service
Passaggio 8: completa l'installazione di Monica
Ora apri il tuo browser web e digita l'URL http://example.com. Verrai reindirizzato alla seguente pagina:
Fornisci il tuo indirizzo email, nome e password. Quindi, fare clic sul pulsante Registrati. Dovresti vedere la dashboard di Monica nella pagina seguente:
Link
- https://www.monicahq.com/
- https://github.com/monicahq/monica