> ## Content Index
> Fetch the complete content index at: https://www.richarvin.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Docker一键部署Zammad客户支持系统
- URL: https://www.richarvin.com/docker-yi-jian-bu-shu-zammad-ke-hu-zhi-chi-xi-tong/
- Published: 2025-03-18T07:51:39.000Z
- Updated: 2026-09-09T03:01:21.000Z
- Author: Richarvin
- Tags: Docker部署

💡

Zammad作为一款开箱即用的开源客服系统，凭借其敏捷部署与多渠道整合能力，正成为中小企业构建客户服务体系的利器。该系统可以30秒快速部署，支持NAS等私有化环境的运行。

## 一、项目简介

---

# 核心功能矩阵

全域渠道聚合：无缝对接微信、邮件、网页聊天等12+沟通平台，实现跨渠道咨询统一归集与智能分配，消除多平台切换的信息孤岛。

智能工单引擎：支持工单拆分/合并/优先级标记，内置SLA时效监控与自动化规则引擎，结合客户信息数据库实现全流程可追溯。

企业级安全体系：通过双重认证、操作审计日志等功能满足金融级合规要求，知识库与实时聊天模块支持ISO标准文档管理。

# 技术生态优势

多语言全球化：提供中英日等9国语言界面，适配跨境业务场景。

弹性扩展架构：通过RESTful API对接GitHub等第三方系统，Elasticsearch强化毫秒级搜索，Nginx反向代理支撑高并发访问。

 社区驱动迭代：由德国Zammad基金会主导开发，活跃贡献者持续优化功能模块。

实测数据显示，该系统在4核8G服务器环境下可日均稳定处理200+工单。

## 二、环境准备

---

- VPS一台 最低配置2核4G 带宽1M即可
- 服务器系统：本文演示的系统是ubuntu20.04(LTS)
- 是否备案：如果服务器在国外，站点无须备案；如果服务器在国内，网站必须备案。
- 域名一个
- 图床一个（又拍云、阿里云oss、腾讯云cos、七牛云等）
- 为了便于后期的升级维护以及卸载，利用docker+Nginx Proxy Manager部署
- 安装好Docker、Docker-compose、Nginx Proxy Manager（[安装教程](https://www.richarvin.com/ubuntu-da-jian-docker-bu-shu-wordpress-bo-ke/)）
- SSH工具：[FinalShell官网](https://www.hostbuf.com/?ref=richarvin.com)
- 项目地址：[Github官网](https://github.com/zammad/zammad?ref=richarvin.com)
- 官方软硬件配置要求请参考以下链接：[Zammad官网](https://docs.zammad.org/en/latest/prerequisites/software.html?ref=richarvin.com#server-requirements)

[官方文档](https://zammad.org/documentation?ref=richarvin.com)

## 三、部署过程

---

### 系统初始化，更新索引

```bash
#更新索引库
sudo apt-get update
```

### 安装Git

```bash
sudo apt install -y git
```

### 验证Git是否安装成功，如果显示类似 git version 2.25.1，说明安装成功

```bash
git --version
```

### 进入你想安装的工作目录，该路径可自行选择，通常我的教程文章测试环境目录如下

```bash
# 进入安装目录
cd /root/data/docker_workspace/

# 克隆Zammad项目文件到当前路径下
git clone https://github.com/zammad/zammad-docker-compose.git
```

### 可参考如下截图编辑.env文件保存

```yml
#############################################
# Docker 环境变量
# https://docs.zammad.org/en/latest/install/docker-compose/environment.html
#############################################

#############################################
# docker-compose.yml - 如果这些变量没有默认值，你需要设置这些变量。
#############################################

RESTART=always  # 容器重启策略，设置为始终重启容器

# 使用固定的Zammad版本，而不是默认版本。如果这样做，你需要自己负责更新到最新的修补版本。
# VERSION=6.4.1-64  # 固定版本
# 你也可以使用浮动版本，它会自动更新：
VERSION=6.2     # 包括所有补丁更新
# VERSION=6       # 包括小版本更新
# VERSION=latest  # 包括稳定版本的所有更新，包括大版本
# VERSION=develop # 最新的开发版本
IMAGE_REPO=ghcr.io/zammad/zammad  # Zammad镜像仓库地址

ELASTICSEARCH_VERSION=8.17.3  # Elasticsearch版本
MEMCACHE_SERVERS=zammad-memcached:11211  # Memcached服务器地址和端口
MEMCACHE_VERSION=1.6.37-alpine  # Memcached版本
REDIS_URL=redis://zammad-redis:6379  # Redis连接URL
REDIS_VERSION=7.4.2-alpine  # Redis版本
POSTGRES_VERSION=17.4-alpine  # PostgreSQL版本

# RAILS_TRUSTED_PROXIES=  # 信任的代理设置
# ZAMMAD_HTTP_TYPE=  # Zammad HTTP类型配置
# ZAMMAD_FQDN=  # Zammad 的FQDN配置

NGINX_PORT=8080  # Nginx监听的端口
NGINX_EXPOSE_PORT=8080  # Nginx外部暴露的端口
NGINX_CLIENT_MAX_BODY_SIZE=50M  # Nginx客户端最大请求体积限制
POSTGRES_DB=zammad_production  # PostgreSQL数据库名称
POSTGRES_PASS=zammad  # PostgreSQL数据库密码
POSTGRES_USER=zammad  # PostgreSQL数据库用户名
POSTGRES_HOST=zammad-postgresql  # PostgreSQL主机地址
POSTGRES_PORT=5432  # PostgreSQL端口
POSTGRESQL_OPTIONS=?pool=50  # PostgreSQL连接池选项

ELASTICSEARCH_SCHEMA=http  # Elasticsearch使用的协议类型（http/https）
ELASTICSEARCH_HOST=zammad-elasticsearch  # Elasticsearch主机地址
ELASTICSEARCH_PORT=9200  # Elasticsearch端口
ELASTICSEARCH_USER=elastic  # Elasticsearch用户名
ELASTICSEARCH_PASS=zammad  # Elasticsearch密码
ELASTICSEARCH_NAMESPACE=zammad  # Elasticsearch命名空间
ELASTICSEARCH_REINDEX=true  # 是否启用 Elasticsearch重建索引

# 以下是为 nginx-proxy 容器配置反向代理所使用的变量，
# 文档参考：https://github.com/nginx-proxy/nginx-proxy。
# VIRTUAL_HOST=  # 虚拟主机名配置
# VIRTUAL_PORT=  # 虚拟端口配置
# 以下是为acme-companion配置LetsEncrypt证书所使用的变量，
# 文档参考：https://github.com/nginx-proxy/acme-companion。
# LETSENCRYPT_HOST=  # 用于生成LetsEncrypt证书的主机名
# LETSENCRYPT_EMAIL=  # 用于LetsEncrypt证书的电子邮件地址

#############################################
# scenarios/add-cloudflare-tunnel.yml
#############################################

# CLOUDFLARE_TUNNEL_TOKEN=mytoken  # Cloudflare Tunnel 的 token

#############################################
# scenarios/add-external-network-to-nginx.yml
#############################################

# ZAMMAD_NGINX_EXTERNAL_NETWORK=mynetwork  # Nginx 外部网络配置

#############################################
# scenarios/add-external-network-to-elasticsearch.yml
#############################################

# ZAMMAD_ELASTICSEARCH_EXTERNAL_NETWORK=mynetwork  # Elasticsearch 外部网络配置

#############################################
# scenarios/add-hostport-to-elasticsearch.yml
#############################################

# 默认为 9200，如果你需要设置不同的端口，请修改此项。
# ELASTICSEARCH_EXPOSE_HTTP_PORT=9200  # Elasticsearch外部暴露端口

```

### 确认进入/root/data/docker\_workspace/zammad-docker-compose/目录启动以下命令

```bash
docker-compose up -d
```

![](https://picture.richarvin.com/202503/202503180002.webp)

Zammad镜像组件拉取

打开浏览器，地址栏内输入服务器IP+8080形式访问，后续可以自行通过NPM中将你的域名和IP进行绑定访问了。

拉取过程中如果因为docker-compose版本过低导致失败，或者你服务器上原本安装的docker-compose的版本就很低，请按照下面方法操作

```bash
# 强制删除旧版docker-compose的可执行文件
sudo rm -f /usr/local/bin/docker-compose

# 从Docker官方GitHub仓库下载最新版本的docker-compose可执行文件，并保存到 /usr/local/bin目录下
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予docker-compose可执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 创建软链接，可以在任何位置通过 `docker-compose` 命令访问
sudo ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# 检查docker-compose是否已成功升级
docker-compose version
```

## 四、网站初始化

---

![](https://picture.richarvin.com/202503/202503180003.webp)

管理员账号注册

必须至少包含2个小写字母和2个大写字母！

![](https://picture.richarvin.com/202503/202503180005.webp)

网站信息设置

先行跳过E-mail设置，后续随时可以在控制面板中进行调整

![](https://picture.richarvin.com/202503/2025031800006.webp)

先行跳过邮箱设置界面

![](https://picture.richarvin.com/202503/202503180007.webp)

继续跳过

![](https://picture.richarvin.com/202503/202503180008.webp)

初始化完成

点击左下角的齿轮设置图标，进入setting选项-branding-Locale,选择简体中文，提交后退出系统重新登录。如果发现界面语言没有及时更改，强制刷新几次页面即可

![](https://picture.richarvin.com/202503/202503180009.webp)

系统语言

![](https://picture.richarvin.com/202503/202503180020.webp)

移动端界面

## 五、更多官方截图

---

![](https://picture.richarvin.com/202503/202503180010.webp)

控制面板

![](https://picture.richarvin.com/202503/202503180011.webp)

工单详情

![](https://picture.richarvin.com/202503/202503180012.webp)

工单-文本界面

![](https://picture.richarvin.com/202503/202503180013.webp)

用户界面

![](https://picture.richarvin.com/202503/202503180014.webp)

组织界面

![](https://picture.richarvin.com/202503/202503180015.webp)

网站嵌入式聊天设计

![](https://picture.richarvin.com/202503/202503180016.webp)

快捷键

---