Skip to content

monica

Monica is an open-source web application to organize the interactions with your loved ones. They call it a PRM, or Personal Relationship Management. Think of it as a CRM (a popular tool used by sales teams in the corporate world) for your friends or family.

Monica allows people to keep track of everything that's important about their friends and family. Like the activities done with them. When you last called someone. What you talked about. It will help you remember the name and the age of the kids. It can also remind you to call someone you haven't talked to in a while.

They have pricing plans for their hosted service, but the self-hosted solution has all the features.

It also has a nice API to interact with.

Install

They provide a very throughout documented Docker installation.

If you just want to test it, use this docker compose

File: docker-compose.yml

version: "3.4"

services:
  app:
    image: monicahq/monicahq
    depends_on:
      - db
    ports:
      - 8080:80
    environment:
      # generate with `pwgen -s 32 1` for instance:
      - APP_KEY=DoKMvhGu795QcMBP1I5sw8uk85MMAPS9
      - DB_HOST=db
    volumes:
      - data:/var/www/monica/storage
    restart: always

  db:
    image: mysql:5.7
    environment:
      - MYSQL_RANDOM_ROOT_PASSWORD=true
      - MYSQL_DATABASE=monica
      - MYSQL_USER=homestead
      - MYSQL_PASSWORD=secret
    volumes:
      - mysql:/var/lib/mysql
    restart: always

volumes:
  data:
    name: data
  mysql:
    name: mysql

Once you install your own, you may want to:

  • Change the APP_KEY
  • Change the database credentials. In the application docker are loaded as DB_USERNAME, DB_HOST and DB_PASSWORD.
  • Set up the environment and the application url with APP_ENV=production and APP_URL.
  • Set up the email configuration

    MAIL_MAILER: smtp
    MAIL_HOST: smtp.service.com # ex: smtp.sendgrid.net
    MAIL_PORT: 587 # is using tls, as you should
    MAIL_USERNAME: my_service_username # ex: apikey
    MAIL_PASSWORD: my_service_password # ex: SG.Psuoc6NZTrGHAF9fdsgsdgsbvjQ.JuxNWVYmJ8LE0
    MAIL_ENCRYPTION: tls
    MAIL_FROM_ADDRESS: no-reply@xxx.com # ex: email you want the email to be FROM
    MAIL_FROM_NAME: Monica # ex: name of the sender
    

Here is an example of all the possible configurations.

They also share other configuration examples where you can take ideas of alternate setups.

If you don't want to use docker, check the other installation documentation.

References