Skip to content

Command Palette

Search for a command to run...

Self-host EspoCRM

CRM
prices checked · Aug 2026

An open-source CRM covering sales pipelines, marketing campaigns, and support cases, with a visual entity and relationship builder for custom modules. Ships an official Docker image with a MariaDB backend and a companion daemon container that runs background jobs like email sync and workflows.

Salesforce / yr$300
Self-hosted / yr~$55
You keep$245/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera →

Key facts

CategoryCRM
LicenseAGPL-3.0
StackPHP, JavaScript
Min RAM1024 MB
Dockeryes
Difficulty
Our recommendation

Choose EspoCRM when you want a mature, well-documented business CRM that runs comfortably on a small box — a classic LAMP-style install (2 GB recommended) with sales, support, and marketing modules covering most SMB needs out of the box. If you want SuiteCRM's deeper enterprise feature set or Twenty's modern UI, those are the tradeoffs for EspoCRM's simplicity.

What you need

  • Any VPS with at least 1024 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before

Install with Docker Compose

Save this as compose.yml and run docker compose up -d:

# EspoCRM — official espocrm/espocrm image + MariaDB
services:
  espocrm-db:
    image: mariadb:latest
    environment:
      MARIADB_ROOT_PASSWORD: root_password
      MARIADB_DATABASE: espocrm
      MARIADB_USER: espocrm
      MARIADB_PASSWORD: database_password
    volumes:
      - espocrm-db:/var/lib/mysql
    restart: always
  espocrm:
    image: espocrm/espocrm
    environment:
      ESPOCRM_DATABASE_HOST: espocrm-db
      ESPOCRM_DATABASE_USER: espocrm
      ESPOCRM_DATABASE_PASSWORD: database_password
      ESPOCRM_ADMIN_USERNAME: admin
      ESPOCRM_ADMIN_PASSWORD: password
      ESPOCRM_SITE_URL: "http://SERVER_IP:8080"
    volumes:
      - espocrm:/var/www/html
    depends_on:
      - espocrm-db
    ports:
      - 8080:80
  espocrm-daemon:
    image: espocrm/espocrm
    volumes:
      - espocrm:/var/www/html
    depends_on:
      - espocrm
    entrypoint: docker-daemon.sh
volumes:
  espocrm:
  espocrm-db:
# docker compose up -d  →  http://SERVER_IP:8080

What you take on

EspoCRM is one of the lighter, more approachable picks in this cluster, with a couple of things worth knowing going in:

non-negotiableIt's AGPL-3.0. Same network-copyleft consideration as the other AGPL apps in this cluster — confirm it fits before building a product on top of it.
non-negotiableThe UI is functional, not flashy. It gets the job done but doesn't have Twenty's modern polish — decide how much that matters for your team's daily use.

An alternative to

More in CRM

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.