Self-host EspoCRM
CRMAn 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.
Key facts
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:8080What you take on
EspoCRM is one of the lighter, more approachable picks in this cluster, with a couple of things worth knowing going in: