Video tutorial coming soon.
Deploy Monica on Ubuntu — a self-hosted personal CRM to track your contacts, life events, activities, gift ideas, and reminders about the people who matter to you.
Grab the automated bash script from GitHub to follow along with the video.
wget -O monica-install.sh https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/monica/install.sh
chmod +x monica-install.sh
sudo bash monica-install.sh
wget -O monica-install.sh https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/monica/install.sh
chmod +x monica-install.sh
The script installs Docker if needed, then deploys Monica with a MySQL database and mail configuration.
sudo bash monica-install.sh
Navigate to port 8080 in your browser to create your admin account and start adding contacts.
http://<your-server-ip>:8080
Create a contact, add their birthday, log recent interactions, and set reminders for follow-ups — Monica's relationship dashboard will keep you organized.
| Port | Purpose |
|---|---|
| 8080 | Monica Web UI |
Monica is an open-source personal CRM designed to help you keep track of the people in your life — birthdays, conversations, relationship notes, and reminders. Self-hosting it means your personal relationship data stays entirely private on your own server.
Monica solves a real problem: we all have relationships we care about but poorly track. Birthdays slip by, conversations are forgotten, and we lose context on what matters to people we know. Monica is like a CRM for your personal life — track birthdays, anniversaries, important dates, activities you've done together, notes from conversations, gift ideas, and reminders to reach out. It's fully self-hosted, so your relationship data stays completely private on your own server.
Monica listens on port 8080 (HTTP). Block this port from the internet using UFW or your cloud provider's firewall. Expose Monica only via your reverse proxy (Nginx Proxy Manager) on port 443 with HTTPS. The MySQL port (3306) should never be exposed publicly.
Twenty CRM is the best alternative if you need a more full-featured business CRM with pipelines and team collaboration. EspoCRM covers business CRM use cases with enterprise features. For pure personal contact management without the relationship tracking depth, Google Contacts or Apple Contacts work fine for most people. Relationships is an iOS app with similar philosophy to Monica for mobile-first use. Plain Notion or Obsidian databases work for people who prefer freeform notes.
Skip Monica if you primarily need a business CRM for managing sales pipelines and customer accounts — Twenty or EspoCRM are better fits. Also skip it if your team needs collaborative CRM access — Monica is designed for personal/individual use, not shared team CRM workflows. If you just need birthday reminders, your phone's built-in calendar with birthday notifications is far simpler.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
A regular address book stores contact information (name, phone, email). Monica stores the relationship context around those contacts — every conversation you've had, activities you've done together, gift ideas, how they know your other contacts, their hobbies and interests, important life events, and scheduled reminders to stay in touch. It's a memory system for relationships, not just a contact storage app.
Yes. Export your contacts from Google Contacts as a vCard (.vcf) file — go to contacts.google.com → Export → All contacts → vCard format. Then in Monica, go to Settings → Import Contacts and upload the .vcf file. Monica imports names, emails, phone numbers, and addresses. Notes and custom labels from Google Contacts may not transfer — those need manual entry.
Monica sends daily email digests (configured in Settings → Notifications) listing upcoming birthdays and reminders. You choose how many days in advance to be notified (default is 7 days). Reminders are sent to the email address on your account. SMTP must be configured in your .env file for emails to work. Monica also shows upcoming events on the dashboard so you see them when you log in.
Monica's web UI is mobile-responsive and works well in mobile browsers. There is no official dedicated mobile app. However, you can add your Monica URL to your phone's home screen as a PWA (Progressive Web App) for a near-native feel. Third-party mobile apps for Monica exist in early stages on GitHub. For push notifications on mobile, set up email delivery — birthday emails work regardless of whether you use a native or web interface.
Monica supports multiple user accounts on a single instance, but each user has their own private, isolated contact database — there's no shared contact pool. This makes it suitable for a family or household where each person has their own Monica account. If you want collaborative access to the same contacts, you'd need a business CRM instead. Enable user registration in .env (ALLOW_STATISTICS_THROUGH_PUBLIC_URL) or create accounts directly.
Edit your Monica .env file and set MAIL_DRIVER, MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, and MAIL_FROM_ADDRESS. For Gmail, use MAIL_HOST=smtp.gmail.com, MAIL_PORT=587, MAIL_ENCRYPTION=tls, and an app-specific password (not your Google account password). After saving, restart Monica containers. Then go to Settings → Notifications to configure which reminders to receive and how many days in advance.
Yes. Go to Settings → Export Data to download a full export of your Monica data as a JSON archive containing all contacts, notes, activities, reminders, and relationships. You can also export contacts as vCard (.vcf) for import into other address book apps. Monica is GDPR-aware and supports full data export and account deletion from the settings panel.
Run `docker compose pull && docker compose up -d` in your Monica directory. Monica runs database migrations automatically on startup. Before updating, always backup the MySQL database. Check the Monica GitHub releases for any migration notes or breaking changes. If you're on an older Monica version (1.x), upgrading to Monica 4.x (code-named 'Chandler') requires a fresh install and data migration rather than a simple pull.