installeer je Monica Personal Relationship Manager op Debian 10

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 dat gebruikt wordt door verkoopteams in het bedrijfsleven) voor je vrienden of familie. Monica stelt mensen in staat om alles bij te houden wat belangrijk is over hun vrienden en familie. Zoals de activiteiten die met hen gedaan worden. Wanneer je iemand voor het laatst belde. Waarover je gepraat hebt. Het helpt je de naam en de leeftijd van de kinderen te onthouden. Het kan je er ook aan herinneren dat je iemand moet bellen die je een tijd niet gesproken hebt.

Kenmerken

  • Contacten toevoegen en beheren
  • Definieer relaties tussen contacten
  • Herinneringen
  • Automatische herinneringen voor verjaardagen
  • Blijf in contact met contact door herinneringen te sturen met een bepaalde interval
  • Beheer van schulden
  • Mogelijkheid om notities aan een contactpersoon toe te voegen
  • Mogelijkheid om aan te geven hoe je iemand ontmoet hebt
  • Beheer van activiteiten die met een contact gedaan zijn
  • Beheer van taken
  • Beheer van geschenken
  • Beheer van adressen en alle verschillende manieren om iemand te contacteren
  • Beheer van contactpersoon veldtypes
  • Beheer van huisdieren van contactpersonen
  • Basis dagboek
  • Mogelijkheid om aan te geven hoe de dag verliep
  • Documenten en foto’s uploaden
  • Exporteren en importeren van gegevens
  • Exporteer contactpersonen als vCard
  • Mogelijkheid om aangepaste geslachten in te stellen
  • Mogelijkheid om aangepaste activiteitensoorten in te stellen
  • Mogelijkheid om contacten te favorieten
  • Traceer gesprekken over sociale media of sms
  • Multi-gebruikers
  • Labels om contacten te ordenen
  • Mogelijkheid om te bepalen welke rubriek op het contactblad moet verschijnen
  • Meerdere munteenheden
  • Multi-talen
  • Een API die het grootste deel van de gegevens dekt

Vereisten

  • Debian 10.x (Buster)
  • Git
  • NPM (Node pakketbeheerder)
  • PHP versie 7.1 of nieuwer
  • MySQL
  • HTTP server met PHP ondersteuning (b.v.: Apache, Nginx, Caddy…)
  • Composer
  • Optioneel: Redis of Beanstalk

Vereisten

  • Een Debian 10 (buster) besturingssysteem.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Debian versie:

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

Stel de tijdzone in:

sudo dpkg-reconfigure tzdata

Werk je besturingssysteem pakketten (software) bij. Dat is een essentiële eerste stap omdat je er zo zeker van bent dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

sudo apt update && sudo apt upgrade -y

Installeer enkele essentiële pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

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

Stap 1 – Installeer PHP

Installeer PHP, en ook de vereiste PHP uitbreidingen:

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

Om PHP gecompileerd in modules te laten zien, kun je:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

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

De PHP-FPM dienst wordt op het Debian 10 systeem automatisch gestart en ingeschakeld bij het opnieuw opstarten, dus het is niet nodig hem handmatig te starten en in te schakelen. We kunnen verder gaan met de volgende stap.

Stap 2 – Installeer acme.sh client en verkrijg Let’s Encrypt certificaat ( optioneel )

Je site beveiligen met HTTPS is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen zullen we acme.sh client gebruiken. Acme.sh is een eenvoudige UNIX shell software om TLS certificaten te verkrijgen van Let’s Encrypt zonder afhankelijkheden.

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 de 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 certs op te sommen kun je uitvoeren:

acme.sh --list

Maak een directory 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 om de 60 dagen automatisch vernieuwd.

Na het verkrijgen van certs verlaat je de root gebruiker en ga je terug naar de gewone sudo gebruiker:

exit

Stap 3 - Installeer MariaDB en maak een databank voor Monica

Installeer de databaseserver MariaDB:

sudo apt install -y mariadb-server

Controleer de versie van MariaDB:

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

Voer mysql_secure installation script om MariaDB beter te beveiligen en stel het wachtwoord in 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 je eigen namen.

Stap 4 - Installeer en configureer NGINX

Monica werkt prima met de meeste grote web server software met PHP ondersteuning, maar in deze gids zullen we NGINX gebruiken. Voel je vrij om Apache te gebruiken als je dat liever hebt dan NGINX.

Installeer NGINX:

sudo apt install -y nginx

Controleer de versie van NGINX:

sudo nginx -v
# nginx version: nginx/1.14.2

Voer sudo vim /etc/nginx/sites-available/monica.conf commando uit en configureer NGINX voor Monica.

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; } }

Activeer de nieuwe monica.conf configuratie door het bestand te koppelen aan de map sites-enabled:

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

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

Controleer de versies van Node.js en npm:

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

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 waarin Monica geïnstalleerd moet worden:

sudo mkdir -p /var/www/monica

Navigeer naar de document root map:

cd /var/www/monica

Verander het eigendom van de map /var/www/monica in gebruiker johndoe:

Vergeet niet "johndoe" te vervangen door je gebruikersnaam.

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

Kloon de Monica repository er naar toe:

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

OPMERKING: Check uit naar een getagde versie van Monica omdat de master branch niet altijd stabiel kan zijn. Zoek de laatste officiële versie op de releases pagina op Github en werk die bij naar het bovenstaande 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 je specifieke behoeften. Vergeet niet om in te stellen DB_USERNAME en DB_PASSWORD te gebruiken met de achterliggende instellingen. Je zult een mailserver moeten configureren om registratie en herinneringen correct te laten werken.

Voer uit composer install --no-interaction --no-suggest --no-dev om alle pakketten te installeren.

Draai php artisan key:generate om een applicatiesleutel te genereren. Dit stelt APP_KEY automatisch in met de juiste waarde.

Draai php artisan setup:production -v om de migraties uit te voeren, de databank te zaaien en de mappen te symlinken.

Stel het juiste eigendom en de juiste rechten in:

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

Stap 8 - Voltooi de installatie van Monica

Open nu je webbrowser en typ de URL http://example.com. Je wordt doorverwezen naar de volgende pagina:

Maak een account aan

Geef je email adres, naam en wachtwoord op. Klik dan op de knop Register. Je zou het Monica dashboard op de volgende pagina moeten zien:

Monica PRM login

Links