Self-hosted service
zammad/zammad avatar
zammad/zammad

Zammad: Open Source Helpdesk with Multi-Channel Support and AGPL Licensing

Zammad is a web based open source helpdesk/customer support system.

5,967 stars1,066 forksRubyAGPL-3.0

At a glance

What is it?
Zammad is a web-based open-source helpdesk and customer support platform that handles email, chat, telephone, and social media from a single interface. It is owned by the Zammad Foundation under AGPL-3.0, with commercial hosting and development by Zammad GmbH.
Who is it for?
Zammad suits teams that need a self-hosted, open-source helpdesk with multi-channel support and are prepared to manage a Ruby on Rails application with PostgreSQL, Redis, and an Elasticsearch dependency for full-text search. The AGPL-3.0 license requires releasing modifications if you distribute the software, which matters for teams building proprietary extensions.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Ruby, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Zammad Is and the Problem It Solves

Zammad is a web-based helpdesk platform designed to centralize customer communication across email, chat, telephone, and social media. Rather than managing separate tools for each channel, support agents work from a single interface where all incoming requests appear as tickets regardless of their origin channel.

The software is open source under the GNU AGPLv3 license. The source code is owned by the Zammad Foundation, an entity independent of commercial providers. Development is carried out by Zammad GmbH in collaboration with the open-source community. The company also offers a cloud-hosted version and commercial support, but the software itself is and will remain open source according to the README.

Zammad targets support teams that are managing customer inquiries across multiple channels and want visibility into the full history of each customer interaction. It is not a simple email ticketing tool: the platform integrates telephone, chat, and social media in the same queue as email, which adds operational complexity but reduces context-switching for agents.

Installation Options: Docker, DEB/RPM, and Kubernetes

Zammad provides several official installation paths. Docker container images are published at hub.docker.com/r/zammad/zammad-docker-compose. A Helm chart for Kubernetes is available at artifacthub.io/packages/helm/zammad/zammad. DEB and RPM packages for stable and development builds are available at packager.io/gh/zammad/zammad/refs/stable.

The Docker image is built from Ruby 3.4.9 on a slim Debian Trixie base (as specified by the ARG RUBY_VERSION=3.4.9 in the Dockerfile), with Node.js 24 for frontend asset compilation. The production image installs PostgreSQL client, nginx, libimlib2, and libjemalloc2. The Dockerfile removes the sendmail binary to prevent stray emails from processes inside the container from silently disappearing.

For local development, the package.json exposes a dev script that starts all required processes using forego:

bash
RAILS_ENV=development forego start -r -f Procfile.dev

An HTTPS variant for development is also available through Procfile.dev-https, controlled by the dev:https script with VITE_RUBY_HOST=0.0.0.0 and VITE_RUBY_HTTPS=true environment variables.

Full setup documentation lives at docs.zammad.org. The repository README links to it rather than duplicating the installation steps inline.

Architecture: Ruby on Rails Backend, Vue Frontend, and GraphQL API

Zammad's backend is a Ruby on Rails application. The Gemfile and Gemfile.lock at the repository root manage Ruby gem dependencies. The frontend is a Vue application with TypeScript, located in app/frontend/. The frontend build uses Vite (via vite-ruby) for development and production builds.

The API layer uses both a REST API (documented at docs.zammad.org/en/latest/api/intro.html) and a GraphQL API. The GraphQL schema is generated using a Rails generator (bundle exec rails generate zammad:graphql_introspection) and the introspection result is stored at app/graphql/graphql_introspection.json. TypeScript types are generated from this schema via the graphql-codegen tool.

The i18n/ directory holds translation catalogs generated by the i18n npm script, which runs rails generate zammad:translation_catalog. The repository supports multiple languages through this catalog system. Setting types for configuration options are generated separately via the generate-setting-types script, which runs bundle exec rails generate zammad:setting_types.

The top-level Procfile and Procfile.dev define the process groups for production and development respectively. The production image sets RAILS_ENV=production, BUNDLE_DEPLOYMENT=1, and uses libjemalloc2 for reduced memory fragmentation via LD_PRELOAD.

Linting, Testing, and the CI Pipeline

Zammad runs a comprehensive lint and type-check pipeline through npm scripts. The lint target runs TypeScript type checking with vue-tsc, JavaScript linting with both oxlint and ESLint, CSS linting with stylelint, and Markdown linting. The format target uses oxfmt. All lint targets are available with :fix variants for automatic corrections.

The CI pipeline is run via GitHub Actions and monitored at GitHub Actions with the ci.yaml workflow. The README shows the CI badge alongside a Docker release workflow badge.

The repository includes a .devcontainer/ configuration for development container setup, a .overcommit.yml for Git hook management, and a .rspec file for RSpec configuration. The Rakefile manages Rails-specific task definitions.

The VERSION file at the repository root holds the current version string. The CHANGELOG.md file tracks changes between releases. BREAKING_CHANGES.md documents backwards-incompatible changes separately from the standard changelog.

AGPL-3.0 License: What It Means for Self-Hosted Deployments

Zammad is licensed under the GNU Affero General Public License version 3. The AGPL differs from the GPL in one important respect: it treats network use (running software on a server for users to access over a network) as distribution. This means that if you modify Zammad and run the modified version as a service, you must make the modified source code available to users of that service.

For teams that self-host Zammad without modification, the AGPL poses no additional burden. For teams that plan to build proprietary extensions or customizations and deploy them as a service, the AGPL requires releasing those modifications.

The license file covers the scripts and the core platform. The repository also includes LICENSE-3RD-PARTY.txt and LICENSE-ICONS-3RD-PARTY.json, which document the licenses of third-party components bundled with Zammad. Teams with strict license compliance processes should review these files alongside the main LICENSE.

Zammad GmbH's cloud service is a commercial alternative that removes the operational complexity of self-hosting and the need to manage upgrades, backups, and database maintenance.

Zammad vs. osTicket: Open Source Helpdesks with Different Architectures

osTicket is another well-known open-source helpdesk system. It is written in PHP and licensed under GPL-2.0, while Zammad is written in Ruby on Rails and licensed under AGPL-3.0. The architectural difference is significant for teams choosing between them.

Zammad's multi-channel scope is broader: it handles email, chat, telephone, and social media as first-class channels from the initial design. osTicket's primary design centers on email-based ticket management, with other channels added through plugins.

Zammad's frontend is a single-page Vue application with real-time updates, which requires a more complex deployment stack (Rails backend, PostgreSQL, Redis, Elasticsearch for full-text search, Nginx) compared to osTicket's PHP-plus-MySQL setup. Teams comfortable with Ruby on Rails and willing to manage that stack gain a more integrated multi-channel experience. Teams that want a simpler PHP deployment or lighter infrastructure footprint may find osTicket's requirements easier to meet. Zammad's real-time UI also depends on Action Cable (WebSockets), which requires a persistent connection from the browser, adding a constraint that pure request/response PHP applications avoid by design.

Editorial conclusion

Zammad suits teams that need a self-hosted, open-source helpdesk with multi-channel support and are prepared to manage a Ruby on Rails application with PostgreSQL, Redis, and an Elasticsearch dependency for full-text search. The AGPL-3.0 license requires releasing modifications if you distribute the software, which matters for teams building proprietary extensions. Teams who want managed infrastructure without those operational concerns can use Zammad GmbH's cloud service instead of self-hosting.

Frequently asked questions

What is Zammad?

Zammad is a web-based open-source helpdesk and customer support platform. It centralizes customer communication from email, chat, telephone, and social media into a single ticket-based interface. It is licensed under AGPL-3.0 and owned by the Zammad Foundation.

Is Zammad free?

The Zammad software is free and open source under AGPL-3.0. Self-hosting is free. Zammad GmbH also offers a paid cloud-hosted service with managed infrastructure and support, which is separate from the open-source software.

How do you install Zammad?

Zammad can be installed via Docker using the docker-compose image at hub.docker.com/r/zammad/zammad-docker-compose, via DEB or RPM packages from packager.io/gh/zammad/zammad/refs/stable, or via a Kubernetes Helm chart at artifacthub.io/packages/helm/zammad/zammad. Full installation documentation is at docs.zammad.org.

Who uses Zammad?

The README does not document specific users or customer lists. Zammad is designed for support teams at organizations that handle customer inquiries across multiple channels. The Zammad Foundation owns the software and Zammad GmbH offers it as a cloud service with commercial support.

How do you use Zammad once it is installed?

After installation, log in to the web interface and configure communication channels (email accounts, chat, telephone) through the admin panel. Create message templates, set up groups for routing tickets to the right agents, and configure triggers and macros for automated actions. The REST API at docs.zammad.org/en/latest/api/intro.html is available for integrations.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. Project website
  4. README
  5. zammad/zammad on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/zammad-zammad.svg)](https://hysenlabs.com/projects/zammad-zammad)