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.