Zammad package vs Docker Compose vs Kubernetes

Zammad supports package, Docker Compose and Helm installs, but its vendor support stops at the application on the container platforms. This page shows which method fits which team and what each one asks you to run.

On this page

Which Zammad install method fits your team

If your team has standard Linux operations, the package install is the default to pick. Docker Compose suits a small single-host pilot run by someone comfortable with containers, and the Helm chart suits a team already running Kubernetes with platform staff who own the cluster. Whichever you choose, understand the support boundary first: Zammad's documentation states that it supports the application itself on Docker and on Kubernetes, but not Docker, Portainer or Kubernetes-specific problems. For a regulated helpdesk, that means your platform team carries the cluster, container runtime and networking issues, and you should write that ownership down before go-live.

The package route covers Ubuntu, Debian, OpenSUSE or SLES and CentOS or RHEL, and it keeps Zammad on the same operating system patching and service management your team already runs. Zammad's install pages point teams expecting 5 or more agents to its environment variable and database server configuration pages, so plan for that step early, since a production helpdesk will usually cross that line. The Docker Compose stack needs at least 4 GB of RAM and vm.max_map_count set to 262144 for Elasticsearch, and it uses its own backup and restore procedure, which you should test rather than assume matches your existing backup tooling.

The Helm chart fits when your organization already operates clusters, storage classes, ingress and secrets management, because Zammad adds one application to a platform you already support. It is a poor fit for a single team with no Kubernetes staff, since the operational burden lands on people who are not the Zammad owners. Before choosing, confirm with Zammad which Redis and Memcached topology your chosen method requires, since multi-instance deployments need Memcached. Ask your platform vendor or DeployOpen to document which layer owns each incident path, and decide that before the first pilot ticket arrives.

Which install method suits which team

The package path suits a team that already runs Linux servers, patches them on a schedule and manages PostgreSQL and Redis as ordinary services. Zammad documents package installation on Ubuntu, Debian, OpenSUSE or SLES, and CentOS or RHEL, so the install can follow your existing server standards. Your team owns the operating system, the database and cache servers, the reverse proxy and the upgrade window.

  • Supported distributions: Ubuntu, Debian, OpenSUSE or SLES, and CentOS or RHEL, as listed in the package install guide.
  • Database and cache: PostgreSQL 15 or newer and Redis 7 or newer, which you install, tune and back up yourselves.
  • Reverse proxy: Nginx or Apache, configured and hardened by your team.
  • Search: Elasticsearch is optional but strongly recommended, and you operate it if you add it.
  • Backups: Your existing backup tooling must cover the database and application files together.

Confirm that your distribution and component versions match the current prerequisites before you commit to this path.

What Zammad support covers on Docker and Kubernetes

Zammad's support on Docker Compose and Kubernetes covers the Zammad application, and nothing underneath it. Zammad documents a Docker Compose deployment and a Kubernetes Helm chart, but its Kubernetes page states that Zammad does not provide support for Kubernetes-specific issues. Its Docker documentation makes the same split: Zammad does not support Docker or Portainer specific problems, only the application itself. For a team that runs the stack on a container platform, a failing node, a broken ingress controller, a storage class that cannot provision volumes or a Portainer stack that will not redeploy all fall on your own engineers or your own service provider, not on Zammad.

Before you choose between the package, Docker Compose and the Helm chart, ask Zammad in writing what support your chosen method receives and whether that answer differs for a self-hosted support plan. Then write the split of responsibility into your operating model before go-live. A useful starting table lists each layer (host operating system, container runtime or Kubernetes control plane, ingress, PostgreSQL, Redis, Elasticsearch, Memcached, Zammad itself, backups and restore tests) and names the owner and the escalation path for each. The Docker Compose deployment also needs at least 4 GB of RAM and vm.max_map_count set to 262144 for Elasticsearch, so the host-level settings belong on that list too.

Self-hosted support from Zammad is a separate purchase. Zammad's pricing page lists self-hosted support plans at 2,999, 5,999 and 9,999 euros per year, and states that self-hosted customers handle updates, backups and availability themselves. Those annual fees cover Zammad's support, not your cluster administration, so budget for internal platform time or a fixed-scope implementation partner for the infrastructure layer, and confirm with Zammad whether any plan covers container or Kubernetes questions at all. DeployOpen can help plan and document that split for an engagement, but the support boundary itself is set by the vendor.

Components and what each method changes

Each Zammad install method moves a different set of components onto your team: the operating system, the container runtime, the cluster, or the cache and search services. Read the cards as a checklist of what you will own under each option before you pick one.

Package install on Linux

The package route installs Zammad on Ubuntu, Debian, OpenSUSE or SLES, and CentOS or RHEL, so your team patches the host, runs PostgreSQL and Redis, and owns the reverse proxy. Zammad's documentation points teams expecting 5 or more agents to its environment variable and database server configuration pages, so plan those settings before go-live. Confirm which operating system versions your distribution supports for the release you plan to run.

Docker Compose stack

The Compose stack bundles Zammad's services into containers, but it still needs a host with at least 4 GB of RAM and vm.max_map_count set to 262144 for Elasticsearch. Backups follow Zammad's own backup and restore procedure, so check that it fits your snapshot tooling. Zammad does not support Docker or Portainer specific problems, only the application itself, so your team must troubleshoot the container layer.

Helm chart on Kubernetes

The Helm chart moves the install into a cluster your organization operates, so storage classes, ingress, node sizing and upgrade windows become your responsibility. Zammad states that it does not provide support for Kubernetes specific problems, which means cluster incidents go to your platform team rather than the vendor. Confirm who owns cluster operations before choosing this route for a helpdesk.

Memcached or file system cache

Memcached is needed when several Zammad instances share work, such as container replicas or cluster nodes. A single installation can use the file system cache instead, which removes one service from the stack. Decide the instance count first, because adding a second node later means adding Memcached to the design.

Elasticsearch as strongly recommended

Elasticsearch is optional, but Zammad uses it for faster search, reporting and searching the content of email attachments, and the vendor strongly recommends it. Each install method treats it differently in practice, since the Compose route needs the kernel setting above. Budget for the extra memory and disk, and test search on realistic ticket volumes before you rely on it.

Reverse proxy choice

Zammad supports Nginx or Apache as the reverse proxy, and the choice shapes TLS termination, websocket handling and certificate renewal. On the package route you configure the proxy on the host, while on Kubernetes the ingress layer may take that role. Confirm which proxy your security team already maintains, and keep websocket support in the test plan because Redis serves realtime communication.

Package, Docker Compose and Helm side by side

This table compares the three Zammad install methods on the factors that decide day-two work: supported operating systems, host requirements, support scope, backups, upgrades, cache model, cluster readiness and team skills. Read each row against your own environment, and treat any item marked to confirm as a question for Zammad before you commit. The main takeaway is that Docker Compose and Helm move more operational responsibility onto your team than the package install does.

FactorPackage (DEB or RPM)Docker ComposeHelm chart on Kubernetes
Supported operating systemsUbuntu, Debian, OpenSUSE or SLES, and CentOS or RHEL, per Zammad's package install pageAny Docker host that runs the Compose stack, to confirm with Zammad's Docker install pageAny cluster the Helm chart targets, to confirm the tested Kubernetes versions with the chart documentation
Minimum host requirementsFollow the Zammad software prerequisites for PostgreSQL 15 or newer and Redis 7 or newerAt least 4 GB of RAM, plus vm.max_map_count set to 262144 for ElasticsearchNode sizing and pod resource limits are not in the supplied facts, so ask Zammad for the reference sizing
Support scope from ZammadZammad supports the application and its install procedureZammad supports the application only, not Docker or Portainer specific problemsZammad supports the application only, not Kubernetes specific issues
Backup procedureStandard Zammad backup and restore on the host, including the database and file storageZammad's own backup and restore procedure for the Compose stackConfirm with Zammad how volumes, the database and Elasticsearch data are captured in the chart
Upgrade pathPackage upgrades on the host, with 7.2.2 as the latest security release supplied for the 7.x linePull and restart the stack images, following Zammad's release notesChart version and application version are separate, so confirm the matching pairs with Zammad before each upgrade
Cache modelFile system cache is sufficient for a single installationMemcached is needed for multi-instance deployments such as containersMemcached is needed for multi-instance deployments such as cluster nodes
Cluster readinessSingle host by default; scaling beyond one node needs a documented designSingle host unless you build a multi-host setup yourselfBuilt for multi-pod operation, but cluster-specific tuning is your responsibility
Skills the team must already haveLinux administration, PostgreSQL, Redis and a reverse proxy (Nginx or Apache)Docker, Compose files, volume handling and Linux host hardeningKubernetes operations, Helm, persistent storage, ingress and secrets management

What drives the total cost of each install method

The software itself carries no license fee for self-hosted Zammad, so the cost of any install method is infrastructure, staff time to build and run it, and an optional support subscription. Zammad's pricing page lists self-hosted support plans named Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year. Those subscriptions cover vendor support for the application, not your servers, your database or your cluster. Whichever method you pick, the largest recurring line is usually the people who patch, back up and restore the system, and Zammad's pricing page states that self-hosted customers handle updates, backups and availability themselves.

One-time work includes provisioning hosts, hardening, configuring the reverse proxy, setting up third-party login, and migrating data from your current helpdesk. Recurring work includes applying minor and security releases (7.2.2 and 6.5.5 both shipped security fixes in October 2026), testing upgrades, verifying backups, and on-call coverage. The Docker Compose stack needs at least 4 GB of RAM and vm.max_map_count set to 262144 for Elasticsearch, and it uses its own backup and restore procedure, so you should price a tested restore drill as recurring work. The package install is the lowest-overhead path on a single host, but you still own the Ruby, PostgreSQL 15 or newer and Redis 7 or newer components as they are upgraded.

The Helm chart adds platform overhead that does not appear in Zammad's own documentation: a Kubernetes cluster, ingress, persistent volumes, Memcached for multi-instance operation, and the cluster skills to run them. Zammad support covers only the application on Kubernetes, so cluster incidents fall to your platform team. Elasticsearch sizing is the cost driver most often underestimated across all three methods. Zammad treats Elasticsearch as optional but strongly recommended for search, reporting and attachment content, and its heap and storage grow with mailbox volume and retention. Ask any vendor or partner to size Elasticsearch from your ticket volume, attachment history and search expectations, and to state the node count, storage and backup approach in the quote. For the support subscription, ask which tier covers your agent count and whether it includes help with the install method you chose.

How to choose and validate an install method

This sequence turns the package, Docker Compose and Helm options into a written decision your team can defend, with a tested restore and a rehearsed upgrade before anything goes live.

  1. Confirm agent count and channels

    Count the agents who will work in Zammad at launch and the channels you plan to connect, such as email, web forms or chat. Zammad's install documentation points teams expecting 5 or more agents to its environment variable and database server configuration pages, so a team at or above that threshold should read those pages before choosing. Done means you have a written agent count, a channel list and a note on which configuration pages apply to you.

  2. Map the host and cluster standards you already run

    Ask the platform team which operating systems, container runtime, Kubernetes distribution, reverse proxy and database service they already patch and monitor. Zammad documents package installs on Ubuntu, Debian, OpenSUSE or SLES and CentOS or RHEL, a Docker Compose stack and a Helm chart. Compare each option with the standards you already support, and confirm that PostgreSQL 15 or newer and Redis 7 or newer can be run to those standards. Done means a single method is chosen with its named owner.

  3. Check the support boundary in writing

    Ask Zammad in writing what it supports for your chosen method. Zammad's Docker Compose documentation states it does not support Docker or Portainer specific problems, and its Kubernetes documentation states it does not support Kubernetes specific issues, so support covers the application only. Ask who handles the container platform, the cluster, the database and the search service, and whether a self-hosted support plan covers your environment. Done means you hold a written answer that names each party responsible for each layer.

  4. Confirm the memory and search prerequisites

    Check that the target hosts meet the Docker Compose requirement of at least 4 GB of RAM and that vm.max_map_count is set to 262144 for Elasticsearch where that method is used. Confirm Elasticsearch is planned, because Zammad describes it as optional but strongly recommended for faster search, reporting and attachment search. For multi-instance deployments such as containers or cluster nodes, confirm Memcached is in the design. Done means a checklist of hosts, settings and services is signed off by the operations owner.

  5. Rehearse backup and restore on a test instance

    Run the backup procedure for your chosen method against a non-production instance, then restore it to a clean host or cluster namespace. For Docker Compose, use the backup and restore procedure Zammad documents for that stack. Verify that tickets, attachments, users and settings return, and that search and websocket features work after the restore. Done means a restore log with the date, the operator and the result, stored where the on-call team can find it.

  6. Test the upgrade on a staging copy

    Build a staging copy from a production backup and apply the update path you will use in production, starting from the version you run today. Check that database migrations complete, that Redis and Elasticsearch reconnect, and that integrations and third-party sign-in still work. Zammad publishes minor and security releases on separate tracks, so note which release line you are on before testing. Done means a staging report with the versions tested, the steps that needed manual work and the rollback steps confirmed.

  7. Record the decision and schedule production cutover

    Write down the chosen install method, the support boundary, the restore and upgrade results and the owner for each layer. Agree the production cutover and rollback plan with the change board before go-live. Confirm that the team has a named person for security updates on both the current and any parallel release line. Done means a signed decision record that a future auditor or new administrator can read without asking the original team.

Questions teams ask before choosing a Zammad install method

Does Zammad support Kubernetes-specific problems?

No. Zammad's Kubernetes guidance points to the Zammad Helm chart and states that Zammad provides support for the Zammad application only, not for Kubernetes-specific issues. Problems with the cluster, ingress, storage classes, node scheduling or the Helm release tooling fall to your platform team or to whoever runs the cluster. Before you choose this route, confirm who on your side owns cluster operations, and ask your Zammad support contact how application issues are handled when a cluster fault is involved. A cluster you already run and operate well is the condition under which this method makes sense.

How much RAM and kernel configuration does Docker Compose need for Zammad?

The documented Docker Compose deployment needs at least 4 GB of RAM and requires vm.max_map_count set to 262144 on the host, because Elasticsearch depends on that kernel setting. Those are minimums, not sizing guidance for your ticket volume, so plan headroom for search indexing and attachments. The host setting applies to the machine itself, which matters if the host is shared with other containers or if your hardening baseline limits kernel parameters. Backups follow Zammad's own backup and restore procedure, so schedule and test them as part of the stack rather than assuming host snapshots cover the data.

Can our team run the Zammad package install on its own?

Yes, if your staff can run a supported Linux server and manage its services. Zammad documents package installation on Ubuntu, Debian, OpenSUSE or SLES, and CentOS or RHEL. For teams expecting 5 or more agents, Zammad points to its environment variable and database server configuration pages, so the database layout and service configuration need deliberate planning. The package route also depends on PostgreSQL 15 or newer and Redis 7 or newer, with Elasticsearch optional but strongly recommended for search. Confirm that your OS versions and patch cadence match the packages you plan to run before you commit.

How much staff effort does each install method add to ongoing operations?

The main effort driver is who owns the layer beneath Zammad. With the package install, your Linux administrators own the operating system, PostgreSQL, Redis, the reverse proxy (Nginx or Apache) and any Elasticsearch deployment. Docker Compose moves some of that into container and host management, and it still needs the kernel setting and a tested backup routine. Kubernetes adds cluster operations on top, and Zammad support does not cover that layer. Memcached becomes necessary for multi-instance deployments such as containers or cluster nodes, while single installations can use the file system cache. Ask any implementation partner to break down the effort by layer, and ask your own team which skills are already in place.

Can DeployOpen plan and implement the install method we choose?

DeployOpen plans, implements, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure, which covers a Zammad install on your servers, containers or cluster. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and ongoing support and upgrades are available as retainers. DeployOpen does not publish a price list, so a quote follows from the written scope. To get a useful quote, provide your agent count, channels, identity provider, expected data volume, existing database and cluster standards, and the operating model your team will run after handover.

How hard is it to switch install methods after go-live?

Switching is a migration project, so plan it as one. The data lives in PostgreSQL, so the safest path is to take a backup using Zammad's documented procedure, build the target environment, restore, and validate attachments, search and integrations before cutting over. Docker Compose uses its own backup and restore procedure, so a move from a package install should not assume a file-level copy is enough. Elasticsearch indexes can be rebuilt, which affects search availability during the move. Confirm the exact steps for your Zammad version with Zammad's documentation and test the restore in a non-production environment before you retire the old host.

Does the choice of install method change Zammad's license or paid support?

No. Zammad is licensed under the GNU Affero General Public License version 3 regardless of how you install it, and self-hosted Zammad has no license fee. Paid self-hosted support subscriptions are named Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year, according to Zammad's pricing page. Those subscriptions are separate from your infrastructure and staff costs, and Zammad's pricing page states that self-hosted customers handle updates, backups and availability themselves. Ask Zammad which of the three subscriptions covers the install method you pick, and whether Kubernetes application support is included.

How DeployOpen scopes a Zammad deployment

DeployOpen plans, implements, hardens, backs up, upgrades, documents and supports self-hosted platforms inside the client's own infrastructure, and a Zammad install is scoped the same way whichever method you pick. For a package install on Ubuntu, Debian, SLES or RHEL, the work usually covers the host build, the PostgreSQL and Redis dependencies, the reverse proxy, the Elasticsearch decision and the backup routine. For a Docker Compose or Helm deployment, it also covers the container host or cluster, persistent storage, Memcached for multi-instance setups and the Elasticsearch host settings. Engagements are typically fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and ongoing upgrades, support and testing can be added as optional retainers.

DeployOpen does not publish a price list. A quote follows from the written scope, so the useful input is a clear description of your agent count, channels, identity provider, hosting target and the install method you have chosen. Ask the vendor or DeployOpen to state which components are one-time (build, configuration, migration, hardening, documentation) and which recur (upgrades, backups testing, monitoring, support). Confirm in writing who owns Kubernetes-specific troubleshooting, since Zammad support covers only the application itself for that method. Also confirm who is responsible for the platform upgrades Zammad publishes, such as the 7.2 line and its security releases, and how those are tested before they reach production.

DeployOpen does not claim vendor partner status or certifications for Zammad, and it does not issue audit reports or attestations. Where your compliance program needs evidence of how Zammad was installed, configured and backed up, DeployOpen can prepare the systems, controls and documentation for an independent assessor to review. Before you sign, ask for the deliverables list, the acceptance criteria for the install, the handover process and the terms for a support retainer, so that the scope you approve matches the work you will receive.

How DeployOpen delivers and supports Zammad installs

DeployOpen plans, implements, hardens, backs up, upgrades and documents self-hosted open-source platforms inside the client's own infrastructure. For Zammad, that means choosing the install method that fits the team's operating model, then delivering the installation, configuration, evidence and handover in writing.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • The written scope names the chosen method: DEB or RPM package, Docker Compose stack, or Helm chart.
  • Scope records target operating systems, PostgreSQL, Redis, Elasticsearch and reverse proxy choices, plus identity provider integration.

How we build

  • Installation runs in the client's cloud account, data center or air-gapped network, with the agreed install method.
  • Configuration covers the environment variables, database server settings and cache choices the team's agent count requires.
  • Multi-instance designs add Memcached and shared storage, and the build is tested against the client's own identity and mail flows.

How we hand over

  • Deliverables include documented install steps, configuration records and a backup and restore procedure the team can run.
  • Handover covers upgrade steps for both package and container paths, so the team knows which upgrade process it owns.
  • Compliance evidence, where required, is prepared for the client's own assessor, since DeployOpen does not issue audit reports or certifications.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Confirm in the written scope which layers DeployOpen supports, such as the Zammad application, the host or the Kubernetes platform.
  • Ask for the support boundary in writing, since Zammad's own support does not cover Docker or Kubernetes-specific problems.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.