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--staging
ke 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/monica
ke 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 .env
sesuai 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: