Perfex CRM is self-hosted software. That means you install it on your own server, you own the data, and you control the environment. No monthly per-user fees, no vendor lock-in, no third party reading your client data.
But self-hosting also means you need to pick the right server, configure it properly, and keep it running. This guide covers everything: server requirements, hosting options compared, security basics, and performance tips — so you can run Perfex CRM reliably without overpaying.
Why Self-Host Your CRM?
Before diving into the technical details, here is why self-hosting a CRM matters — especially for small businesses and agencies:
- You own the data — client records, invoices, contracts, and communications stay on your server. No third party can access, mine, or lose them.
- GDPR compliance is simpler — when data stays in your jurisdiction on your server, you control the processing. No need to audit a SaaS vendor's sub-processors.
- One-time cost — Perfex CRM is a one-time purchase ($65 for the base). Compare that to HubSpot ($90/user/month) or Salesforce ($25-300/user/month).
- Full customization — you can modify anything, install any module, connect any API. No "please contact sales for this feature" walls.
- No user limits — add as many staff and client accounts as your server can handle. No per-seat pricing.
The trade-off: you are responsible for the server. But with modern hosting, that is much less work than it sounds.
Server Requirements for Perfex CRM
Perfex CRM runs on a standard PHP/MySQL stack. Here are the actual requirements:
| Component | Minimum | Recommended |
|---|---|---|
| PHP | 8.0 | 8.1 or 8.2 |
| MySQL | 5.7 | 8.0+ or MariaDB 10.6+ |
| Web Server | Apache 2.4 or Nginx | Apache with mod_rewrite |
| RAM | 512 MB | 1-2 GB |
| Disk | 1 GB | 5-10 GB (depends on file uploads) |
| SSL | Required | Let's Encrypt (free) |
PHP Extensions Required
These PHP extensions must be enabled (most hosts have them by default):
curl,mbstring,openssl,zipgdorimagick(for image processing)iconv,intl(for multi-language support)mysqliorpdo_mysql
If you plan to use AI modules like AI Suite, you also need allow_url_fopen enabled and sufficient max_execution_time (at least 120 seconds) for streaming AI responses.
Hosting Options Compared
Not all hosting is equal for CRM workloads. Here is an honest comparison of the main options:
Shared Hosting (€3-15/month)
Examples: All-Inkl, Hetzner WebHosting, IONOS, Hostinger, SiteGround
Pros:
- Cheapest option — often under €5/month
- Managed: updates, backups, and SSL handled by the host
- cPanel or Plesk for easy management
- Perfect for teams under 5 people with moderate usage
Cons:
- Shared resources — other sites on the same server affect performance
- Limited PHP settings (execution time, memory limits)
- No root access — cannot install custom software
- Cron job limitations on some hosts
Verdict: Good enough for freelancers and small teams. If your CRM has under 1,000 contacts and 5 active users, shared hosting works fine. Choose a host with SSH access and flexible PHP settings.
VPS / Virtual Private Server (€5-30/month)
Examples: Hetzner Cloud, DigitalOcean, Contabo, Netcup
Pros:
- Dedicated resources — guaranteed RAM and CPU
- Full root access — install anything you need
- Scales easily — upgrade with a click
- Much better performance than shared hosting
Cons:
- You manage the server (OS updates, security patches, backups)
- Requires basic Linux knowledge or a control panel like Ploi, RunCloud, or ServerPilot
Verdict: The sweet spot for most Perfex CRM installations. A €5-10/month VPS from Hetzner or Netcup handles 10+ users easily. Use a server management panel if you do not want to deal with terminal commands.
Managed VPS / Cloud Hosting (€20-100/month)
Examples: Cloudways, Ploi + Hetzner, RunCloud + DigitalOcean
Pros:
- Server management handled for you (updates, security, monitoring)
- One-click PHP version switching, SSL, staging environments
- Automated backups
- VPS performance without VPS management headaches
Cons:
- More expensive than raw VPS (you pay for the management layer)
- Some lock-in to the management platform
Verdict: Best option if you want VPS performance but do not want to maintain the server yourself. Cloudways with a Hetzner backend is a popular combination for Perfex CRM.
Dedicated Server (€50-200+/month)
Verdict: Overkill for most Perfex CRM installations. Only consider this if you have 50+ active users, massive file storage needs, or strict compliance requirements that prohibit shared infrastructure.
My Recommendation by Team Size
| Team Size | Hosting | Budget | Example |
|---|---|---|---|
| Solo / 1-3 users | Shared Hosting | €5-10/mo | All-Inkl Premium, Hetzner WebHosting |
| Small team / 3-10 users | VPS (2 GB RAM) | €5-15/mo | Hetzner CX22, Netcup VPS 1000 |
| Agency / 10-25 users | VPS (4 GB RAM) | €10-25/mo | Hetzner CX32, DigitalOcean 4GB |
| Company / 25+ users | Managed VPS or Dedicated | €30-100/mo | Cloudways + Hetzner, Ploi + Hetzner |
Security Essentials for Self-Hosted CRM
Your CRM contains sensitive client data. Here is the minimum security setup:
Must-Have
- SSL/TLS certificate — use Let's Encrypt (free). No exceptions. Your CRM must run on HTTPS.
- Strong database password — 20+ characters, random. Never reuse passwords.
- Regular backups — database + files, daily, stored off-server. Test restores periodically.
- PHP version up to date — do not run PHP 7.x anymore. Use 8.1 or 8.2.
- File permissions — directories at 755, files at 644. Never use 777.
Recommended
- Firewall — UFW on Ubuntu or firewalld on CentOS. Allow only ports 22, 80, 443.
- Fail2ban — blocks brute-force login attempts automatically.
- Separate database server — if your VPS provider offers managed databases, use them.
- Two-factor authentication — enable it in Perfex CRM settings for all admin accounts.
- Restrict admin URL — change the default
/adminpath or add IP restrictions via .htaccess.
Performance Tips
A slow CRM frustrates your entire team. Here is what makes the biggest difference:
- Enable OPcache — PHP's built-in opcode cache. Reduces page load times by 50-70%. Most hosts have it enabled by default, but verify in
phpinfo(). - MySQL query cache — set
query_cache_size = 64Min my.cnf for MariaDB (note: MySQL 8.0+ removed this, use InnoDB buffer pool instead). - InnoDB buffer pool — set to 50-70% of available RAM. For a 2 GB VPS, use
innodb_buffer_pool_size = 1G. - PHP memory limit — set to at least 256M. For AI modules, 512M is safer.
- Cron jobs — Perfex CRM uses cron for email sending, reminders, and recurring invoices. Set it to run every 5 minutes.
- CDN for assets — optional, but a CDN like Cloudflare (free tier) speeds up CSS/JS delivery and adds DDoS protection.
Hosting Considerations for AI Modules
If you use AI-powered modules like AI Suite, there are a few extra things to consider:
- Execution time — AI requests can take 10-30 seconds. Set
max_execution_timeto at least 120 in php.ini. Some shared hosts cap this at 30 seconds — that will cause timeouts. - Outbound HTTPS — your server must be able to make HTTPS requests to API endpoints (OpenAI, Anthropic, Google). Some firewalls block outbound connections by default.
- Server-Sent Events (SSE) — AI Suite streams responses in real-time via SSE. This requires that your web server does not buffer the response. On Nginx, add
proxy_buffering offto your config. Apache works out of the box. - No additional server resources needed — the AI processing happens on the provider's servers (OpenAI, etc.), not on yours. Your server just sends and receives API calls.
Moving to a New Host
If you are already running Perfex CRM and want to switch hosts, the process is straightforward:
- Export your database — use phpMyAdmin or
mysqldump - Download all files — the entire Perfex CRM directory via FTP/SFTP or
rsync - Upload to new server — restore files and import the database
- Update
application/config/app-config.php— set the new database credentials and base URL - Update DNS — point your domain to the new server IP
- Test everything — login, send a test invoice, check cron jobs
The whole process takes 30-60 minutes for a typical installation. If you need help, I offer migration services as part of my custom development work.
Total Cost: Self-Hosted vs. SaaS CRM
Here is what a 5-person team actually pays over 3 years:
| CRM | Year 1 | Year 2 | Year 3 | 3-Year Total |
|---|---|---|---|---|
| Perfex CRM (self-hosted) | €60 + €120 hosting | €120 hosting | €120 hosting | €420 |
| HubSpot Professional (5 users) | €5,400 | €5,400 | €5,400 | €16,200 |
| Zoho CRM Plus (5 users) | €3,420 | €3,420 | €3,420 | €10,260 |
| Salesforce Starter Suite (5 users) | €1,500 | €1,500 | €1,500 | €4,500 |
Perfex CRM with self-hosting costs roughly 5-19x less than comparable SaaS CRMs over 3 years. Add our modules and you still stay well under the SaaS alternatives.
Bottom Line
Self-hosting Perfex CRM is not complicated. A €10/month VPS handles most teams. The setup takes an afternoon, and the ongoing maintenance is minimal if you follow basic security practices.
The real benefit is not just the cost savings — it is control. Your data, your server, your rules. No vendor can change pricing, shut down features, or access your client records. For businesses that take data ownership seriously, self-hosting is not a compromise — it is the point.
Modules That Earn Their Place
Explore our AI-powered modules — built by developers who use Perfex CRM every day.