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
- Visit
https://monica.yourdomain.com - Register your account
- Import contacts from vCard: Settings → Import → VCF file (export from iPhone, Google Contacts, etc.)
- 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.
nha khoa thảo điền
October 9, 2026I cоuldn’t resist commenting. Exceptiߋnally
weⅼl written!
click here
October 9, 2026I 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, 2026I 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, 2026hey 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, 2026I love it whenever people get together and share thoughts.
Great blog, stick with it!
channels
October 9, 2026I 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, 2026Soome 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, 2026My 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, 2026I’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, 2026I was able to find good information from your articles.
cổng game abcvip
October 9, 2026At 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, 2026Hey 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, 2026Great info. Lucky me I ran across your blog by accident (stumbleupon).
I have book marked it for later!
website
October 9, 2026I 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, 2026I am truly pleased to glance at this blog posts which includes plenty of useful information, thanks for providing these information.
gay
October 9, 2026I 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, 2026My 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, 2026What’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, 2026I’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, 2026Very 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, 2026No 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, 2026Great 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, 2026Wonderful 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, 2026What’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, 2026It 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, 2026It’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, 2026Primary-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, 2026Hello, its good post concerning media print, we all know media is a fantastic
source of data.
rentry.co
October 9, 2026Hello, i believe tht i noticed you visited mʏ websige ѕⲟ i camе to go baϲk the want?.I aam
tryikng to іn finding issues tо enhance my website!I assume its
gooɗ enoսgh to make use οf ѕome of yur ideas!!
Ⅿy blog post: ip math tuition singapore 90 (rentry.co)
secondary math tuition 260
October 9, 2026Very nice article, exactly ᴡhat I wanted to find.
Have a loοk at myy blog post secondary math tuition 260