Which self-hosted help desk fits your team: Zammad, osTicket or FreeScout
A team replacing Zendesk or Freshdesk with a self-hosted tool should start by deciding which of three needs dominates: omnichannel support with a full ticket model, classic ticketing on a familiar PHP and MySQL stack, or a lean shared inbox that stays small. Zammad fits the first case, osTicket the second and FreeScout the third. All three are free to self-host under their open-source licenses, so the decision is not about license fees. It turns on three things: whether you need SSO and LDAP on day one, which channels your agents must work from, and how much running effort your team can absorb. Zammad is licensed under AGPL-3.0 and, per the Zammad pricing page, offers self-hosted support subscriptions named Business, Enterprise and Corporation, so a paid support contract is an option rather than a requirement. osTicket is GPL2 and offers a free community path with community support only, which suits teams that can handle their own troubleshooting. FreeScout is AGPL-3.0 and is positioned as a lightweight shared inbox, with its LDAP, SAML SSO, knowledge base and workflow features sold as paid lifetime modules for a single instance.
Before you shortlist, write down the authentication model your directory requires. Zammad supports third-party login through SAML and OpenID Connect, among other providers, and documents its own admin settings for this. osTicket's plugins repository holds LDAP, CAS and OAuth2 authentication plugins for its 1.8 and later line, so you should confirm which plugin covers your directory version. FreeScout needs its paid LDAP and SAML modules if you want directory sign-in, so add those licenses to the cost comparison from the start. Next, list the channels agents must handle, such as email only, or email plus chat and social messaging. FreeScout's README describes centralizing conversations from several channels, while Zammad is built around ticket-centric omnichannel handling. Finally, estimate who will run the platform. Zammad needs PostgreSQL 15 or newer and Redis 7 or newer, with Elasticsearch strongly recommended, so budget for that stack. osTicket and FreeScout run on PHP with MySQL or PostgreSQL, a lighter footprint. Ask any vendor or partner for a written quote that lists setup, migration, module licenses and ongoing upgrades separately.
Which platform fits which team scenario
This table maps common team situations to the helpdesk that fits each one best, based on the licensing, channels, authentication and hosting facts for Zammad, osTicket and FreeScout. Read each row as a condition: the best fit holds only if the item in the last column is true for your environment.
| Scenario | Best fit | Why | What to confirm |
|---|---|---|---|
| Multichannel support with SLAs | Zammad | Zammad is a ticket-centric helpdesk with documented migrators from Zendesk and Freshdesk and third-party login through SAML and OpenID Connect. Elasticsearch is optional but strongly recommended for search and reporting. | Which channels you need on day one, whether SLA reporting is in the features you require, and whether you will buy a paid support plan. |
| Small shared inbox | FreeScout | FreeScout is a lightweight Laravel shared inbox with unlimited agents, tickets and mailboxes, and it can run on shared hosting according to its README. | Whether you need LDAP, SAML SSO or workflows, which are paid lifetime modules, and whether mailbox-only intake covers your volume. |
| Classic ticketing on existing LAMP servers | osTicket | osTicket is a GPL2 PHP and MySQL ticket system that runs on Apache or IIS, and its README describes deployment from a repository clone. It fits teams already operating that stack. | Whether your PHP version falls within the supported 8.2 to 8.4 range, and whether the plugins you need exist for your release line. |
| SSO and LDAP required from day one | Zammad or osTicket, depending on login model | Zammad documents SAML and OpenID Connect login, and osTicket's plugin repository includes LDAP, CAS and OAuth2 authentication. FreeScout offers LDAP and SAML SSO only through paid modules. | Which identity protocol your directory uses, whether you need LDAP group mapping, and whether a paid FreeScout module changes your total cost. |
| Tight hosting budget | FreeScout or osTicket | FreeScout's README states no minimum CPU or RAM requirements, and osTicket's free download carries no license fee. Zammad requires PostgreSQL 15 or newer, Redis 7 or newer and recommends Elasticsearch, which adds components to run. | The cost of any modules or paid support you will add, and whether your hosts can run the database, cache and search services Zammad needs. |
| Planned move to a vendor-supported stack | Zammad | Zammad sells self-hosted support subscriptions, and its pricing page states that self-hosted customers handle updates, backups and availability themselves. Paid support is a choice, not a requirement. | What each support tier includes, who in your team will own upgrades and backups, and the migration path from your current helpdesk. |
What is free and what is paid in each platform
Zammad is licensed under AGPL-3.0, and running it on your own infrastructure carries no license fee. What you pay for depends on whether you buy a self-hosted support subscription and how much of the operation you hand to someone else. Zammad's pricing page lists self-hosted support plans and hosted plans from 7 euros per agent per month.
- Self-hosted license: AGPL-3.0 applies to the code, with no per-agent or per-instance fee. Confirm with counsel what the AGPL requires if you modify Zammad and make it available to users.
- Support subscriptions: Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year. Ask each vendor what response times, channels and named contacts each tier includes.
- Operations you still own: The pricing page states that self-hosted customers handle updates, backups and availability. Those tasks are a recurring internal or partner cost that the support subscription does not cover.
- Hosted plans: Start at 7 euros per agent per month. Confirm which channels and features each hosted plan includes before comparing it with self-hosting.
- Supporting services: PostgreSQL 15 or newer and Redis 7 or newer are required, and Elasticsearch is optional but strongly recommended. These are separate components to license, host and patch.
Before buying, confirm which support tier matches your severity and hours needs, and whether every feature you depend on is included in the self-hosted package or only in hosted plans.
osTicket is released under GPL2. The free download is supported by the community only, so any paid support, hardening or upgrade help comes from a vendor or partner you engage separately. The commercial options are a cloud-hosted edition and a virtual appliance edition, and core plugins extend the free application.
- Free community download: The application is available at no license cost under GPL2, with community support only. Installation, hardening, upgrades and troubleshooting remain your responsibility or your partner's.
- Cloud edition: Starts at $12 per agent per month according to osTicket's editions page. Confirm what the plan includes, where data is hosted, and how minimum agent counts and additional agents are billed.
- Virtual appliance edition: Priced on a custom basis. Ask what the appliance includes, how updates are delivered, and who supports the underlying operating system.
- Core plugins: The osTicket-plugins repository holds core plugins for LDAP, CAS, OAuth2 and passthrough authentication, two-factor authentication, password policy, audit logging and attachment storage on the filesystem or S3. Confirm the license and support status of each plugin you plan to use on your version.
- Upgrade and backup effort: The README recommends backing up attachment files, the database and the codebase before every upgrade. On self-hosted deployments, that routine is recurring labor.
Before comparing totals, confirm the plugin terms, the cloud agent billing basis, and whether the appliance quote includes a support term.
FreeScout is licensed under AGPL-3.0, and its README describes the core as free, with unlimited agents, tickets and mailboxes. Several capabilities that larger support teams often expect, including LDAP, SAML SSO, a knowledge base and workflows, are sold as paid module licenses. Those modules are separate purchases on top of the free core, so the total depends on which ones you need.
- Free core: Includes email over SMTP, IMAP and POP3, OAuth for Microsoft 365 and Google Workspace, and a progressive web app. Confirm that the core covers your mailbox and identity setup before assuming no further cost.
- LDAP and SAML SSO modules: Sold as lifetime licenses for a single FreeScout instance, with lifetime updates. If you run separate staging and production instances, check whether each one needs its own license.
- Knowledge base and workflows: Both are paid lifetime modules on the modules page. Decide whether you need them before estimating the total, because they are often the deciding factor.
- Free modules: The AI Integration and S3 Storage modules are free according to the modules page. Confirm they apply to the version you deploy.
- Other paid modules: API and Webhooks, Satisfaction Ratings and Time Tracking are also sold as lifetime licenses. Ask the vendor for a written total covering every module on your list.
Before comparing with Zammad's annual support tiers, add up the module licenses you require and confirm the license terms for each instance you plan to run.
How each helpdesk stores tickets and what that means for upkeep
The stack each tool needs sets most of the upkeep work. Zammad needs PostgreSQL 15 or newer and Redis 7 or newer, since Redis handles realtime websocket traffic. Elasticsearch is optional, but the Zammad documentation describes it as strongly recommended for faster search, reporting and searching email attachment content, and without it search is very limited. Memcached is required once you run multiple Zammad instances, such as container or cluster nodes, while a single installation can use the file system cache. That means a production Zammad install is four moving parts, each with its own patching, backup and capacity planning. Confirm with your own team which of these services you already operate and who owns each one before you commit to a Zammad design.
osTicket runs on Apache or Microsoft IIS with PHP 8.2 to 8.4 (8.4 recommended), the mysqli extension and MySQL 5.5 or greater, so the database is the main stateful dependency. Its README recommends backing up attachment files, the database and the codebase before every upgrade, which makes attachment storage a distinct backup target. FreeScout runs on Nginx, Apache or IIS with PHP 7.4 to 8.x and MySQL, MariaDB or PostgreSQL. Its README says there are no minimum CPU or RAM requirements and that it can run on shared hosting, which lowers the entry cost but also means the hosting provider's backup and patching terms become part of your design. Note that FreeScout's PHP range starts at 7.4, so check the exact PHP version your host supports against the current release notes before you install.
For upkeep, the practical question is who restores the system and how fast. Zammad's search index depends on Elasticsearch, so a restore needs the database and the index rebuilt or restored together, and the index must be sized for your ticket volume. osTicket and FreeScout keep search inside the relational database, so a restore is mostly a database and file restore, but search over large attachment sets will be slower than an indexed engine. Ask each vendor or your implementation partner to document the restore sequence, the recovery time you can accept, and the upgrade path for PHP and the database. Those answers, more than the install itself, will determine the long-term operating effort.
What drives the running cost of each helpdesk
Running cost for a self-hosted helpdesk is spread across licenses, support, infrastructure, upgrades and staff time, and each tool shifts the balance differently. Use these cards to build a like-for-like quote request before comparing totals across Zammad, osTicket and FreeScout.
License and module fees
Zammad's self-hosted software carries no license fee, while FreeScout sells LDAP, SAML SSO, knowledge base and workflow modules as lifetime licenses for a single instance. osTicket's free download is community supported, and its paid cloud and virtual appliance editions are priced separately. Add up the modules you need on day one, including SSO and LDAP, before comparing totals. Ask each vendor which features sit behind a paid module and whether lifetime updates cover your instance count.
Support subscription
Zammad's self-hosted support plans are an optional recurring cost, sold as Business, Enterprise and Corporation tiers. FreeScout and osTicket rely mainly on community support in their free editions, so paid help is a separate contract or a partner engagement. Decide whether your team needs a vendor response commitment, then ask for the exact service levels, response channels and included upgrade help in writing.
Hosting and database resources
Each tool's footprint depends on its stack. Zammad needs PostgreSQL 15 or newer and Redis 7 or newer, plus a reverse proxy, while osTicket runs on PHP 8.2 to 8.4 with MySQL 5.5 or greater, and FreeScout accepts MySQL, MariaDB or PostgreSQL on PHP 7.4 or later. Larger mailbox volumes and attachment storage raise disk and backup costs. Ask for sizing based on your agent count, ticket volume and retention period, and confirm which database services are already covered by your platform team.
Elasticsearch and cache layers
Zammad treats Elasticsearch as optional, but its documentation strongly recommends it for faster search, reporting and attachment content search. Multi-instance Zammad deployments, such as containers or cluster nodes, also need Memcached, while single installations can use the file system cache. Each added service brings memory, patching and backup work. Ask whether search and reporting requirements justify running Elasticsearch, and who will maintain it after go-live.
Upgrade and patch labor
Self-hosting moves updates, backups and availability to your team, which Zammad states directly on its pricing page. Zammad published security releases on both its 6.5 and 7.x lines in parallel, so patching may cover more than one branch. osTicket's README recommends backing up attachments, the database and the codebase before each upgrade. Ask each vendor for its supported upgrade paths, release notes and the typical effort your team should plan for each cycle.
Staff time for SSO and channels
Setup labor often costs more than software. Zammad supports SAML, OpenID Connect and several cloud providers for sign-in, FreeScout needs its paid SAML and LDAP modules or OAuth for Microsoft 365 and Google Workspace, and osTicket relies on plugins for LDAP, CAS and OAuth2. Mailbox connections, phone and web form intake, and chat channels each need configuration and testing. Ask for a written estimate of configuration hours by channel, and confirm who owns identity mapping and mailbox onboarding.
How to move from Zendesk or Freshdesk to a self-hosted helpdesk
The sequence turns a hosted helpdesk into a self-hosted one with verified history, attachments and mail routing, so the cutover is a decision made on evidence rather than a single risky weekend.
Inventory channels, integrations and automations
The helpdesk owner lists every inbound mailbox, phone or chat channel, web form, macro, trigger, SLA rule, custom field, API integration and outbound webhook in the current Zendesk or Freshdesk tenant. Include the identity provider used for agent sign-in and any Slack or CRM connectors. Done means a written inventory that each candidate platform is scored against, with every item marked as native, plugin, API or custom work. Zammad's migrators are documented for Freshdesk, Kayako, OTRS and Zendesk, so the source system decides which path applies.
Confirm the migrator for your source
Before choosing a platform, confirm in writing whether the source system has a supported migrator. Zammad's documentation lists migrators for Freshdesk, Kayako, OTRS and Zendesk; other sources need the Zammad API or custom development from Zammad. For osTicket and FreeScout, ask the vendor or community which import tooling exists for your source, and whether it moves attachments, ticket history and agent assignments. Done means a short migration note per platform that states the tool, its version, what it does not move, and who builds any gap.
Stand up a non-production instance
The platform team installs the candidate helpdesk in a separate environment with the same database engine, reverse proxy and mail relay planned for production. For Zammad, this includes PostgreSQL 15 or newer, Redis 7 or newer and an Elasticsearch decision, since search quality affects agent workflow testing. Done means the instance runs the current release, passes a login test through the chosen SSO or LDAP path, and has a documented rollback target. Keep the install method consistent with the one you will run in production.
Pilot the migration on a copy of the data
Run the migration against a recent copy of the source export, not the live tenant. The migration owner loads a representative slice that includes large threads, merged tickets, closed tickets with long histories and tickets with several attachments. Agents then work the copied tickets in the pilot instance using real macros and routing rules. Done means a signed-off list of defects, each with a fix or an accepted limitation, and a repeatable run that produces the same counts each time.
Verify attachments, history and counts
Compare the source and target side by side: ticket counts by status, customer and organization records, agent assignments, timestamps, internal notes and attachment file counts and sizes. Open a sample of attachments in the target to confirm they render and download, and check that the ticket timeline keeps the original order of replies. Done means a reconciliation report that shows matching totals, with every mismatch explained and either fixed or accepted in writing by the business owner. Attachment storage location should also be confirmed, particularly for osTicket plugins that write to the filesystem or S3.
Cut over mail routing
The mail administrator changes MX or forwarding rules, or the inbound mailbox connector, so new email reaches the self-hosted platform. Run both systems in parallel for a defined window agreed in advance, and make sure replies from the new platform use the correct sending domain, SPF, DKIM and DMARC records. Disable the old inbound route only after the new one has received live test messages from each channel. Done means a documented routing change, test messages confirmed from each channel, and a record of when the old route was disabled.
Set backups and restore tests before go-live
The operations owner configures scheduled database and attachment backups and confirms who can restore them. For Zammad, back up the PostgreSQL database and the file storage together, and document the Redis and Elasticsearch rebuild steps. osTicket's README recommends backing up attachment files, the database and the codebase before any upgrade, and FreeScout's and osTicket's support boundaries should be confirmed with the vendor. Done means one successful restore into the staging environment, timed by the team, with the result recorded before the old tenant is closed.
What implementing each platform involves in practice
Zammad has three documented install routes: DEB and RPM packages, Docker Compose, and a Kubernetes Helm chart. The package route is the most conventional for a server team, and it needs PostgreSQL 15 or newer and Redis 7 or newer in place before the application goes live. Elasticsearch is optional, but without it search is very limited, so plan for it if agents rely on attachment and full-text search. Multi-instance deployments such as containers or cluster nodes also need Memcached. The Kubernetes route carries a support limit: Zammad support covers the application only, not Kubernetes-specific problems, so your platform team owns the cluster. Ask Zammad which install route it will support under your change process, and confirm the exact package list for your OS in the Zammad software prerequisites documentation before scheduling work.
osTicket is deployed from a clone of its public repository with php manage.php deploy, and later updates are pulled with git pull before a redeploy. Its README recommends backing up attachment files, the database and the codebase before every upgrade, so the runbook you write should treat those three backups as a required step with a tested restore, not a checkbox. Your team will also own the Apache or IIS, PHP 8.2 to 8.4 and MySQL configuration, along with any core plugins you enable, such as LDAP, CAS or OAuth2 authentication, and the attachment storage choice between the filesystem and S3. Nobody is contracted for this work by default: the free edition comes with community support only, so any vendor help is a separate decision that needs a written scope.
FreeScout is installed with its Docker image, a one-click installer such as Softaculous or Cloudron, or a managed host. The README states no minimum CPU or RAM requirements and shared hosting is possible, which lowers the entry cost but shifts responsibility for backups, mail delivery and PHP upkeep onto whoever runs the host. The bigger hidden work is modules. LDAP Integration, SAML SSO, Knowledge Base, Workflows and Time Tracking are paid lifetime modules for a single instance, so each one is a purchase, a configuration step and a regression test after every FreeScout update. Confirm with FreeScout which modules your requirements need, how lifetime updates are delivered, and whether the managed host you pick supports them, using the FreeScout modules page as the starting point.
Questions buyers ask before choosing a self-hosted helpdesk
What drives the total cost of owning a self-hosted helpdesk?
The software license is the smallest line for all three tools: self-hosted Zammad has no license fee, osTicket's open-source download is free, and FreeScout's core is free. The recurring costs are the server or hosting, the staff hours for updates, backups and mail setup, and any paid add-ons. Zammad sells self-hosted support plans at 2,999, 5,999 and 9,999 euros per year, and FreeScout sells module licenses for a single instance with lifetime updates, so add the modules you need to the estimate. Ask each vendor for current module and support prices in writing, then add your own labor and hosting figures to build the three-year view.
How long does migrating tickets from Zendesk or Freshdesk take?
The supplied research does not give a migration duration, so treat any timeline as unconfirmed until you test it on your own data. Zammad includes migrators for Freshdesk, Kayako, OTRS and Zendesk, and other systems can be imported through its API or custom work. FreeScout's README links a migration service for moving to FreeScout from other help desks. The main drivers are ticket and attachment volume, the number of custom fields, mailboxes and macros to map, and how much history agents need to search after cutover. Ask each vendor which migrator covers your source system and what it leaves behind.
Can an internal team run a self-hosted helpdesk without outside help?
A team with Linux, web server and database skills can run any of the three, but the workload differs. Zammad needs PostgreSQL 15 or newer and Redis 7 or newer, and multi-instance deployments also need Memcached, so it has more moving parts. Zammad's pricing page states that self-hosted customers handle updates, backups and availability themselves. osTicket needs Apache or IIS, PHP 8.2 to 8.4 and MySQL, and FreeScout runs on Nginx, Apache or IIS with PHP and MySQL, MariaDB or PostgreSQL. Teams without on-call coverage or patch capacity often choose a fixed-scope implementation with a retainer for upgrades, which DeployOpen offers.
Which helpdesk needs modules for SSO or LDAP?
Zammad supports third-party login through SAML, OpenID Connect, Microsoft, Google, GitHub and GitLab, among other providers, and the supplied facts do not list LDAP for Zammad, so confirm it in the admin documentation before you commit. osTicket's osTicket-plugins repository holds core plugins for LDAP, CAS and OAuth2, so these are plugin work rather than paid add-ons. FreeScout's LDAP Integration and SAML SSO are paid modules on its modules page. If your identity provider is Microsoft 365 or Google Workspace, FreeScout's OAuth support for mailboxes is included in the core product. Test the exact directory and group mapping you need before you budget.
Does Zammad need Elasticsearch to search tickets well?
Elasticsearch is optional for Zammad, but the documentation strongly recommends it. Without it, search is very limited. Zammad also uses Elasticsearch for reporting features and for searching the content of email attachments, so teams that depend on those functions should plan for it from the start. Running Elasticsearch adds another service to patch, back up and size, and the supplied facts do not give its resource requirements, so ask Zammad for sizing guidance based on your ticket volume and attachment profile. osTicket and FreeScout have no equivalent requirement in the supplied facts, so compare their search results on a test dataset.
How much effort do osTicket upgrades take?
The osTicket README supports upgrades from 1.6-rc1 and later and recommends backing up attachment files, the database and the codebase before you start. The documented method is to pull changes with git and redeploy with the deploy command in the project's manage script. Maintenance is simpler on paper, but you still need a test environment, a check of every installed plugin against the new version, and a rollback plan. Releases arrive on more than one line, such as 1.17 and 1.18, so choose the line you will stay on and confirm its support window with the project before rollout.
Do paid support subscriptions change which helpdesk to pick?
They can, because support terms are often the deciding factor for teams without in-house depth. Zammad lists self-hosted support plans at 2,999, 5,999 and 9,999 euros per year, and its hosted plans start at 7 euros per agent per month. osTicket's free download comes with community support only, and its cloud edition starts at $12 per agent per month. The supplied facts do not list a FreeScout support tier, so ask its maintainers what commercial support exists. Compare each plan's response terms against your own outage tolerance, and check whether hosting or module costs still apply on top.
When should a team hire a partner to implement a helpdesk?
Consider a partner when the migration carries regulated data, when SSO, LDAP and mailbox integration must be tested against your identity setup, or when your team lacks time for backups, patching and hardening. DeployOpen plans, implements, integrates, hardens, backs up, upgrades and documents self-hosted platforms in your own infrastructure. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and a quote follows from that written scope. Ongoing support and upgrades are available as retainers. DeployOpen prepares systems and evidence for compliance assessments but does not issue audit reports or certifications.
How DeployOpen helps you choose and implement a helpdesk
DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For a Zammad, osTicket or FreeScout decision, we start by testing which channels, authentication model and hosting footprint your team actually needs before any installation begins.
How we scope
- We confirm which channels, mailboxes and agent counts the helpdesk must handle from day one.
- We map SSO, LDAP and module needs, noting which FreeScout and osTicket features may need paid add-ons.
- Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.
How we build
- We install the chosen tool in your cloud account, data center or air-gapped network.
- We set up the database, cache and search components each platform requires, including Zammad's PostgreSQL, Redis and optional Elasticsearch.
- We configure authentication, mail routing and migration from your current ticket system, then test each integration.
How we hand over
- We document the architecture, configuration, backup and upgrade procedures in a form your administrators can follow.
- We run a written handover session covering agent workflows, admin tasks and the patch routine for your chosen version.
- We provide evidence for compliance assessments, while independent auditors remain responsible for any formal audit report.
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after handover.
- We can plan security patch windows for the helpdesk and its database, cache and reverse proxy layers.
- Ask us to re-scope when your channel mix, agent count or identity provider changes.

