Monica logo

Monica

Personal CRM to remember everything about your friends, family and business relationships

Alternative to: dex, cloze, clay


Monica is an open-source web application that lets you document your life and organize your interactions with family and friends. It works as a Personal Relationship Management (PRM) tool, borrowing the idea of a CRM used by sales teams and applying it to your personal relationships. Track contacts, conversations, life events, reminders and gifts all in one self-hosted place.

Monica Docker Compose example

Self-host Monica on your own server, homelab, or VPS starting from this Docker Compose example. It runs Monica in Docker containers using the official monica:latest, mariadb:11 images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  app:
    image: monica:latest
    restart: unless-stopped
    depends_on:
      - db
    volumes:
      - data:/var/www/html/storage
    environment:
      # Laravel application key used to encrypt sessions and data. Must be a random 32-character string. Generate one with: echo -n 'base64:'; openssl rand -base64 32
      APP_KEY: "changemechangemechangemechangeme"
      # Public URL where Monica is reached, including scheme (e.g. https://monica.example.com).
      APP_URL: "changeme"
      # Hostname of the database service.
      DB_HOST: "db"
      # Database name (must match MYSQL_DATABASE).
      DB_DATABASE: "monica"
      # Database user (must match MYSQL_USER).
      DB_USERNAME: "monica"
      # Database password (database is only reachable inside this compose network), must match MYSQL_PASSWORD.
      DB_PASSWORD: "secret"

  db:
    image: mariadb:11
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/mysql
    environment:
      # Generate a random root password on first init (root is only used internally).
      MYSQL_RANDOM_ROOT_PASSWORD: "true"
      # Database created on first start; must match DB_DATABASE.
      MYSQL_DATABASE: "monica"
      # Database user created on first start; must match DB_USERNAME.
      MYSQL_USER: "monica"
      # Password for the database user; must match DB_PASSWORD.
      MYSQL_PASSWORD: "secret"

volumes:
  data:
  db_data:

Values set to changeme are required — replace them with your own values before starting Monica.

Prefer a managed setup? WinterFlow installs, configures, and updates Monica for you using this same Docker Compose configuration.