How to Install Monica Personal Relationship Manager on Ubuntu 18.04 LTS?

Monica is a free, open source web-based Personal Relationship Management software written in the Laravel framework. It is used to keep track of all the important details about your friends and family. You can easily add and manage contacts, define relationships between contacts, set auto reminders for birthdays using Monica. You can also track conversations made on social media or SMS using Monica. Monica has an ability to define what section should appear on the contact sheet.

 

In this tutorial, we will learn how to install Monica PRM on Ubuntu 18.04 server.

 

Requirements

  • A server running Ubuntu 18.04.
  • A root password is set up on your server.

 

Getting Started

 

First, you will need to update your system with the latest version. You can do it with the following command:

apt-get update -y
apt-get upgrade -y

 

Once your system is updated, restart the system to apply these changes.

 

Install Nginx, MariaDB and PHP

 

First, you will need to install Nginx, MariaDB server, PHP and other PHP modules to your server. You can install all of them by running the following command:

apt-get install nginx mariadb-server php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-xml php7.2-mysql php7.2-curl php7.2-zip php7.2-intl git wget unzip -y

 

Once all the packages are installed, you can proceed to the Next step.

 

Configure MariaDB

 

By default, MariaDB installation is not secured, so you will need to secure it first. You can secure it with the following command:

 

mysql_secure_installation

 

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

 

Once MariaDB is secured, log in to MariaDB shell with the following command:

mysql -u root -p

 

Enter your root password. Then, create a database and user for Monica with the following command:

MariaDB [(none)]> create database monica;
MariaDB [(none)]> create user monica@localhost identified by 'password';

 

Next, grant all the privileges to the Monica with the following command:

MariaDB [(none)]> GRANT ALL ON monica.* TO 'monica'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

 

Next, flush the privileges and exit from the MariaDB shell with the following command:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

 

Install Composer and Node.j

 

Next, you will need to install Composer to your system. The composer is a package manager for the PHP programming language. It is used to install all the required dependencies by PHP.

 

First, download the composer installer with the following command:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

 

Next, you will need to verify the data integrity of the script by comparing the script SHA-384 hash with the latest installer hash found on the Composer Public Key page. You can do it with the following command:

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

 

If everything will be fine, you should see the following output:

Installer verified

 

Next, install Composer with the following command:

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

 

You should see the following output:

All settings correct for using Composer
Downloading...

Composer (version 1.8.4) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

 

Next, install Node.js with the following command:

curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

 

Install and configure Monica

 

Next, you will need to create a directory structure for Monica. You can do this with the following command:

mkdir -p /var/www/monica

 

Next, change the directory to monica and download the latest version of Monica with the following command:

cd /var/www/monica
git clone https://github.com/monicahq/monica.git .
git checkout tags/v2.1.1

 

You should see the following output:

Note: checking out 'tags/v2.1.1'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b 

HEAD is now at dcfd15fa Update translations (#1324)

 

Next, you will need to rename the example environment variable file. You can do it with the following command:

mv .env.example .env

 

Next, open .env file and define your database and username:

nano .env

 

Make the following changes:

# Database information
# To keep this information secure, we urge you to change the default password
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
# You can use mysql unix socket if available, it overrides DB_HOST and DB_PORT values.
#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock
DB_DATABASE=monica
DB_USERNAME=monica   
DB_PASSWORD=password

 

Next, install all the required PHP dependencies using Composer with the following command:

composer install --no-interaction --no-suggest --no-dev --ignore-platform-reqs

 

Next, install all front-end dependencies with the following command:

npm install

 

Next, compile the JS and CSS with the following command:

npm run production

 

Next, generate an application key with the following command:

php artisan key:generate

 

Next, migrate and seed the database with the following command:

php artisan setup:production

 

You should see the following output:

 You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:

 You are about to setup and configure Monica. Do you wish to continue? (yes/no) [no]:
 > yes

 
-----------------------------
|
| Welcome to Monica v2.1.1
|
-----------------------------
| You can now register to the first account by opening the application:
| URL:      http://localhost
-----------------------------
Setup is done. Have fun.

 

Next, provide proper permissions to the monica directory with the following command:

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

 

Once you have done, you can proceed to the next step.

 

Configure Nginx for Monica

 

Next, you will need to create an Nginx virtual host file for Monica. You can do this by creating monica.conf file in/etc/nginx/sites-available/ directory with the following command:

nano /etc/nginx/sites-available/monica.conf

 

Add the following lines:

server {
    listen 80;
    listen [::]:80;

    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.2-fpm.sock;
    }
}

 

Save and close the file. Then, restart Nginx service with the following command:

systemctl restart nginx

 

You can now check the status of Nginx with the following command:

systemctl status nginx

 

Output:

? nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-02-15 10:03:53 UTC; 2min 12s ago
     Docs: man:nginx(8)
  Process: 22598 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=killed, signal=TERM)
  Process: 22612 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 22601 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 22613 (nginx)
    Tasks: 2 (limit: 1114)
   CGroup: /system.slice/nginx.service
           ??22613 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           ??22615 nginx: worker process

Feb 15 10:03:53 ubuntu1804 systemd[1]: nginx.service: Failed with result 'timeout'.
Feb 15 10:03:53 ubuntu1804 systemd[1]: Stopped A high performance web server and a reverse proxy server.
Feb 15 10:03:53 ubuntu1804 systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 15 10:03:53 ubuntu1804 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Feb 15 10:03:53 ubuntu1804 systemd[1]: Started A high performance web server and a reverse proxy server.

 

Access Monica

 

Monica is now installed and configured. It's time to access the Monica web interface. Now, open your web browser and type the URL http://example.com. You will be redirected to the page.  Provide your email address, name, and password. Then, click on the Register button. You should see the Monica dashboard.

 

Congratulations! you have successfully installed Monica on Ubuntu 18.04 server. You can now easily manage your contacts using Monica from a central location.

  • 1 Users Found This Useful
Was this answer helpful?

Related Articles

Create a bootable USB stick on Ubuntu

Install or upgrade Ubuntu Test out the Ubuntu desktop experience without touching your PC...

Apply kernel patches without rebooting

1. Overview The Canonical Livepatch Service applies critical kernel security patches without...

Install and Configure Samba

1. Overview A Samba file server enables file sharing across different operating systems over a...

Configure SSH to use two-factor authentication

1. Overview SSH, the secure shell, is often used to access remote Linux systems. Because we...

How to Install ONLYOFFICE on Ubuntu 18.04

1. INTRODUCTION ONLYOFFICE is an open source office suite that includes online editors and the...