selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

meerkat-crm logo

Self-host meerkat-crm

v1.7.0

Self-hosted personal CRM for contacts and relationships

ReleaseOpen SourceMIT
Docker ComposeCompose file & guide
docker compose up -d
Updated9 hours ago
LanguageGo
Setup difficultyModerate
ThemeDark mode
Stars
300
Ports
7300 (HTTP (nginx frontend)), 8080 (Internal Go backend (not exposed to host))
Requires
SQLite
Docker
ghcr.io/fbuchner/meerkat-crm
Meerkat CRM demo UI showing contact management interface

What is meerkat-crm?

A self-hosted personal contact manager that works as a digital rolodex. You can add contacts, group them into circles, record relationships such as spouses and children, and view a network graph of connections. It provides a timeline for notes and activities per contact, general notes for journaling, and reminders with email alerts via SMTP or Resend. CardDAV support works both ways: a built-in server for phone sync and a client to pull from external servers like Nextcloud. Data imports from CSV, VCF, and Monica are available, as are exports to CSV and VCF. Additional features include webhooks, CalDAV calendar sync, and single sign-on through any OpenID Connect provider. The interface offers multiple languages and a dark mode toggle. Deployment uses a single Docker image (ghcr.io/fbuchner/meerkat-crm) with an embedded SQLite database, served through nginx on port 7300 with no external database or cache needed.

Should you self-host meerkat-crm?

meerkat-crm scores 48/100 on selfhost.directory (how scoring works) and ranks #16 of 21 in CRM. It has 300 GitHub stars.

It shipped 15 stable releases in the past year. The latest, v1.7.0, came out on 12 August 2026. New versions land roughly every 6 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is OpenOutreach (53/100, 3 434 stars). It scores higher overall, so compare the two before you pick. See meerkat-crm vs OpenOutreach side by side.

Features

  • CalDAV calendar sync
  • CardDAV server and client
  • Contact Management
  • Custom Fields
  • Data Import/Export
  • Multi-language Support
  • Notes and activities
  • Reminders with email notifications
  • SSO via OIDC

meerkat-crm README

How to install meerkat-crm

Install meerkat-crm with Docker

Docker
Environment variables
JWT_SECRET_KEY required, others optional via -e flags or --env-file
docker run -d --name meerkat --restart unless-stopped \
  -p 7300:8080 \
  -e JWT_SECRET_KEY='<paste a secret here, changing it will invalidate logins>' \
  -v "$(pwd)/data:/app/data" \
  -v "$(pwd)/photos:/app/static/photos" \
  ghcr.io/fbuchner/meerkat-crm:latest

Alternative to Docker Compose

meerkat-crm releases & version history

FAQ

When using an OIDC login provider the user is not found.

The OIDC provider has to either set the property email_verified=true or you have to set the OIDC_TRUST_EMAIL=true environment variable.

When logging in it works but then redirects to login again, or the browser console shows that the auth_token cookie was rejected because of an invalid domain.

Leave the COOKIE_DOMAIN environment variable in your .env empty and restart the backend.

When registering a new user or signing in I get the error 'Failed to execute 'json' on 'Response': Unexpected end of JSON input.'

Set the FRONTEND_URL environment variable in your .env to the correct URL.

More in CRM

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…