Why leave Zendesk now
Between 2024 and 2026, Zendesk applied two successive price increases totalling 15% on the Suite Team plan. The $55 per agent per month rate is now the baseline, before any advanced features such as AI or custom reporting. For an agency with ten agents, the annual bill exceeds $6,600 in licensing alone. This per-seat pricing penalises growth: every new support hire automatically increases the budget. Self-hosted alternatives flip this model — the cost is the server, independent of headcount.
What a self-hosted alternative covers
- Ticket management via inbound and outbound email
- Knowledge base and customer documentation
- Live chat and omnichannel messaging (depending on the tool)
- REST API for CRM or billing integration
- Multi-team support and automatic ticket assignment
- Full data ownership: hosted in the jurisdiction of your choice
- Zero-downtime updates via Docker Compose
FreeScout, Chatwoot, Zammad — comparison table
Scroll the table
| Criterion | FreeScout | Chatwoot | Zammad |
|---|---|---|---|
| Licence | MIT | MIT (cloud) / EE | AGPL-3 |
| Stack | PHP / Laravel | Ruby on Rails + Vue | Ruby on Rails |
| Min. VPS required | 1 vCPU / 1 GB RAM | 2 vCPU / 2 GB RAM | 2 vCPU / 4 GB RAM |
| Yes | Yes | Yes | |
| Live chat | Module | Native | Native |
| Social channels | No | Twitter, Facebook, Instagram | Twitter, Facebook |
| Knowledge base | Module (Docs) | Native | Native |
| REST API | Yes | Yes | Yes |
| Multi-team | Yes | Yes | Advanced (SLA, escalations) |
| ServOrbit template | No | Yes | No |
| Docker Compose | Yes | Yes | Yes |
FreeScout — the lightest to deploy
FreeScout is built in PHP with Laravel and distributed under the MIT licence. It replicates the HelpScout interface and covers the core email workflow: shared mailboxes, internal notes, assignment, statuses and full history. Its memory footprint is the lowest of the three — 1 vCPU and 1 GB RAM are sufficient for a team of up to ten agents. Features are extended through official modules: chat, knowledge base, customer satisfaction, Slack integration. The project remains active in 2026 with regular releases on GitHub. FreeScout suits teams whose primary channel is email and who want a lightweight installation with minimal dependencies.
Chatwoot — omnichannel and available as a VPS template
Chatwoot unifies email, live chat, Twitter, Facebook, Instagram, WhatsApp and Telegram in a single interface. Conversations are assigned to agents or teams with configurable automation rules. The knowledge base is built in natively and publicly accessible via a dedicated subdomain. Chatwoot is available as an installation template on ServOrbit: deployment on a root-access VPS takes minutes, with Nginx, Let's Encrypt SSL and Docker Compose preconfigured. The Rails and Vue.js stack requires a minimum of 2 vCPU and 2 GB RAM. For agencies managing multiple customer contact channels, it is the most complete option at this resource level.
Zammad — the most complete for structured teams
Zammad is developed in Ruby on Rails and distributed under the AGPL-3 licence. It targets support teams with formalised processes: configurable SLAs, automatic escalations, macros, activity reports and a real-time dashboard. Multi-team management is granular — roles, permissions, queues and per-group reports. Zammad supports email, chat, phone (CTI), Twitter and Facebook. Its REST API is documented and covers all operations. Deployment requires a minimum of 2 vCPU and 4 GB RAM, with Elasticsearch required for full-text search. Zammad suits technical or customer support teams with traceability and reporting requirements.
Deploy Chatwoot on a VPS in 4 steps
Order a VPS with the Chatwoot template
On ServOrbit, select the Chatwoot template when ordering your VPS. The system automatically installs Docker, Docker Compose, Nginx and certbot. Root SSH access is provided at delivery.
Configure your domain and SSL certificate
Point your subdomain (e.g. support.yourdomain.com) to your VPS IP address. Edit the provided .env file with your domain, then run the SSL configuration script: certbot generates the Let's Encrypt certificate and Nginx is reloaded automatically.
Initialise the database and create the admin account
Run the initialisation command via Docker Compose to apply Rails migrations and create the first admin account. The Chatwoot interface is immediately available on your HTTPS domain after this step.
Configure your channels and invite your agents
In the admin interface, add your email mailboxes (IMAP/SMTP), activate desired channels (chat, social networks) and invite your agents by email. Incoming tickets are distributed according to the assignment rules you define per team.
Real cost calculation for 5 agents
With Zendesk Suite Team at $55 per agent per month, a five-agent team costs $275 monthly, or $3,300 per year — before AI and advanced reporting add-ons. Switching to a VPS at 99 DH/month per month with Chatwoot or FreeScout brings software cost to zero, with a fixed infrastructure cost regardless of agent count. For a ten-agent team, the gap reaches $550 per month in favour of self-hosting. The comparison is even more striking once Zendesk paid modules are counted — AI, Explore, Guide Enterprise — which can quickly double the base bill.
Setting up your domain and SSL certificate
Once your VPS is running, point a subdomain from your ServOrbit control panel: create an A record pointing to the VPS IP, wait for propagation (usually under five minutes via Cloudflare), then configure an Nginx reverse proxy to route HTTPS traffic to the application port — 3000 for Chatwoot, 3001 for FreeScout, 8080 for Zammad. The TLS certificate is issued automatically by Let's Encrypt via Certbot. If you subscribed to the VPS administration option, ServOrbit handles this step: the certificate is issued, renewed, and monitored without any action on your part. HTTPS is not optional: agents and customers send sensitive information through your support interface, and an HTTP contact form would be flagged as insecure by modern browsers.
Backups and service continuity
- Export the database regularly:
pg_dumpfor PostgreSQL (Chatwoot, Zammad) ormysqldumpfor MariaDB (FreeScout) — a daily cron job is sufficient for most teams. - Also back up the Docker volume containing ticket attachments: it's a separate mounted folder from the database.
- Recommended retention: 7 daily backups and 4 weekly ones, stored off the main VPS (S3, Backblaze B2, or a second VPS).
- Test a restore before cutting over from Zendesk: restore on a test VPS and verify that tickets, agents, and attachments are all present.
- The ServOrbit VPS administration option includes encrypted off-site backups and periodic restore tests.
Migrating from Zendesk: export your tickets in CSV or JSON format from Settings › Admin Tools › Reports. FreeScout offers a dedicated import module that recognises the Zendesk format. For Chatwoot and Zammad, the import API allows injecting historical tickets via a script. Plan a transition period with both systems running in parallel for one to two weeks.
The VPS administration option for teams who prefer not to maintain it
Deploying a self-hosted helpdesk does not necessarily mean managing updates and server security yourself. The ServOrbit VPS administration option covers automatic system updates, service monitoring, daily backups and SSL certificate management. Updates to the helpdesk application itself — FreeScout, Chatwoot or Zammad — follow the same pattern: the Docker container is replaced without service interruption thanks to healthchecks configured in Docker Compose. For teams who want to keep control of their data without managing the infrastructure, this is a balance between autonomy and operational delegation.