Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Zammad

Zammad is an open-source helpdesk and ticketing system for customer support and IT service teams. It consolidates email, chat, social, and phone channels into a shared inbox with ticketing, SLAs, knowledge base, and reporting. It runs as a self-hosted web application backed by PostgreSQL and Elasticsearch.

ComponentVersion
Zammad7.1.1
PostgreSQL17-alpine
Redis7.2-alpine
Elasticsearch9.4.3
DockerLatest stable
Ubuntu24.04 LTS
ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates the database password and starts the Zammad, PostgreSQL, Redis, and Elasticsearch containers. This can take 5 to 10 minutes. Track progress:

sudo journalctl -u zammad-first-boot.service -f

The login message (MOTD) confirms when Zammad is ready. You can also verify the stack directly:

cd /opt/zammad && docker compose ps

Open a browser and navigate to:

http://<your-vm-ip>:8080

Complete the first-run setup wizard to create your administrator email address and password. The image does not create shared default administrator credentials.

Zammad runs as a Docker Compose stack in /opt/zammad.

# Check status
cd /opt/zammad && docker compose ps
# Restart
cd /opt/zammad && docker compose restart
# View logs
cd /opt/zammad && docker compose logs -f
PathPurpose
/opt/zammad/docker-compose.ymlDocker Compose configuration
/opt/zammad/.envInternal database password and hostname
/opt/zammad/data/postgresql/PostgreSQL data
/opt/zammad/data/elasticsearch/Elasticsearch data
/opt/zammad/data/redis/Redis data
/opt/zammad/data/zammad/Zammad attachments and persistent storage
/root/.credentials/zammad.txtDatabase credentials and access details

Zammad uses port 8080. UFW is enabled and allows SSH (port 22) plus port 8080 by default. PostgreSQL, Redis, and Elasticsearch remain on the internal Docker network and are not published on the VM’s network interface.

To restrict Zammad to a specific IP:

sudo ufw delete allow 8080/tcp
sudo ufw allow from <trusted-ip> to any port 8080

To access the UI without leaving port 8080 open, use an SSH tunnel:

# Run this on your local machine
ssh -L 8080:localhost:8080 ubuntu@<your-vm-ip>
# Then open in your browser
http://localhost:8080

For production use, place Zammad behind a reverse proxy so you can serve it over HTTPS with a trusted TLS certificate.

Last updated: