Deploy
EspoCRM self hosted. The whole CRM, on a server we run.
EspoCRM 10.0.6, the open source CRM, deploys as a one-click template with its own MySQL onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents. A European 8 GB server is $0.03/hr, about $23 a month, for any number of users.
One click. Three containers. The template deploys in about twelve minutes.
no signup
+$5.00 added at signup · deployment choice preserved · no card
What is EspoCRM self hosted?
A complete CRM.
Yours from the first login.
What it is. Contacts, accounts, leads, opportunities and activities, with custom entities and fields, a REST API and a workflow engine. Everything a sales team tracks, in software you can read the source of.
Who it is for. Teams who want their customer records on a server they control, and who would rather not assemble the app, a job daemon and a MySQL database themselves.
When to use it. When a per-seat CRM bill starts growing with headcount, or when customer data cannot sit in someone else's system. From three users the arithmetic is already in your favour.
EspoCRM self hosted requirements
What EspoCRM needs, and what we already provide.
EspoCRM self hosted means the app, a job daemon and a MySQL database behind a reverse proxy with TLS. The template ships all of it on one server, so the only requirement you choose is the server size.
| What EspoCRM needs | This deployment |
|---|---|
| EspoCRM version | 10.0.6, pinned |
| Database | MySQL 8.4 |
| Containers | App, job daemon, MySQL |
| Memory | 8 GB recommended |
| Architecture | x86 or ARM |
| SMTP is set up inside EspoCRM after it is running | |
| Live notifications | Not available in this deployment. The interface polls instead |
| Paid extensions | Bought from EspoCRM separately when you self host |
| Attachments | Stored on the server volume |
| What Selfhost.dev provides | Detail |
|---|---|
| Server | Dedicated project server, provisioned and run by us |
| Regions | Falkenstein, Nuremberg, Helsinki, Ashburn, Hillsboro, Singapore. Which locations are open depends on the machine you pick |
| HTTPS | Automatic, wildcard subdomain or your own domain |
| Admin credentials | Set before first boot, never EspoCRM's documented default |
| Backups | Optional. Daily, whole VM, last 7 kept, +20% of the server price |
| Monitoring | Metrics, logs, and a health check every 60 seconds |
| Deploy time | About 12 minutes for the template, once the server exists |
| Per-seat fee | None |
| MCP tools | 189 across 31 modules |
Specifications current as of September 2026.
What's in the EspoCRM deployment
Three containers. One click.
Three containers on one project server, deployed together. The database installs itself on first boot.
| Component | Version | What it does |
|---|---|---|
| EspoCRM | 10.0.6-apache | The CRM: contacts, accounts, leads, opportunities, activities and custom entities |
| Job daemon | Same image | Scheduled jobs, email fetching and workflow processing. Serves no web traffic |
| MySQL | 8.4.11 | Every CRM record |
| TLS and routing | Managed by Selfhost.dev | Public HTTPS URL, auto-renewed certificates |
Your own MySQL, not a shared tenancy
EspoCRM gets a dedicated MySQL 8.4 on your project server. It is included in the server price with no separate service fee, and nothing else on the platform can reach it.
The daemon is separate for a reason
EspoCRM's scheduled jobs, email fetching and workflows run in their own container rather than inside the web process. A long-running job cannot slow down the interface, and the daemon is never exposed to the internet.
What we set up for you
The wiring a stock install leaves to you.
It never boots on the default login
EspoCRM's own documentation ships the administrator as admin with the password password. We write your credentials in before the container is reachable, and the deploy is deliberately held back until that has happened. There is no install wizard and no window in which the default login works.
Your links point at your address
ESPOCRM_SITE_URL is set to your live domain at deploy time, so links inside the app and in the mail it sends resolve to your address rather than to localhost. The database connection is wired at the same moment, which is why there is no setup screen to walk through.
Nothing resolves across stacks
Your MySQL gets a per-service DNS name rather than a generic one, so no other project on the platform can reach it by guessing. Behind that sits a default-deny firewall with only ports 22, 80 and 443 open, a Let's Encrypt certificate per hostname, and one virtual machine per customer.
No Selfhost.dev template ever boots on a documented default password. If that seeding fails, the instance comes up locked rather than open.
How to self host EspoCRM in 4 steps
From zero to live.
No server to set up.
Four steps. No Docker Compose, no database to wire up, no certificate to renew.
1. Create a project
Name it and pick a server. EspoCRM runs three containers, so 8 GB is the size we recommend. Six locations across Europe, the US and Singapore. We provision it, with no cloud account to connect.
2. Add the EspoCRM template
Add service → Template → EspoCRM. All three containers deploy together and the database installs itself on first boot. About twelve minutes, then we email you the URL and your administrator credentials.
3. Sign in
Your administrator username and password were set before the app first started, so there is no install wizard and no default login to race anyone to. Use the credentials from the email.
4. Point your domain and set up email
Keep the wildcard subdomain or add your own: set DNS, verify a TXT record, and HTTPS provisions and renews automatically. Then add your SMTP details inside EspoCRM and import your contacts.
What we run, and what you run
The honest split.
We manage the infrastructure. You own what happens inside EspoCRM. This is managed hosting, not managed CRM administration.
| We run | You run |
|---|---|
| Server provisioning and capacity | Your records, pipeline and custom entities |
| The MySQL container | Your users and their roles |
| Reverse proxy, TLS, renewals | Your SMTP settings |
| Firewall and network rules | Data retention inside EspoCRM |
| Your administrator credentials, set before first boot | Any paid EspoCRM extensions you buy |
| Optional daily backups | Your EspoCRM version, and when to move to a newer one |
| Metrics, logs, and a health check every 60 seconds |
We pin the template to a tested EspoCRM version, currently 10.0.6.
What an 8 GB server handles
What else fits on the box.
A project server holds up to five workloads in total, counting apps, databases and one-click apps together. The platform reserves 1,536 MB for the host, a heavy workload reserves 2,048 MB and a light one 512 MB. EspoCRM is classed heavy. An 8 GB server carries three heavy workloads and one light one in total, so EspoCRM leaves room for two more heavy services and a light one alongside it. A 4 GB server carries one heavy and one light, which is EspoCRM plus a single small sidecar and nothing else.
Adding users does not add containers. The three that deploy are the three that run, whether the CRM has two people in it or fifty.
EspoCRM self hosted cost: what you actually pay
One server rate. No seats to count.
You pay for the server and nothing else. An 8 GB server is $0.03/hr, about $23 a month in our EU locations if you leave it running, billed hourly against prepaid credits. Adding users does not change the bill, and neither does the traffic they generate.
| What you pay for | Cost |
|---|---|
| 8 GB project server | $0.03/hr in our EU locations, $23.36/mo at 730 hours |
| EspoCRM, the job daemon and MySQL | $0 |
| HTTPS and custom domain | $0 |
| Users | $0, no per-seat fee |
| Bandwidth | $0. Traffic is included |
| Daily server backups | Optional. Daily, whole-VM, last 7 kept, +20% of the server price |
Monthly figures assume 730 hours. Rates are for our EU locations; US and Singapore machines are different types at different rates, priced live in the calculator.
What running it here actually promises
Five things we can hold you to.
Every service is health-checked every 60 seconds. A stalled deploy is retried automatically, not abandoned. A deploy is never reported done until the URL actually answers. Retrying a create never leaves you paying for two copies. Your EspoCRM version never moves on its own: 10.0.6 stays 10.0.6 until you decide otherwise.
EspoCRM's template takes about twelve minutes, against a twelve minute budget the platform holds itself to. It is one of the slower templates we run, because the schema installs itself on first boot, and we would rather tell you that than have you watch a spinner.
Working out what a self hosted CRM costs?
Tell us your team size and we will send back the server size, the monthly cost and what it replaces on your current CRM bill. One email, no newsletter.
EspoCRM Cloud vs EspoCRM self hosted
What their cheapest plan actually costs.
EspoCRM sells a hosted version starting at $15 per user per month. That figure is not a price anyone can pay, because the cheapest plan has a three-user minimum, so the smallest possible bill is $45 a month. Enterprise is $25 per user with a five-user minimum, which makes it $125. Our 8 GB server is $23.36 a month for any number of users, billed by the hour with nothing to commit to.
| Cloud Basic | Cloud Enterprise | Self hosted here | |
|---|---|---|---|
| Price | $15/user/mo | $25/user/mo | $23.36/mo flat |
| Minimum users | 3 | 5 | None |
| Smallest possible bill | $45/mo | $125/mo | $23.36/mo |
| 10 users | $150/mo | $250/mo | $23.36/mo |
| 25 users | $375/mo | $625/mo | $23.36/mo |
| Billing term | 6 or 12 months | 6 or 12 months | Hourly, no commitment |
| Paid extensions | Included | Included | Bought separately |
| Where your data lives | EspoCRM's infrastructure | EspoCRM's infrastructure | Your dedicated server |
EspoCRM Cloud list prices as published, checked 12 September 2026 at EspoCRM pricing. Our figure is an 8 GB server in our EU locations at 730 hours.
When EspoCRM Cloud is the better choice
Every paid EspoCRM extension is included at no extra cost on their hosted plans: the Advanced Pack with its reports, workflows and business process management, plus the Sales Pack, project management and the integrations for Outlook, Google, Zoom, Stripe and MailChimp. Self hosted, those are bought from EspoCRM separately. If your team needs several of them, their plan may well work out simpler and cheaper, and they run the server too. Anyone still choosing between CRMs rather than between hosting models should read our comparison of eight open source CRMs, which includes Twenty CRM self hosted.
EspoCRM self hosted limitations
What this does not do.
Real constraints, easier to plan around than to discover.
- Live notifications do not work here. EspoCRM's real-time push needs a second public entry point and each service on the platform gets one, so the interface checks for updates on a timer instead. Everything still arrives, just not the instant it happens.
- SMTP is not configured. Set your mail provider inside EspoCRM before you invite anyone, or invitations and password resets will not send.
- Paid extensions are a separate purchase. The Advanced Pack and the other add-ons are included on EspoCRM's hosted plans and bought from EspoCRM when you self host.
- Pick your size at the start. A server cannot be resized in place, so moving to a bigger box means a new project and a data migration.
- Five workloads per project, counting apps, databases and one-click apps together.
EspoCRM backup and restore
One image covers the whole server, and a root shell gets you your own copy.
What a backup covers
Daily, optional, 20% of the server price. There is no separate data volume, so one image is every container, the MySQL database and every volume together, including attachments. The last seven are kept, rotating.
They do not survive deletion
Backup images live with the server. If the server is destroyed, they go with it. Backups protect you from mistakes, not from an unpaid bill.
Your own copy, whenever you want one
Add your public key to the project server and you have root over SSH. From there mysqldump against the database container gives you every CRM record, and a tar of the espocrm-data volume gives you every attachment. We never see the private half of that key.
Nothing here is designed to make leaving hard
EspoCRM exports to CSV from inside the app, and root SSH gives you everything byte for byte. There is no export button and we will not pretend there is one, but there is no lock either.
Related guides.
Frequently asked questions
Can I self host EspoCRM on Selfhost.dev?
How much does it cost to self host EspoCRM?
Is EspoCRM better than SuiteCRM?
Is self hosting cheaper than EspoCRM Cloud?
Do I set an admin password when I deploy EspoCRM?
Do EspoCRM's live notifications work?
What do I need to self host EspoCRM?
Can I use my own domain with self hosted EspoCRM?
What happens if my credit balance reaches zero?
About Selfhost.dev
Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour with no subscription tiers.
Best for: EspoCRM, Twenty CRM, Krayin, Chatwoot and managed PostgreSQL, MySQL, Redis and ClickHouse.