Deploy Zammad, the modern customer support platform with real-time ticket management, omnichannel support (email, chat, Twitter, Facebook), and knowledge base.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/support/zammad/zammad-ubuntu.sh
chmod +x zammad-ubuntu.sh
sudo bash zammad-ubuntu.sh
The script installs Docker, deploys Zammad with PostgreSQL, Redis, and Elasticsearch via Docker Compose, and starts all services. Zammad will be accessible on port 80 once initialization completes (may take 2–3 minutes on first boot).
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/support/zammad/zammad-ubuntu.sh
chmod +x zammad-ubuntu.sh
sudo bash zammad-ubuntu.sh
Open your browser and navigate to the Zammad setup wizard. Follow the on-screen steps to create your administrator account and configure your organization name and default locale.
http://<your-server-ip>:80
Connect your email mailbox to Zammad so incoming support emails are automatically converted to tickets. Navigate to Admin → Channels → Email to add your IMAP settings and SMTP sender. You can also enable the web widget under Channels → Web Widget to offer live chat support from your website.
Add your support team members as agents under Admin → Users. Create ticket groups (e.g., Sales, Technical Support, Billing) under Admin → Groups and assign agents to each group. Configure SLA timers per group to track first response and resolution deadlines automatically.
| Port | Purpose |
|---|---|
| 80 | Web UI |
| 443 | HTTPS |
| 5432 | PostgreSQL database (internal) |
| 6379 | Redis cache (internal) |
Zammad is a modern open-source helpdesk and customer support platform built with Ruby on Rails. It provides a clean, responsive UI for managing tickets from multiple channels including email, phone, chat, Twitter, and Telegram — all in one unified agent workspace with real-time updates.
Zammad offers a significantly more modern UI than osTicket while remaining fully self-hosted and free for the core features. It includes built-in full-text search via Elasticsearch, real-time ticket updates, and powerful automation rules — features typically requiring expensive SaaS plans elsewhere.
Zammad runs on port 80. Serve it via HTTPS through a reverse proxy. Elasticsearch (port 9200) and PostgreSQL (port 5432) must never be exposed publicly. The WebSocket connection for real-time updates must be proxied correctly — include Upgrade headers in your proxy configuration.
Alternatives include osTicket (mature, feature-rich, older UI), Freshdesk (cloud, polished), Zendesk (cloud, industry standard), and Hesk (very lightweight, self-hosted). Choose Zammad for the best self-hosted helpdesk UI experience with real-time collaboration.
Avoid Zammad if your server has less than 4 GB RAM — Elasticsearch alone needs 1 to 2 GB. Also avoid if you need extensive customization via plugins; Zammad has fewer community extensions than osTicket.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Yes — Elasticsearch is required for Zammad's full-text search and ticket indexing. Without it, search functionality is severely limited. The Docker Compose setup includes an Elasticsearch container. Plan for at least 1 GB of RAM allocated to Elasticsearch for small deployments.
Zammad natively supports email (IMAP and SMTP), phone call logging, Twitter or X DMs and mentions, Telegram messages, and live chat. All channels converge in the same ticket interface — an agent sees all customer communications in one thread regardless of the original channel.
Yes. Zammad uses real-time WebSocket updates so agents see when another agent is currently viewing or editing a ticket. The UI shows a presence indicator, preventing duplicate replies. Agents can also leave internal notes visible only to the team, separate from customer-facing replies.
Yes. Configure triggers and schedulers to automate ticket management. Triggers fire on specific conditions (e.g., new email received, ticket priority changed) and perform actions (assign to group, set priority, send auto-reply). Schedulers run on time-based conditions for SLA escalations.
Yes. Zammad supports LDAP integration including Active Directory. Configure the LDAP connection in Zammad admin settings under Users and then LDAP. Users can then authenticate with their domain credentials. Group mapping can assign Zammad roles based on AD group membership.
Enable the Time Accounting feature in Zammad settings. When closing or updating a ticket, agents are prompted to log the time spent. Time entries appear in the ticket history and are available in reports. This is useful for billing clients or measuring agent productivity.
Yes. Customers can access a web portal to submit new tickets, view ticket history, and check the status of open issues. The portal requires customers to create an account (or log in via email link). It also displays the knowledge base articles for self-service before submitting a ticket.
Pull the new Zammad Docker image, review the upgrade notes on the Zammad GitHub releases page for migration commands, stop the containers, start with the new image, and run database migrations inside the container. Always create a full database backup before any upgrade.