Cách cài đặt Personal CRM với Monica trên Ubuntu 20.04

Phương pháp quản lý quan hệ khách hàng truyền thống (CRM) được tùy chỉnh cho mối quan hệ giữa doanh nghiệp và nhiều khách hàng. Phần mềm CRM cố gắng tổ chức và phân tích lượng lớn dữ liệu mà doanh nghiệp thu thập từ khách hàng, đồng thời cung cấp hỗ trợ trong việc điều phối các kênh giao tiếp. Để giúp doanh nghiệp củng cố mối quan hệ với từng khách hàng cá nhân, phần mềm CRM tạo ra những hiểu biết nhằm cải thiện sự hài lòng của khách hàng, sự duy trì khách hàng, tăng trưởng doanh số và nhiều hơn nữa.

Đội ngũ phát triển Monica gọi sản phẩm của mình là “Personal CRM” (CRM cá nhân). Monica áp dụng các nguyên tắc kinh doanh đã đề cập trước đó và áp dụng chúng vào các mối quan hệ cá nhân giữa mọi người hàng ngày. Mọi thứ bạn muốn nhớ về bạn bè và gia đình của mình có thể được lưu trữ và tổ chức trong Monica.

Hướng dẫn này sẽ chỉ dẫn bạn qua quá trình cài đặt Monica bằng cách thủ công. Phiên bản Monica này hoàn toàn miễn phí và mã nguồn mở, cung cấp cho bạn sự kiểm soát chi tiết nhất về cài đặt của bạn.

Trước khi bắt đầu, bạn cần có các yêu cầu sau đây:

  • Một máy chủ Ubuntu 20.04 với ít nhất 1,5 GB RAM, đã cài đặt theo hướng dẫn cài đặt máy chủ ban đầu cho Ubuntu 20.04, có một người dùng không phải là root có đặc quyền sudo và tường lửa đã được kích hoạt.
  • Cài đặt LAMP stack trên máy chủ của bạn. Bạn có thể cài đặt bằng cách làm theo các Bước 1 đến 3 trong Hướng dẫn Cài đặt Linux, Apache, MySQL, PHP (LAMP) stack trên Ubuntu 20.04.

Monica cần một nơi để lưu trữ tất cả dữ liệu bạn nhập vào, và nhóm phát triển Monica khuyến nghị sử dụng MySQL. MySQL đã được chứng minh là đáng tin cậy trong nhiều môi trường sản xuất và là một phần của LAMP (hệ điều hành Linux, máy chủ web Apache, cơ sở dữ liệu MySQL, ngôn ngữ lập trình PHP) mà Monica sử dụng.

Bạn sẽ cần tạo một cơ sở dữ liệu và người dùng MySQL để sử dụng với Monica, sau đó cấp quyền cho người dùng đó.

Bắt đầu bằng cách đăng nhập vào bảng điều khiển MySQL:

sudo mysql

Tạo một cơ sở dữ liệu được cấu hình để xử lý dữ liệu của Monica, thay thế monicadb bằng tên cơ sở dữ liệu mà bạn muốn:

CREATE DATABASE monicadb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Tạo một người dùng mới với tên người dùng và mật khẩu mà bạn chọn. Mọi hoạt động cơ sở dữ liệu bạn thực hiện với Monica đều được thực hiện thông qua người dùng này, vì vậy hãy nhớ tên người dùng và mật khẩu bạn chọn:

CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'strong_mysql_password';

Cấp quyền cho người dùng mới này đối với cơ sở dữ liệu mới bạn vừa tạo:

GRANT ALL ON monicadb.* TO 'sammy'@'localhost';

Để các quyền mới bạn vừa cấp có hiệu lực, làm mới bảng phân quyền của MySQL:

FLUSH PRIVILEGES;

Bây giờ bạn có thể thoát khỏi bảng điều khiển MySQL bằng cách nhập:

exit

Bạn đã hoàn thành việc chuẩn bị cơ sở dữ liệu, đảm bảo rằng tất cả dữ liệu bạn nhập vào Monica sẽ tồn tại.

Việc cài đặt Monica đòi hỏi bạn sao chép nó từ kho mã nguồn chính thức của Monica.

Đầu tiên, bạn cần có quyền sao chép Monica vào thư mục trang web mặc định của Apache bằng git. Sử dụng chown để đặt người dùng Linux hiện tại của bạn làm chủ sở hữu của thư mục này để có được quyền hợp lệ:

sudo chown -R $USER:$USER /var/www

Mặc định trên Ubuntu, Apache phục vụ nội dung từ thư mục /var/www/html/. Lệnh sau sử dụng git để sao chép kho mã nguồn chính thức của Monica vào một thư mục có tên /var/www/monica/. Sau đó trong hướng dẫn này, bạn sẽ thiết lập một ảo hóa Apache để phục vụ Monica từ thư mục này:

git clone https://github.com/monicahq/monica.git /var/www/monica

Sau khi chạy lệnh này, bạn có một bản sao của kho mã nguồn chính thức Monica tại /var/www/monica. Mặc dù bạn đã có một bản sao làm việc, bạn phải chọn phiên bản mới nhất của Monica. Sử dụng git để lấy dữ liệu siêu dữ liệu mới nhất, bao gồm các thẻ git trỏ đến phiên bản mới nhất của Monica, sau đó sử dụng checkout để chọn một phiên bản để sử dụng.

Đầu tiên, chuyển vào kho mã nguồn đã sao chép của bạn:

cd /var/www/monica

Sau đó, lấy dữ liệu mới nhất từ git:

git fetch

Tiếp theo, sử dụng git để checkout phiên bản mới nhất của Monica, được đánh dấu bằng các thẻ git bạn đã nhận được thông qua fetch. Để chọn phiên bản mới nhất, kiểm tra trang phát hành của Monica. Tại thời điểm viết bài này, phiên bản mới nhất của Monica là 3.7.0, nhưng hãy thay thế phù hợp:

Tham khảo  Tối Ưu Hóa Liên Kết Ngoại Vi + Thực Tiễn SEO

git checkout tags/v3.7.0

Bây giờ bạn đã có phiên bản mới nhất, bạn có thể bắt đầu cấu hình Monica. Monica phụ thuộc vào biến môi trường để cấu hình. Tập tin cấu hình mẫu được cung cấp bởi nhóm phát triển Monica, nhưng bạn sẽ không chỉnh sửa trực tiếp nó. Thay vào đó, tạo bản sao riêng của tệp cấu hình này bằng cách chạy lệnh sau:

cp .env.example .env

Mở tệp cấu hình mới được sao chép của bạn bằng nano hoặc trình chỉnh sửa văn bản ưa thích của bạn:

nano .env

Trong tệp này, đặt thông tin đăng nhập MySQL của bạn. Đảm bảo chúng chính xác với cách bạn thiết lập cơ sở dữ liệu trong Bước 1. Di chuyển xuống trong tệp cho đến khi bạn tìm thấy các dòng sau đây và thay thế dữ liệu của bạn:

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=monicadb

DB_USERNAME=sammy

DB_PASSWORD=strong_mysql_password

Sau khi đã chèn, lưu và thoát trình chỉnh sửa văn bản của bạn. Nếu bạn đang sử dụng nano, nhấn CTRL+O để lưu tệp của bạn, sau đó nhấn CTRL+X để thoát.

Bây giờ Monica đã được cấu hình và liên kết với cơ sở dữ liệu, đến lúc thiết lập giao diện người dùng để tương tác với Monica. Bạn đã cài đặt PHP và Node.js làm tiên quyết cho hướng dẫn này. Bạn cũng cần cài đặt các plugin PHP, Composer với framework Laravel và Yarn để tạo giao diện người dùng phù hợp cho Monica.

Bắt đầu bằng cách cài đặt các plugin PHP cần thiết bởi Monica:

sudo apt install php-bcmath php-cli php-curl php-common \

php-fpm php-gd php-gmp php-intl php-json php-mbstring \

php-mysql php-opcache php-redis php-xml php-zip

Tiếp theo, cài đặt Composer, công cụ quản lý phụ thuộc cho PHP. Composer cũng là công cụ quản lý phụ thuộc ưu tiên của Laravel, framework web mà Monica sử dụng với PHP.

Tải trình cài đặt Composer chính thức xuống /tmp, một thư mục tạm thời là một vị trí tốt cho các tệp cài đặt để tránh lộn xộn trên máy chủ của bạn:

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Cài đặt Composer, chỉ định vị trí cài đặt thực tế và quy ước đặt tên bằng cờ –install-dir và –filename:

sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin/ --filename=composer

Sau khi đã cài đặt Composer, bạn cần cài đặt một công cụ quản lý phụ thuộc khác: Yarn. Trong khi Composer là công cụ quản lý phụ thuộc cho PHP, Yarn xử lý các phụ thuộc JavaScript. Với Node.js đã được cài đặt sẵn trong các tiên quyết, bạn có thể truy cập vào cách ưu tiên để cài đặt Yarn, đó là thông qua npm.

npm cũng là trình quản lý gói JavaScript, và trong khi Yarn và npm có chức năng trùng lắp, Yarn được xây dựng để giải quyết các nhu cầu khác nhau. Điều này bao gồm việc giải quyết các vấn đề liên quan đến sự ổn định và bảo mật của npm.

Cách thông thường để cài đặt Yarn là cài đặt toàn cầu. Điều này đảm bảo tất cả các công cụ kiểm tra và tự động hóa trong một dự án sử dụng cùng một phiên bản Yarn chính xác, ngăn chặn không nhất quán. Cài đặt Yarn bằng cách nhập:

sudo npm install --global yarn

Với các trình quản lý gói của bạn đã được cài đặt, bước tiếp theo là cài đặt thực sự các gói và tài sản mà Composer và Yarn quản lý.

Composer xử lý việc cài đặt tất cả các gói phụ thuộc PHP cần thiết bởi Monica. Trong lệnh sau, –no-interaction bỏ qua các lời nhắc xác nhận trong quá trình, vì có quá nhiều phụ thuộc cần cài đặt. –no-dev bỏ qua việc cài đặt các công cụ phát triển không cần thiết. Để cài đặt Composer, nhập:

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

Miễn là lệnh hoàn thành thành công, không sao nếu kết quả đầu ra không giống chính xác như ví dụ này:

Tiếp theo, sử dụng Yarn để cài đặt các gói front-end JavaScript cần thiết bởi Monica:

yarn install

Bất kỳ cảnh báo phụ thuộc nào đều là bình thường và không quan trọng miễn là quá trình cài đặt hoàn tất:

Monica đi kèm với các tài sản tĩnh như phông chữ, hình ảnh, tệp JavaScript và CSS phải được chuẩn bị trước khi có thể được phục vụ bởi trang web Monica. Nó cũng đi kèm với một tập lệnh sản xuất tự động hóa quy trình này cho bạn. Sử dụng lệnh yarn run, lấy tên tập lệnh làm đối số. Việc này có thể mất nhiều thời gian, vì nó liên quan đến việc chuẩn bị tài sản tĩnh:

yarn run production

Một lần nữa, việc có nhiều cảnh báo phụ thuộc và cảnh báo lỗi không đáng lo. Các cảnh báo này có thể được bỏ qua an toàn miễn là quá trình lệnh hoàn thành.

Với các phụ thuộc đã được cài đặt bởi Composer và Yarn, bạn vẫn cần hoàn thiện việc cài đặt framework Laravel. Mỗi dự án Laravel đều yêu cầu biến môi trường APP_KEY được đặt. Thông thường, điều này được thực hiện tự động trong một dự án Laravel tiêu chuẩn, nhưng vì bạn đang sao chép một dự án Laravel hiện có từ kho mã nguồn Monica, bạn phải làm điều này thủ công.

Đây là một tác vụ rất phổ biến, vì vậy nhóm Laravel đã cung cấp lệnh sau để tạo và đặt khóa ứng dụng của bạn:

php artisan key:generate

Sau khi đã đặt khóa ứng dụng của bạn, bạn có thể chuẩn bị Laravel để sử dụng cụ thể với Monica. Lệnh tiếp theo thiết lập Laravel cho môi trường sản xuất. Laravel khởi tạo các bảng cơ sở dữ liệu cần thiết, xóa bộ nhớ cache, khởi tạo cơ sở dữ liệu, thiết lập liên kết tượng trung gian và tạo tài khoản Monica đầu tiên của bạn.

Nhập lệnh sau, thay thế email và mật khẩu mong muốn của bạn cho tài khoản Monica đầu tiên:

php artisan setup:production --email=your_email_address --password=your_password -v

Khi được nhắc, nhập yes để xác nhận cài đặt và nhấn ENTER để tiếp tục.

Bây giờ, các phụ thuộc của Monica đã được cài đặt hoàn chỉnh và tài khoản Monica đầu tiên của bạn đã được tạo.

Monica quản lý điều này thông qua việc sử dụng cron, một công cụ chuyên về xử lý các tác vụ được lập lịch hoặc định kỳ. Bạn có thể thêm chúng bằng cách đầu tiên nhập:

sudo crontab -u www-data -e

Nếu đây là lần đầu sử dụng crontab, bạn sẽ được yêu cầu chọn trình chỉnh sửa văn bản ưa thích của bạn. Để chọn nano, nhập 1 và sau đó nhấn ENTER. Bây giờ, bạn có thể thêm các tác vụ Laravel định kỳ của Monica như một cron được lập lịch. Vì không cần ghi nhật ký đầu ra và lỗi cho các tác vụ lập lịch này, bạn có thể đặt /dev/null làm điểm đến, có nghĩa là dữ liệu sẽ bị loại bỏ. Chèn đoạn sau vào cuối tệp:

/var/www/monica

Khi bạn hoàn thành, lưu và thoát trình chỉnh sửa văn bản của bạn. Với điều đó, bạn đã đảm bảo rằng Monica luôn cung cấp cho bạn các thống kê và lời nhắc mới nhất bằng cách cho phép nó chạy các tác vụ định kỳ ở nền.

Bây giờ, khi giao diện người dùng của bạn cho Monica đã được cài đặt, bạn có thể chuẩn bị máy chủ web Apache của bạn bằng cách sửa đổi quyền thư mục và bật các module cần thiết.

Trước tiên, cấp quyền truy cập người dùng và nhóm www-data của máy chủ của bạn vào các tài sản tĩnh của bạn để chúng có thể được phục vụ qua internet:

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

Tiếp theo, bạn sẽ chỉ định máy chủ web Apache của mình đến vị trí Monica hiện tại trên hệ thống của bạn. Điều này yêu cầu thiết lập một tệp cấu hình Apache, nhưng tệp đó cần module rewrite được bật. Module này cho phép bạn viết lại URL thành các đường dẫn sạch, dễ đọc dựa trên các điều kiện bạn đặt.

Bật module rewrite Apache bằng cách nhập:

sudo a2enmod rewrite

Bây giờ bạn có thể sử dụng module rewrite trong các tệp cấu hình Apache của bạn. Tạo tệp cấu hình Apache chính cho Monica của bạn bằng cách nhập:

sudo nano /etc/apache2/sites-available/monica.conf

Đối với một cài đặt mới, nhóm Monica khuyến nghị cấu hình Apache sau đây. Cấu hình này cung cấp thiết lập cơ bản cho Apache bao gồm xử lý yêu cầu trang web Monica, phục vụ các tài sản tĩnh như JavaScript, CSS và hình ảnh, và cấu hình nhật ký lỗi và truy cập.

Monica được cấu hình để chấp nhận địa chỉ IP máy chủ của bạn hoặc, nếu bạn đã cài đặt, tên miền máy chủ của bạn. Chèn đoạn sau vào tệp cấu hình Apache của bạn, thay thế một trong số này vào server_domain_or_IP:

<VirtualHost *:80>

ServerName server_domain_or_IP

DocumentRoot /var/www/monica/public

<Directory /var/www/monica/public>

Options FollowSymLinks

AllowOverride None

Require all granted

</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Khi bạn đã hoàn thành, lưu và thoát trình chỉnh sửa văn bản của bạn.

Để bắt đầu sử dụng trang web Monica của bạn, đầu tiên kích hoạt trang web mới của bạn, sau đó vô hiệu hóa trang web mặc định đi kèm với tất cả các cài đặt Apache.

Trước tiên, kích hoạt trang web Monica mới của bạn:

sudo a2ensite monica.conf

Sau đó, vô hiệu hóa trang chào mừng Apache mặc định:

sudo a2dissite 000-default.conf

Bây giờ bạn đã sẵn sàng khởi động máy chủ web của bạn. Để phục vụ các trang một cách tối ưu hơn, nhóm Monica khuyến nghị sử dụng PHP’s FPM (FastCGI Process Manager), qui tối ưu hóa tương tác giữa PHP và máy chủ web Apache của bạn. FPM, so với việc triển khai FastCGI ban đầu dành cho PHP, có hiệu suất cao hơn nhiều trong việc xử lý các quy trình được tạo ra từ yêu cầu đến máy chủ web của bạn.

Để sử dụng FastCGI, đầu tiên bật nó, sau đó đặt các biến để được gửi đến module FastCGI. Nhập lệnh sau để bật FastCGI trong Apache:

sudo a2enmod proxy_fcgi setenvif

Để kích hoạt FPM, trước tiên bật tệp cấu hình của nó. Tệp cấu hình này tồn tại với một tên chứa phiên bản PHP bạn đang chạy. Bạn có thể tìm phiên bản PHP hiện tại của mình bằng cách nhập:

php -v

Phiên bản PHP của bạn được xuất ra. Bạn chỉ phải ghi nhớ hai số đầu tiên trong số phiên bản PHP.

Với số phiên bản này, bạn có thể kích hoạt FPM bằng cách nhập lệnh sau, thay thế phiên bản PHP của bạn tương ứng:

sudo a2enconf php7.4-fpm

FPM cần được khởi động lại trước khi có thể hoạt động:

sudo systemctl restart php7.4-fpm

Với các thay đổi của bạn đã được thiết lập, xác minh tệp cấu hình Apache của bạn:

sudo apache2ctl configtest

Nhưng có cú pháp OK được xuất ra, các cảnh báo khác có thể được bỏ qua. Cuối cùng, khởi động lại Apache để đưa tất cả các thay đổi trước đó có hiệu lực:

sudo systemctl restart apache2

Mở trình duyệt web của bạn và nhập tên miền máy chủ hoặc địa chỉ IP của máy chủ vào thanh địa chỉ:

Màn hình Monica như sau sẽ được tải lên:

Bây giờ bạn có thể đăng nhập vào tài khoản Monica đã tạo trước đó bằng email và mật khẩu của bạn để truy cập trang chủ Monica.

Trang web Monica của bạn đã hoạt động, nhưng nếu bạn đang dự định làm cho dữ liệu của mình có thể truy cập thông qua internet với một tên miền máy chủ, rất khuyến nghị bảo mật nó bằng mã hóa TLS. Hiện tại, trang web của bạn có thể truy cập thông qua HTTP, phù hợp để kiểm tra và sử dụng trên máy cục bộ của bạn.

Để bảo mật nó, bạn cần thay đổi một cài đặt trong Monica để chỉ cho phép lưu lượng HTTPS đến trang web Monica của bạn. HTTPS yêu cầu chứng chỉ TLS, vì vậy hãy cài đặt Certbot để nhận chứng chỉ TLS thông qua cơ quan cấp chứng chỉ miễn phí Let’s Encrypt.

Đầu tiên, mở .env:

nano .env

Thiết lập cần thay đổi là APP_ENV. Mặc định, nó được đặt là local để cho phép lưu lượng HTTP. Thay đổi thành production để giới hạn lưu lượng chỉ có HTTPS. Tìm và chỉnh sửa dòng sau:

APP_ENV=local

Sau khi bạn đã hoàn thành, lưu và thoát trình chỉnh sửa văn bản của bạn.

Giả sử bạn đã làm theo tiên quyết để cài đặt Apache, tường lửa của bạn chỉ cho phép kết nối qua cổng 80 cho lưu lượng HTTP. Để cũng cho phép lưu lượng HTTPS, thêm luật tường lửa này:

sudo ufw allow 'Apache Full'

Ngoài ra, bạn nên xóa luật tường lửa Apache đã được áp dụng trước đó mà hiện giờ không cần thiết nữa:

sudo ufw delete allow 'Apache'

Với tường lửa của bạn đã sẵn sàng, cài đặt Certbot và plugin Certbot tích hợp nó với Apache:

sudo apt install certbot python3-certbot-apache

Plugin Apache này cho phép Certbot xem các tệp cấu hình Apache của bạn và tương tác tương tác với các miền máy chủ bạn đã thiết lập trước trong tệp monica.conf. Để bắt đầu quá trình tương tác để tạo chứng chỉ TLS cho miền của bạn, chạy lệnh sau:

sudo certbot --apache

Nhập địa chỉ email hợp lệ của bạn và chấp nhận các điều khoản dịch vụ. Certbot sẽ phát hiện máy chủ_domain bạn đã đặt trước đó trong monica.conf và hỏi bạn có muốn chuyển hướng tất cả lưu lượng HTTP sang HTTPS không. Chấp nhận tùy chọn chuyển hướng này, vì Monica hiện đã được đặt để chỉ cho phép lưu lượng HTTPS.

Certbot sẽ tải xuống chứng chỉ của bạn và tự động tải lại Apache với cấu hình và chứng chỉ mới.

Truy cập trang web của bạn một lần nữa, và nó sẽ tự động chuyển hướng bạn từ HTTP sang HTTPS. Trang web của bạn hiện đã được bảo mật với mã hóa TLS.

Bạn đã hoàn thành việc cài đặt Monica và đã sẵn sàng bắt đầu sử dụng nó. Monica được xây dựng xung quanh một giao diện web được thiết kế để sử dụng một cách trực quan. Để biết thêm thông tin về Monica, hãy xem kho lưu trữ chính thức của Monica.

Nếu bạn quan tâm đến các công cụ tự lưu trữ khác thực sự dành cho doanh nghiệp, bạn có thể kiểm tra Hướng dẫn Cài đặt Odoo trên Ubuntu 20.04 với Docker. Odoo là một công cụ quản lý nguồn mở doanh nghiệp (ERP), phục vụ các nhu cầu kế toán, lương, quản lý kho và nhiều hơn nữa.

Đánh giá bài viết
Contact Me on Zalo