Monica adalah aplikasi web Personal Relationship Management (PRM) open source yang dirancang untuk mengatur interaksi dengan orang yang Anda cintai. Anggap saja sebagai CRM (alat populer yang digunakan oleh tim penjualan di dunia usaha) untuk teman atau keluarga Anda.

Monica memungkinkan Anda untuk melacak semua hal penting tentang teman dan keluarga. Seperti kegiatan yang dilakukan bersama mereka. Kapan terakhir Anda menghubungi seseorang. Apa yang Anda bicarakan. Membantu Anda mengingat nama dan usia anak-anak (Jika Anda punya banyak dan kadang lupa nama-nama mereka). Monica juga dapat mengingatkan Anda untuk menghubungi kolega jauh yang belum sempat Anda ajak bicara.

fitur Monica

  • Menambahkan dan Mengelola kontak
  • Tentukan hubungan antar kontak
  • Pengingat
  • Pengingat otomatis untuk ulang tahun
  • Tetap berkomunikasi dengan kontak tertentu dengan mengirim pengingat pada interval tertentu
  • Pengelolaan hutang
  • Kemampuan untuk menambahkan catatan ke kontak
  • Kemampuan untuk menunjukkan bagaimana Anda bertemu seseorang
  • Manajemen kegiatan yang dilakukan dengan kontak
  • Manajemen tugas
  • Pengelolaan hadiah
  • Manajemen alamat dan semua cara berbeda untuk menghubungi seseorang
  • Manajemen jenis bidang kontak
  • Manajemen hewan peliharaan kontak
  • Jurnal dasar
  • Kemampuan untuk menunjukkan bagaimana hari berjalan
  • Unggah dokumen dan foto
  • Ekspor dan impor data
  • Ekspor kontak sebagai vCard
  • Kemampuan untuk mengatur jenis kelamin khusus
  • Kemampuan untuk menentukan jenis aktivitas khusus
  • Kemampuan untuk kontak favorit
  • Lacak percakapan yang dilakukan di media sosial atau SMS
    Multi-user
  • Label untuk mengatur kontak
  • Kemampuan untuk menentukan bagian apa yang harus muncul pada lembar kontak
  • Multi-bahasa
  • API yang mencakup sebagian besar data

Persyaratan

  • Debian 10.x (Buster)
  • Git
  • NPM (Node Package Manager)
  • PHP versi 7.1 atau lebih baru
  • MySQL
  • HTTP Server dengan dukungan PHP (mis: Apache, Nginx, Caddy dll)
  • Composer
  • Opsional: Redis atau Beanstalk

Prasyarat

  • Server yang menjalankan Debian 10
  • User non-root dengan hak akses sudo.

Langkah awal

Siapkan zona waktu server, Pada contoh kali ini kita akan mengatur pada zona waktu menjadi Asia/Jakarta :

timedatectl list-timezones
sudo timedatectl set-timezone 'Asia/Jakarta'

Perbarui paket sistem operasi Anda (software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi Anda:

sudo apt update && sudo apt upgrade -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi Debian :

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

Langkah 1 – Install PHP dan PHP extensions

Install PHP dan PHP extensions yang di perlukan :

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

Untuk menampilkan modul PHP yang telah terkompilasi, anda dapat menjalankan :

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Periksa versi 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

Layanan PHP-FPM secara otomatis dimulai dan diaktifkan saat reboot pada sistem Debian 10, sehingga tidak perlu memulai dan mengaktifkannya secara manual. Kita dapat beralih ke langkah berikutnya.

Langkah 2 – Install Acme.sh client dan install sertifikat Let’s Encrypt

Mengamankan situs web Anda dengan HTTPS sangat penting, ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat SSL dari Let’s Encrypt, kita akan menggunakan klien Acme.sh.

Acme.sh adalah perangkat lunak unix shell murni untuk mendapatkan sertifikat SSL dari Let’s Encrypt dengan tanpa dependensi.

Download dan install 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 ~

periksa versi Acme.sh

acme.sh --version
# v2.8.2

Dapatkan sertifikat RSA dan ECC/ECDSA untuk domain/hostname Anda:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Jika ingin membuat sertifikat palsu untuk pengujian, Anda dapat menambahkan flag--stagingke perintah di atas.

Untuk list semua sertifikat, jalankan perintah :

acme.sh --list

Buat direktori untuk menyimpan sertifikat Anda. Kita akan menggunakan direktori /etc/letsencrypt

mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Install/copy sertifikat ke direktori /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"

Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.

Setelah mendapatkan sertifikat, keluar dari user root dan kembali ke user biasa dengan hak sudo :

exit

Langkah 3 – Install MariaDB dan buat database Monica

Install MariaDB database server dari repository default Debian:

sudo apt install -y mariadb-server

Check versi MariaDB :

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

Mulai dengan menjalankan script mysql_secure_installation untuk melakukan peningkatan keamanan dasar:

sudo mysql_secure_installation

Perintah ini akan mengubah kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian.

Jawab pertanyaan seperti yang ditunjukkan di bawah ini dan pastikan untuk memilih kata sandi yang aman untuk pengguna root:

Enter current password for root (enter for none):
Set root password? [Y/n]: Y
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

Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

mysql -u root -p

Berikan kata sandi root Anda, lalu buat database dan user database untuk Vanilla forums dengan perintah berikut:

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'g4nt!_d3n9aN_P@$$w0rD';
mariadb> FLUSH PRIVILEGES;

Jangan lupa mengganti dbname, username, dan kata g4nt!_d3n9aN_P@$$w0rD dengan konfigurasi pilihan Anda. Setelah selesai, ketik perintah berikut untuk keluar dari shell MariaDB.

mariadb> exit

Langkah 4 – Install dan Konfigurasi Nginx

Monica dapat bekerja dengan baik dengan sebagian besar perangkat lunak web server utama dengan dukungan PHP, tetapi dalam panduan ini, kami akan menggunakan NGINX. Jangan ragu untuk menggunakan Apache jika Anda lebih suka daripada NGINX.

Download dan install Nginx dari repositori Debian:

sudo apt install -y nginx

Periksa versi Nginx :

sudo nginx -v
# nginx version: nginx/1.14.2

Selanjutnya, konfigurasikan NGINX untuk Monica. Kita akan membuat server block untuk Monica dan tambahkan konfigurasi berikut.

sudo vim /etc/nginx/sites-available/monica.conf

Copy dan paste konfigurasi berikut :

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

Aktifkan konfigurasi monica.conf dengan membuat symlink ke direktori sites-enabled  :

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

Periksa konfigurasi NGINX untuk melihat tidak ada syntax errors

sudo nginx -t

Reload NGINX service:

sudo systemctl reload nginx.service

Langkah 5 – Instal Node.js dan npm

Instal Node.js:

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs

Periksa versi Node.js dan npm:

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

Langkah 6 – Install Composer

Install 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

Periksa versi Composer:

composer --version
# Composer version 1.9.1 2019-11-01 17:20:17

Langkah 7 – Install dan Konfigurasi Monica

Buat direktori root dokumen tempat Monica berada:

sudo mkdir -p /var/www/monica

Masuk ke direktori root dokumen:

cd /var/www/monica

Ubah kepemilikan direktori /var/www/monicake username Anda. Jadi ketika nama pengguna Anda misal. budi

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

Clone Monica repository ke dalam direktori root :

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

CATATAN: Periksa versi Monica di versi tags , karena master branch mungkin tidak selalu versi stabil. Temukan versi resmi terbaru di halaman rilis di Github dan perbarui ke nomor versi di atas untuk rilis terbaru.

Untuk membuat versi Anda dari semua environment variables yang diperlukan agar project dapat berjalan:

cp .env.example .env

Perbarui .envsesuai dengan kebutuhan spesifik Anda. Jangan lupa untuk mengatur DB_USERNAME dan DB_PASSWORD dengan pengaturan yang anda buat sebelumnya. Anda harus mengonfigurasi server email untuk pendaftaran dan pengingat agar berfungsi dengan benar.

Jalankan perintah berikut untuk menginstal semua packet.

composer install --no-interaction --no-suggest --no-dev

Jalankan perintah berikut untuk menghasilkan application key. Output perintah ini akan mengatur APP_KEY dengan nilai yang tepat secara otomatis.

php artisan key:generate

Jalankan perintah berikut untuk menjalankan migrasi, seed database dan folder symlink.

php artisan setup:production -v

Tetapkan kepemilikan dan izin yang sesuai:

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

Langkah 8 – Selesaikan instalasi Monica

Sekarang, buka browser web Anda dan ketik URL http://example.com. Anda akan diarahkan ke halaman berikut:

Berikan alamat email, nama, dan kata sandi Anda. Kemudian, klik tombol Register. Anda akan melihat dasbor Monica di halaman berikut:

monica 2