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.

customermates logo

Self-host customermates

v.1.1.0

Open-core CRM with AI agents, MCP, and self-hosting

ReleaseOpen CoreAGPL-3.0
Updated4 months ago
LanguageTypescript
Setup difficultyModerate
Stars
222
RAM
~2 GB RAM
Storage
a couple of GB of disk per thousand records
Port
4000 (HTTP app server)
Requires
PostgreSQL, Resend (email delivery)
Docker
ghcr.io/customermates/customermates
Install with Docker Compose
Dashboard with open pipeline, weighted forecast, won revenue by month and revenue per repUnified inbox with WhatsApp conversationDeals board with Kanban stages New, Qualified, Proposal, WonRoutines list grouped by owner with schedules, triggers and last runs

What is customermates?

Customermates is an open-core CRM for managing people, companies, opportunities, services, and to-dos. It adds AI agent workflows through MCP, a REST API with OpenAPI docs, webhooks, and n8n automation. You can self-host it via Docker Compose with PostgreSQL 16, or use the managed cloud with an EU-hosted database. The Community Edition (code outside ee/) is AGPL-3.0-only; Enterprise features like unified inbox, SSO, and whitelabeling are source-available under a commercial license and require a commercial agreement for production use. Self-hosted instances include the core CRM, API, MCP endpoint, webhooks, audit logging, role-based access control, and multi-workspace support, but lack the unified inbox, calendar sync, and hosted AI assistant (Mate).

Should you self-host customermates?

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

It shipped 1 stable release in the past year. The latest, v.1.1.0, came out on 27 March 2026.

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

Its closest alternative on selfhost.directory is BottleCRM (61/100, 2 459 stars). It scores higher overall, so compare the two before you pick. See customermates vs BottleCRM side by side.

Features

  • AI Agent Workflows (MCP)
  • Audit Logging
  • Contact Management
  • Dashboards & Reporting
  • Google/Microsoft OAuth Sign-In
  • Multi-workspace
  • n8n Automation
  • Pipeline & Kanban Views
  • REST API with OpenAPI
  • Role-based Access Control
  • Scheduled routinesCloud feature; Mate AI assistant not available self-hosted
  • Single Sign-On (SSO)Enterprise feature; requires commercial agreement for self-hosted
  • Unified inboxCloud feature from Pro plan; not available in self-hosted
  • Webhooks

customermates README

How to install customermates

Install customermates with Docker Compose

Environment variables
APP_PORT, APP_MODE, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, BASE_URL, BETTER_AUTH_SECRET, CRON_SECRET, RESEND_API_KEY, RESEND_OPERATOR_EMAIL, GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, AZURE_AD_CLIENT_ID, AZURE_AD_CLIENT_SECRET

mkdir customermates && cd customermates curl -fsSL https://raw.githubusercontent.com/customermates/customermates/main/docker-compose.yml -o docker-compose.yml curl -fsSL https://raw.githubusercontent.com/customermates/customermates/main/.env.selfhost.template -o .env

edit .env with real values

docker compose up -d

Requires Docker and Docker Compose v2. ~2 GB RAM and a couple of GB disk per thousand records. Reverse proxy (Caddy, nginx, Traefik) recommended for TLS.

How to configure customermates

  • APP_MODEself-hostedApplication mode

    Application mode

  • APP_PORT4000Host port the app is published on

    Host port the app is published on

  • AZURE_AD_CLIENT_IDMicrosoft Entra ID app registration client ID

    Microsoft Entra ID app registration client ID

  • AZURE_AD_CLIENT_SECRETMicrosoft Entra ID app registration client secret

    Microsoft Entra ID app registration client secret

  • BASE_URLhttp://localhost:4000Public URL of the instance (e.g. https://crm.example.com)

    Public URL of the instance (e.g. https://crm.example.com)

  • BETTER_AUTH_SECRETchange-this-to-a-long-random-secretLong random string for auth encryption

    Long random string for auth encryption

  • CRON_SECRETSecret for scheduled maintenance calls

    Secret for scheduled maintenance calls

  • GOOGLE_CLIENT_IDGoogle OAuth client ID

    Google OAuth client ID

  • GOOGLE_CLIENT_SECRETGoogle OAuth client secret

    Google OAuth client secret

  • POSTGRES_DBcustomermatesPostgreSQL database name

    PostgreSQL database name

  • POSTGRES_PASSWORDchange-this-passwordPostgreSQL password

    PostgreSQL password

  • POSTGRES_USERpostgresPostgreSQL username

    PostgreSQL username

  • RESEND_API_KEYXXXResend API key for email delivery

    Resend API key for email delivery

  • RESEND_OPERATOR_EMAILmail@your-company.comOperator email for notifications

    Operator email for notifications

customermates releases & version history

FAQ

How do I install and self-host Customermates with Docker Compose?

Fetch docker-compose.yml and .env.selfhost.template from the repo, fill in .env with required values (POSTGRES_PASSWORD, BETTER_AUTH_SECRET, BASE_URL, RESEND_API_KEY, RESEND_OPERATOR_EMAIL), then run docker compose up -d.

Which features are not available when self-hosting?

Self-hosted uses the Starter feature set. Cloud-only features that stay off: connected messaging accounts (email, LinkedIn, WhatsApp, Instagram, Telegram), unified Inbox, connected calendars, hosted assistant Mate with AI credits, Routines, and AI workspace setup. Enterprise SSO (SAML) and white-labeling are not implemented in either model.

How does the integration with n8n work?

Use the REST API and webhooks, or the published community node, to connect an n8n instance you operate or subscribe to. n8n is a separate product and not bundled with Customermates.

Can one login use several workspaces?

Yes, one login can belong to several fully separate workspaces (e.g., one for sales, one for bookkeeping) and switch between them. Each workspace has its own plan, subscription, and invoices.

What counts as a connected account?

A connected account is one linked mailbox, LinkedIn, WhatsApp, Instagram, or Telegram profile that belongs to a single user. Pro includes 1 per user, Business 3, Max 10, Enterprise unlimited under fair use.

How does your CRM remain reliable long-term?

They grow organically and invest directly in the product and support, keeping the product maintained for the long term.

Why is your CRM so affordable?

They operate without investors and deliberately keep costs low, allowing them to keep prices low for customers.

What is an AI-native CRM?

A CRM built for AI agents from the start where conversations and records share one context. AI agents read that context within your permissions, draft replies, and update records.

More in Customer Support

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…