Monica, organize your social life

11th Feb 2018 Karibu

Monica is a “PRM” Personal Relationship Management. It helps you organize your social life and keep records of what is important. (Birthdate, gifts, kids, ….)

I always struggle to reminder birthdate, or important date, even to my close ones. So I don’t even dare to remember the wedding anniversary of my sister.

Monica is an opensource, selfhosted (they have a paid instance if you don’t want the trouble to host it yourself) personal CRM. You can keep tracks in a centralized and quite clean, interface, of all your interactions (Phone calls, what you discuss about,..) and important date (Birthdate, wedding anniversary,…) or things (Gifts received or given for Christmas, etc…).

Monica is also multi-users and let you add notes to contact, records pets information,.. on top of the regular info (Phone number, address, in relation with,….). It also includes a journal to record your day.

A great tool to help you manage your social interactions 😉


The paid service is getting quite some traction (10,000+ users, 100,000 contacts, 100,000+ reminders set,…), so I’m glad to see the business model is still with opensource philosophy.

One of the next feature to come, as per their roadmap, is an Android app version!! This will clearly help to manage all our interactions!


Interested to install it, here is how to install Monica on your server using Debian. (Ubuntu should be similar).



You will need first to have a LAMP system (With Apache, PHP and MariaDB).

However Monica requires PHP7.1 at least. For Debian Stretch, those are not available. But you can get them in the testing.


1) Add PPA ondrej/php to get latest PHP version

This is optional if you can get PHP7.1 in your repo. To check, simply run:

sudo apt-cache policy php

and see if you have access to 7.1 or above. If not, run:

sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg
sudo sh -c 'echo "deb $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update


2) Install required packages
sudo apt install apache2 mariadb-server php php-mysql php-xml php-intl php-mbstring php-intl git curl


3) Clone the Git repository
sudo git clone /var/www/monica

This will download around 40mb. Stay tuned.


4) Change permissions

To avoid permissions error, simply run:

sudo chown -R www-data:www-data /var/www/monica
sudo chmod -R 777 /var/www/monica


5) Install NodeJS

They recommend the version 6. To install it, simply run:

curl -sL | sudo -E bash -
sudo apt-get install -y nodejs


6) Install composer

It will help you to install automatically the dependencies.

curl -sS | php
sudo mv composer.phar /usr/local/bin/composer


7) Create a database

I usually use PHPMyAdmin to do it directly.

Here are the key information:

Database name: monicadb

Username: monica

Password: StrongPassword


8) Configure Monica

Start first with composer:

cd /var/www/monica
composer install

Then use the example configuration file to create your own:

cp .env.example .env
nano .env

and configure the database section.

Then setup the APP_Key and configure the instance:

php artisan key:generate
php artisan setup:production

and type yes, to continue.

You will need to setup a user (email) and password.


Once done, set up a crontab to run the scheduler.

sudo crontab -e

and add:

* * * * * sudo -u www-data php /var/www/monica/artisan schedule:run


9) Create a Virtualhost

Now, let’s create a dedicated Virtualhost, to access to your admin interface through monica.mydomain.tld

First, enable mod_rewrite

sudo a2enmod rewrite

Then create a vhost:

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

Here is mine:

<VirtualHost *:80>

    DocumentRoot /var/www/monica/public
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

    <Directory /var/www/monica/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted

Once done, save and enable it:

sudo a2ensite monica

And simply reload apache:

sudo service apache2 reload

You should now have access to Monica directly by pointing to your URL.





Loves to discover web-based apps to install on his own server@home and write articles about it


Add a comment


Written on Sat, 03 Mar 2018 05:21:24 by test