Monica Personal Relationship Manager te installeren op CentOS 8
Monica is een open-source Personal Relationship Management (PRM) webapplicatie ontworpen om interacties met je dierbaren te organiseren. Zie het als een CRM (een populair hulpmiddel gebruikt door verkoopteams in het bedrijfsleven) voor je vrienden of familie. Met Monica kunnen mensen alles bijhouden wat belangrijk is voor hun vrienden en familie. Zoals de activiteiten die met hen gedaan worden. Wanneer je iemand voor het laatst hebt gebeld. Waarover je gepraat hebt. Het helpt je de naam en de leeftijd van de kinderen te onthouden. Het kan je er ook aan herinneren iemand te bellen die je al een tijdje niet hebt gesproken. Deze tutorial gaat over de installatie van Monica op CentOS 8.
Kenmerken
- Contacten toevoegen en beheren
- Relaties tussen contacten definiëren
- Herinneringen
- Automatische herinneringen voor verjaardagen
- In contact blijven met een contact door op een bepaald interval herinneringen te sturen
- Beheer van schulden
- Mogelijkheid om notities toe te voegen aan een contact
- Mogelijkheid om aan te geven hoe je iemand hebt ontmoet
- Beheer van activiteiten die met een contact zijn gedaan
- Beheer van taken
- Beheer van geschenken
- Beheer van adressen en alle verschillende manieren om contact met iemand op te nemen
- Beheer van soorten contactpersonen
- Beheer van huisdieren
- Basis dagboek
- Mogelijkheid om aan te geven hoe de dag is verlopen
- Uploaden van documenten en foto’s
- Exporteren en importeren van gegevens
- Contacten exporteren als vCard
- Mogelijkheid om aangepaste geslachten in te stellen
- Mogelijkheid om aangepaste activiteitstypen te definiëren
- Mogelijkheid tot favoriete contacten
- Bijhouden van gesprekken via sociale media of SMS
- Meerdere gebruikers
- Labels om contacten te organiseren
- Mogelijkheid om te definiëren welke sectie op het contactblad moet verschijnen
- Meerdere valuta’s
- Meerdere talen
- Een API die de meeste gegevens dekt
Vereisten
- CentOS 8
- Git
- NPM (Node Package Manager)
- PHP versie 7.1 of nieuwer
- MySQL
- HTTP-server met PHP-ondersteuning (bijv.: Apache, Nginx, Caddy…)
- Composer
- Optioneel: Redis of Beanstalk
Voorwaarden
- Een CentOS 8 besturingssysteem.
- Een niet-root gebruiker met
sudo
privileges.
Eerste stappen
Controleer je CentOS versie:
cat /etc/centos-release # CentOS Linux release 8.0.1905 (Core)
Stel de tijdzone in:
timedatectl list-timezones sudo timedatectl set-timezone 'Region/City'
Werk je besturingssysteempakketten (software) bij. Dit is een belangrijke eerste stap omdat het ervoor zorgt dat je de laatste updates en beveiligingsfixes hebt voor de standaard softwarepakketten van je besturingssysteem:
sudo yum update -y
Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het CentOS besturingssysteem:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release gcc-c++ make libpng-devel
Stap 1 – Installeer PHP
Installeer PHP, evenals de vereiste PHP-extensies:
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
Om PHP gecompileerd in modules te tonen, kun je uitvoeren:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controleer de PHP-versie:
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
PHP-FPM service starten en inschakelen:
sudo systemctl start php-fpm.service sudo systemctl enable php-fpm.service
Stap 2 – Installeer acme.sh client en verkrijg een Let’s Encrypt certificaat ( optioneel )
Je site beveiligen met HTTPS is niet noodzakelijk, maar het is een goede gewoonte om je siteverkeer te beveiligen. Om een TLS certificaat te verkrijgen van Let’s Encrypt gebruiken we acme.sh client. Acme.sh is een eenvoudige UNIX-shell software voor het verkrijgen van TLS-certificaten van Let’s Encrypt zonder enige afhankelijkheid.
Download en installeer 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 ~
Controleer de versie van acme.sh:
acme.sh --version # v2.8.2
Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostnaam:
# RSA 2048 acme.sh --issue --standalone -d example.com --keylength 2048 # ECDSA acme.sh --issue --standalone -d example.com --keylength ec-256
Als je valse certificaten wilt om te testen, kun je --staging
vlag toevoegen aan bovenstaande commando’s.
Na het uitvoeren van bovenstaande commando’s staan je certificaten en sleutels in:
- Voor RSA:
/home/username/example.com
directory. - Voor ECC/ECDSA:
/home/username/example.com_ecc
directory.
Om je uitgegeven certificaten op te sommen kun je uitvoeren:
acme.sh --list
Maak een directory aan om je certs in op te slaan. We zullen de /etc/letsencrypt
directory gebruiken.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installeer/kopieer certificaten naar /etc/letsencrypt directory.
# 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"
Alle certificaten worden elke 60 dagen automatisch vernieuwd.
Na het verkrijgen van de certificaten verlaat je de root gebruiker en keer je terug naar de gewone sudo gebruiker:
exit
Stap 3 – Installeer MariaDB en maak een database aan voor Monica
Installeer MariaDB database server:
sudo yum install -y mariadb-server
Controleer de MariaDB versie:
mysql --version # mysql Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Start en activeer de MariaDB service:
sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Voer mysql_secure installation
script om de beveiliging van MariaDB te verbeteren en het wachtwoord voor de MariaDB root
gebruiker:
sudo mysql_secure_installation
Beantwoord elk van de vragen:
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
Maak verbinding met MariaDB shell als de root gebruiker:
sudo mysql -u root -p # Enter password
Maak een lege MariaDB database en gebruiker voor Monica en onthoud de credentials:
mariadb> CREATE DATABASE dbname; mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password'; mariadb> FLUSH PRIVILEGES;
Sluit MariaDB af:
mariadb> exit
Vervang dbname,
username
en password
door jouw namen.
Stap 4 – Installeer en configureer NGINX
Monica werkt prima met de meeste grote webserver software met PHP ondersteuning, maar in deze gids gebruiken we NGINX. Voel je vrij om Apache te gebruiken als je dat liever hebt dan NGINX.
Installeer NGINX:
sudo yum install -y nginx
Controleer de versie van NGINX:
sudo nginx -v # nginx version: nginx/1.14.2
Voer het commando sudo vim /etc/nginx/conf.d/monica.conf
uit en configureer NGINX voor 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;
}
}
Test de NGINX configuratie:
sudo nginx -t
Herlaad NGINX:
sudo systemctl reload nginx.service
Stap 5 – Installeer Node.js en npm
Installeer Node.js:
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash - sudo yum install -y nodejs
Controleer Node.js en npm versies:
node -v && npm -v # v12.13.1 # 6.12.1
Stap 6 – Installeer Composer
Installeer 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
Controleer de Composer versie:
composer --version # Composer version 1.9.1 2019-11-01 17:20:17
Stap 7 – Installeer en configureer Monica
Maak een lege document root map aan waar Monica geïnstalleerd moet worden:
sudo mkdir -p /var/www/monica
Navigeer naar de document root map:
cd /var/www/monica
Wijzig het eigendom van de map /var/www/monica
naar gebruiker johndoe:
Vergeet niet “johndoe” te vervangen door je gebruikersnaam.
sudo chown -R johndoe:johndoe /var/www/monica
Kloon de Monica repository ernaar toe:
git clone https://github.com/monicahq/monica.git . git checkout tags/v2.15.2
OPMERKING: Check uit naar een gelabelde versie van Monica omdat de master branch niet altijd stabiel is. Zoek de laatste officiële versie op de releases pagina op Github en update deze naar bovenstaand versienummer naar de laatste release.
Om je versie te maken van alle omgevingsvariabelen die nodig zijn om het project te laten werken voer je uit:
cp .env.example .env
Update .env
naar jouw specifieke behoeften. Vergeet niet om DB_USERNAME
en DB_PASSWORD
met de achter gebruikte instellingen. Je zult een mailserver moeten configureren om registratie en herinneringen correct te laten werken.
Draai composer install --no-interaction --no-suggest --no-dev
om alle pakketten te installeren.
Voer php artisan key:generate
uit om een applicatiesleutel te genereren. Deze zalAPP_KEY
automatisch met de juiste waarde instellen.
Voer php artisan setup:production -v
uit om de migraties uit te voeren, de database en symlink mappen te zaaien.
Stel de juiste eigendom en rechten in:
sudo chown -R nginx:nginx /var/www/monica sudo chmod -R 775 /var/www/monica/storage
Voer sudo vim /etc/php-fpm.d/www.conf
uit en stel gebruiker en groep in op nginx
. Aanvankelijk wordt deze ingesteld op gebruiker en groep apache
.
sudo vim /etc/php-fpm.d/www.conf
Herstart php-fpm.service:
sudo systemctl restart php-fpm.service
Stap 8 – Voltooi de Monica installatie
Open nu je webbrowser en typ de URL http://example.com. Je wordt doorgestuurd naar de volgende pagina:
Vul je e-mailadres, naam en wachtwoord in. Klik dan op de knop Registreren. Op de volgende pagina zou je het Monica dashboard moeten zien: