Monica CRM on a VPS: Self-Hosted Personal Relationship Manager for Life’s Important Connections

Monica CRM on a VPS: Self-Hosted Personal Relationship Manager for Life’s Important Connections

Monica is an open-source personal CRM (Customer Relationship Manager) — but for your personal life. It helps you remember important things about your friends, family, and professional contacts: birthdays, how you met, kids’ names, job changes, conversation history, and follow-up reminders. Monica Cloud starts at $9/month. Self-hosting on a VPS keeps your personal relationship data completely private.

What Monica Tracks

  • Contacts: Complete profiles with relationships, partners, children, pets
  • Journal: Log interactions (“Had coffee with Alice, she’s interviewing at Google”)
  • Activities: Track activities with contacts (dinners, calls, meetings)
  • Reminders: Birthdays, follow-ups, recurring check-ins via email
  • Notes: Long-form notes attached to contacts
  • Tasks: To-dos related to specific contacts
  • Gifts: Gift ideas and gift history per contact
  • Conversations: Log phone calls, emails, texts with topics discussed

Step 1: Docker Compose Setup

<code">mkdir -p /opt/monica && cd /opt/monica
nano docker-compose.yml
<code">version: '3.8'

services:
  monica:
    image: monica:latest
    container_name: monica
    restart: always
    ports:
      - "127.0.0.1:8080:80"
    environment:
      APP_KEY: ${APP_KEY}
      APP_URL: https://monica.yourdomain.com
      APP_ENV: production
      DB_HOST: monica-db
      DB_DATABASE: monica
      DB_USERNAME: monica
      DB_PASSWORD: ${DB_PASSWORD}
      MAIL_MAILER: smtp
      MAIL_HOST: smtp.mailgun.org
      MAIL_PORT: 587
      MAIL_USERNAME: postmaster@mg.yourdomain.com
      MAIL_PASSWORD: ${SMTP_PASSWORD}
      MAIL_FROM_ADDRESS: monica@yourdomain.com
      MAIL_FROM_NAME: Monica
      CHECK_VERSION: "false"
    volumes:
      - monica_storage:/var/www/html/storage
    depends_on:
      monica-db:
        condition: service_healthy

  monica-db:
    image: mariadb:11
    container_name: monica-db
    restart: always
    environment:
      MYSQL_DATABASE: monica
      MYSQL_USER: monica
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_RANDOM_ROOT_PASSWORD: "yes"
    volumes:
      - monica_db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  monica_storage:
  monica_db:
<code">cat > .env << 'EOF'
APP_KEY=base64:$(openssl rand -base64 32)
DB_PASSWORD=StrongMonicaDbPassword!
SMTP_PASSWORD=your_mailgun_password
EOF
chmod 600 .env

# Generate proper APP_KEY:
docker run --rm monica:latest php artisan key:generate --show
# Copy the output and update APP_KEY in .env

docker compose up -d

Step 2: Nginx Reverse Proxy

<code">sudo nano /etc/nginx/sites-available/monica
<code">server {
    listen 443 ssl http2;
    server_name monica.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/monica.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/monica.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
<code">sudo certbot --nginx -d monica.yourdomain.com
sudo ln -s /etc/nginx/sites-available/monica /etc/nginx/sites-enabled/
sudo systemctl reload nginx

Step 3: Create Account and Import Contacts

  1. Visit https://monica.yourdomain.com
  2. Register your account
  3. Import contacts from vCard: Settings → Import → VCF file (export from iPhone, Google Contacts, etc.)
  4. Or add contacts manually: Contacts → Add

Step 4: Set Up Reminders and Email

<code"># Email reminders require SMTP configuration (done in docker-compose.yml)
# Verify email works:
docker exec monica php artisan monica:sendreminders --dry-run

# Types of automatic reminders:
# - Birthday reminders (3 days before, 1 day before)
# - "Stay in touch" reminders (set per contact: remind me every 3 months)
# - Custom date reminders

# Schedule cron for reminder processing:
docker exec monica php artisan schedule:run
# Or add to host cron:
echo "* * * * * docker exec monica php artisan schedule:run >> /dev/null 2>&1" | \
    sudo crontab -

Step 5: Using Monica Effectively

<code"># Workflow example:
# 1. Meet someone at a conference:
#    Contact → Add → Sarah Chen
#    Tags: conference, ML, potential-collaborator
#    Note: "Met at PyCon 2025, works on NLP at Anthropic, loves hiking"
#    How we met: PyCon 2025

# 2. Add a follow-up reminder:
#    Contact → Sarah → Reminders → Add
#    "Follow up about ML paper collaboration"
#    Remind me: 2 weeks from now

# 3. Log the interaction:
#    Contact → Sarah → Conversations → Add
#    Date: 2025-05-15, Channel: Conference
#    Topics: "Discussed potential collaboration on NLP project"

# 4. Monthly review (Monica's "Stay in touch" feature):
#    Dashboard shows: "You haven't contacted Sarah in 2 months"
#    → Log a call → Update → Snooze reminder

Step 6: API Access

<code"># Monica has a REST API for integration with other tools
# Settings → API → Generate personal access token

# Get all contacts:
curl https://monica.yourdomain.com/api/contacts \
  -H "Authorization: Bearer YOUR_TOKEN" | python3 -m json.tool

# Create a contact:
curl -X POST https://monica.yourdomain.com/api/contacts \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "John", "last_name": "Smith"}'

# Add a reminder:
curl -X POST https://monica.yourdomain.com/api/reminders \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "contact_id": 123,
    "title": "Follow up about job offer",
    "initial_date": "2025-06-01",
    "frequency_type": "one_time"
  }'

Getting Started

Monica with MariaDB uses 200–400 MB RAM — it runs alongside other services on a 1 GB Ubuntu VPS at VPS.DO. Your personal relationship data — who you know, what you’ve talked about, personal details friends have shared — is highly sensitive and ideally should not live in a commercial CRM. Self-hosted Monica keeps this data under your control with no advertising targeting, no data mining, and no service discontinuation risk.

Conclusion

Monica CRM brings systematic, intentional relationship management to personal life — remembering names, birthdays, conversation history, and follow-up reminders so you can maintain meaningful connections without relying on fragmented notes in different apps. Self-hosted on a VPS, your personal network data stays completely private. For professionals and individuals who want to invest deliberately in relationships, Monica provides the structure that memory alone can’t reliably maintain.

28 Comments

  • nha khoa thảo điền
    October 9, 2026

    I cоuldn’t resist commenting. Exceptiߋnally
    weⅼl written!

  • click here
    October 9, 2026

    I always used to study article in news papers but now as I am a user of net so from
    now I am using net for content, thanks to web.

  • Seo backlinks wordpress
    October 9, 2026

    I know this if off topic but I’m looking into starting my own blog and was curious what all is needed to get setup?
    I’m assuming having a blog like yours would cost
    a pretty penny? I’m not very web savvy so I’m not 100% certain. Any suggestions or
    advice would be greatly appreciated. Appreciate it

  • Blue Chip
    October 9, 2026

    hey there and thank you for your info – I have certainly picked up something new from right here.

    I did however expertise some technical points using
    this site, since I experienced to reload the site many times previous to I could get it to load correctly.
    I had been wondering if your web hosting is OK? Not that I
    am complaining, but slow loading instances times will very
    frequently affect your placement in google and can damage your quality score if ads and marketing
    with Adwords. Anyway I am adding this RSS to my e-mail and could look
    out for a lot more of your respective exciting content.
    Make sure you update this again soon.

  • Newton DEM Engineering
    October 9, 2026

    I love it whenever people get together and share thoughts.
    Great blog, stick with it!

  • channels
    October 9, 2026

    I believe what you posted made a lot of sense. But, what about
    this? suppose you composed a catchier post title? I am not suggesting
    your information isn’t good, however suppose you added a
    post title to maybe grab folk’s attention? I mean Monica CRM on a VPS:
    Self-Hosted Personal Relationship Manager for Life's Important Connections – VPS.DO is kinda boring.
    You might peek at Yahoo’s home page and watch how they write news titles to grab viewers to click.
    You might add a related video or a related picture or two to get readers interested about what you’ve written. In my opinion, it could make your website
    a little bit more interesting.

  • a maths tuition 260
    October 9, 2026

    Soome really fantastic wlrk οn behalf of the owner of this web site, absoⅼutely great cօntent.

    Heree is my webppage … a maths tuition 260

  • u888
    October 9, 2026

    My brother recommended I might like this website. He used to be totally right.

    This publish truly made my day. You cann’t consider just how so much time I had spent for this information! Thank you!

  • ad88 nhà cái
    October 9, 2026

    I’m really loving the theme/design of your
    weblog. Do you ever run into any browser compatibility issues?
    A small number of my blog readers have complained about my
    site not operating correctly in Explorer but looks great
    in Firefox. Do you have any advice to help fix this
    issue?

  • xx8
    October 9, 2026

    I was able to find good information from your articles.

  • cổng game abcvip
    October 9, 2026

    At this moment I am going to do my breakfast, later than having my breakfast coming again to read more news.

  • end of lease cleaning wheelers hill
    October 9, 2026

    Hey there! I understand this is kind of off-topic however I needed to ask.

    Does operating a well-established blog like yours take a large amount of work?
    I am completely new to running a blog but I do write in my
    diary everyday. I’d like to start a blog so I will be able
    to share my personal experience and thoughts online. Please let me know if
    you have any kind of ideas or tips for new aspiring blog owners.
    Thankyou!

  • homepage
    October 9, 2026

    Great info. Lucky me I ran across your blog by accident (stumbleupon).

    I have book marked it for later!

  • website
    October 9, 2026

    I was wondering if you ever considered changing the
    structure of your website? Its very well written; I love what youve got to
    say. But maybe you could a little more in the way of content so people could connect with it better.
    Youve got an awful lot of text for only having 1 or 2 pictures.
    Maybe you could space it out better?

  • TOTO12
    October 9, 2026

    I am truly pleased to glance at this blog posts which includes plenty of useful information, thanks for providing these information.

  • gay
    October 9, 2026

    I just like the valuable info you provide to your articles.
    I will bookmark your blog and check once more here regularly.

    I’m rather sure I will be told many new stuff right here!
    Good luck for the following!

  • web site
    October 9, 2026

    My coder is trying to convince me to move to .net from PHP.

    I have always disliked the idea because of the expenses.
    But he’s tryiong none the less. I’ve been using Movable-type on numerous websites for about
    a year and am anxious about switching to another platform.
    I have heard good things about blogengine.net. Is there a way I can transfer all my wordpress posts into it?

    Any help would be greatly appreciated!

  • בלאק קיוב
    October 9, 2026

    What’s Going down i’m new to this, I stumbled upon this I have discovered It absolutely useful and it
    has aided me out loads. I am hoping to give a
    contribution & aid different users like its helped
    me. Great job.

  • porn child sex
    October 9, 2026

    I’m extremely impressed along with your writing talents as smartly as with the structure to your blog.
    Is that this a paid subject or did you modify it yourself?
    Either way keep up the nice high quality writing, it’s rare to peer a great weblog like this
    one these days..

  • big penis toys
    October 9, 2026

    Very nice post. I just stumbled upon your weblog and
    wished to mention that I have really loved browsing your blog posts.

    After all I will be subscribing for your rss feed and I am hoping
    you write once more very soon!

  • nude white girls
    October 9, 2026

    No matter if some one searches for his essential thing,
    therefore he/she wishes to be available that in detail, thus that
    thing is maintained over here.

  • backlinks wordpress
    October 9, 2026

    Great goods from you, man. I have understand your stuff prior to and you are simply extremely fantastic.
    I really like what you have acquired here, certainly like what
    you are saying and the best way through which you assert it.
    You make it enjoyable and you continue to care for to keep it sensible.
    I can not wait to learn much more from you. This is actually
    a wonderful site.

  • Desi
    October 9, 2026

    Wonderful blog! I found it while searching on Yahoo News.

    Do you have any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!
    Appreciate it

  • porn streaming HD
    October 9, 2026

    What’s up to all, because I am really keen of reading this webpage’s post to be updated
    daily. It includes good information.

  • superocasino.com
    October 9, 2026

    It is appropriate time to make some plans for the future and it’s time to
    be happy. I’ve read this post and if I could I desire to suggest you some interesting things or advice.
    Perhaps you could write next articles referring to this article.
    I wish to read more things about it!

  • porn
    October 9, 2026

    It’s very simple to find out any topic on web as compared to books, as I found this article at this web page.

  • math tutor
    October 9, 2026

    Primary-level math tuition іs indispensable fߋr honing analytical skills
    аnd problem-solving abilities neеded to tackle
    the increasingly complex ԝoгd problems encountered in upper primary grades.

    Secondary math tuition plays ɑ pivotal role in addressing conceptual weaknesses, ρarticularly Ԁuring thе shift from primary heuristic
    methods tօ the morе rigorous and proof-based content introduced іn secondary school.

    Ϝar moгe than just marks,һigh-quality JC math tuition cultivates sustained logical endurance,
    refines advanced critical thinking, аnd prepares students thߋroughly for the
    analytical rigour ߋf university-level study іn STEM and quantitative disciplines.

    Secondary students аcross Singapore increasingly depend ⲟn remote O-Level math support tߋ receive libe targeted instruction ᧐n demanding topics ѕuch as algebra and trigonometry, ᥙsing interactive screen-sharing tools rеgardless of traffic conditions.

    OMT’ѕ mindfulness techniques minimize math anxiety,
    allowing authentic affection tߋ grow and inspire exam excellence.

    Expand yoᥙr horizons ѡith OMT’s upcoming brand-neԝ physical space
    οpening in Septеmber 2025, uѕing a lot mοге chances
    fоr hands-on mathematics expedition.

    Ⲥonsidered tһat mathematics plays ɑ critical function in Singapore’s economic advancement
    ɑnd progress, purchasing specialized math tuition equips trainees ᴡith
    tһe problem-solving skills neеded to thrive in a competitive landscape.

    Math tuition helps primary students master PSLE Ьy reinforcing the Singapore
    Math curriculum’s bar modeling technique for visual ⲣroblem-solving.

    Math tuition ѕhows efficient tіme management strategies, assisting secondary students ϲomplete O
    Level exams ԝithin the allocated period without hurrying.

    Tuition teaches error analysis strategies, assisting junior
    college pupils stay clear of common challenges іn A Level computations аnd evidence.

    The exclusive OMT curriculum uniquely boosts tһe MOE curriculum ԝith focused practice ⲟn heuristic
    methods, preparing pupils mᥙch Ьetter foг exam difficulties.

    Unrestricted access tо worksheets implies ʏou practice till
    shiok, enhancing your math self-confidence and qualities іn a snap.

    Singapore’s focus οn proƅlem-solving in mathematics tests mɑkes tuition vital
    f᧐r establishing critical assuming abilities ρast school hourѕ.

    my pagе … math tutor

  • Downtown
    October 9, 2026

    Hello, its good post concerning media print, we all know media is a fantastic
    source of data.

Post Your Comment

Fast • Reliable • Affordable VPS - DO It Now!

Get top VPS hosting with VPS.DO’s fast, low-cost plans. Try risk-free with our 7-day no-questions-asked refund and start today!