3.2k stars · AGPL-3.0 · 10.0.8 (2026-09-08) · Track this in Scout
A full CRM with a no-code entity and field designer, email integration, automation, reports and a knowledge base, run on your own PHP and MySQL server.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A full customer relationship manager written in PHP with a MySQL database. It covers contacts, leads, opportunities, email, a calendar and case tracking, and it has a designer screen for adding your own record types and fields.
What it is good for. Any solo builder at the point where five enquiries a month have become five threads they cannot remember by Friday. The honest comparison matters more than the tool here. Edition 9 covered Twenty (#1), which has been on this board since 3 September. Twenty is newer, better looking and wants Node.js and PostgreSQL. EspoCRM is older, plainer, and runs on the cheapest hosting there is. Pick on which one you will actually log into, not on which screenshot you prefer.
- Mature and steady, with a new version most months and a long history behind it.
- You can add your own record types and fields from a screen, with no code at all.
- PHP and MySQL run on ordinary cheap shared hosting, so it does not need a server of its own.
- AGPL-3.0, and a number of useful extensions are sold separately rather than included.
- PHP and MySQL mean a second kind of server beside a Python or JavaScript application, which is real work to keep patched.
- It was designed for a sales team. One person will use perhaps a fifth of it, and the unused four fifths are still on the screen.
twentyhq/twentyThe same CRM job with a much more modern interface and a Node.js and PostgreSQL stack, and enterprise files under a separate paid licence.
Track this in Scout- krayin/laravel-crm
The same PHP and MySQL approach built on the Laravel framework, which is friendlier if you or a contractor already know Laravel.
Track this in Scout - frappe/crm
The same job with a lighter, more focused screen aimed at sales pipelines, at the cost of pulling in the Frappe platform underneath it.
Track this in Scout
# Needs Docker. A database container first: docker run --name mysql -e MYSQL_ROOT_PASSWORD=change-this -d mysql:8 # Then EspoCRM itself, on port 8080: docker run --name my-espocrm -p 8080:80 --link mysql:mysql -d espocrm/espocrm # then open http://localhost:8080 — the first login is admin / password, # and changing it is the first thing to do. # For a real install use the Docker Compose setup in the documentation at # https://docs.espocrm.com/administration/docker/installation/ # which also runs the background daemon and the websocket service.

