简介

zammad是一个基于Web的开源服务台与客户支持系统,它提供了各种渠道的连接,如html、表单、电子邮件、SMS短信、网页对话栏、Google、X、脸书、TGbot、Whatsapp等方式接入客户帮助台。

  • 支持全文检索。
  • 具有灵活的文本模块。
  • 立即报告对象的更改。
  • 支持自动保存。
  • 支持单独升级或设置客户端解决时限。
  • 它是可审计的并且经常在银行中使用。
  • 允许创建单独的概述。
  • 支持各种安全机制,例如设备日志记录和双因素身份验证。
  • 提供客户界面,他们可以随时跟踪当前的编辑情况。
  • 支持通过 Twitter、Facebook、LinkedIn 或 Google 通过 OAuth 进行外部身份验证。

安装

需要先升级 docker compose 组件,低版本的会提示 yml 配置文件出错。这里的 docker compose 版本以2.29.7为例。详细配置可以参考 https://wiki.waringid.me/x/RgAx

.env

ELASTICSEARCH_VERSION=8.15.2
IMAGE_REPO=ghcr.io/zammad/zammad
MEMCACHE_SERVERS=zammad-memcached:11211
MEMCACHE_VERSION=1.6.31-alpine
NGINX_PORT=8080
NGINX_EXPOSE_PORT=8080
POSTGRES_DB=zammad_production
POSTGRES_PASS=zammad
POSTGRES_USER=zammad
POSTGRES_HOST=zammad-postgresql
POSTGRES_PORT=5432
POSTGRES_VERSION=chaitin/safeline-postgres:15.2
POSTGRESQL_OPTIONS=?pool=50
REDIS_URL=redis://zammad-redis:6379
REDIS_VERSION=7.4.0-alpine
RESTART=always
# Use a fixed version. You are responsible to update this to newer patch level versions yourself.
VERSION=6.3.1-185

zammad.yml

version: '3.8'

x-shared:
  zammad-service: &zammad-service
    environment: &zammad-environment
      MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211}
      POSTGRESQL_DB: ${POSTGRES_DB:-zammad_production}
      POSTGRESQL_HOST: ${POSTGRES_HOST:-zammad-postgresql}
      POSTGRESQL_USER: ${POSTGRES_USER:-zammad}
      POSTGRESQL_PASS: ${POSTGRES_PASS:-zammad}
      POSTGRESQL_PORT: ${POSTGRES_PORT:-5432}
      POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50}
      POSTGRESQL_DB_CREATE:
      REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379}
      # Backup settings
      BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}"
      BACKUP_TIME: "${BACKUP_TIME:-03:00}"
      HOLD_DAYS: "${HOLD_DAYS:-10}"
      TZ: "${TZ:-Asia/Shanghai}"
      # Allow passing in these variables via .env:
      AUTOWIZARD_JSON:
      AUTOWIZARD_RELATIVE_PATH:
      ELASTICSEARCH_ENABLED:
      ELASTICSEARCH_HOST:
      ELASTICSEARCH_PORT:
      ELASTICSEARCH_SCHEMA:
      ELASTICSEARCH_NAMESPACE:
      ELASTICSEARCH_REINDEX:
      ELASTICSEARCH_SSL_VERIFY:
      NGINX_PORT:
      NGINX_SERVER_NAME:
      NGINX_SERVER_SCHEME:
      RAILS_TRUSTED_PROXIES:
      ZAMMAD_WEB_CONCURRENCY:
      ZAMMAD_SESSION_JOBS:
      ZAMMAD_PROCESS_SCHEDULED:
      ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
    image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.3.1-185}
    restart: ${RESTART:-always}
    volumes:
      - /data/zammad/data:/opt/zammad/storage
    depends_on:
      - zammad-memcached
      - zammad-postgresql
      - zammad-redis

services:

  zammad-backup:
    <<: *zammad-service
    command: ["zammad-backup"]
    volumes:
      - /data/zammad/backup:/var/tmp/zammad
      - /data/zammad/data:/opt/zammad/storage:ro
    user: 0:0

  zammad-elasticsearch:
    image: bitnami/elasticsearch:${ELASTICSEARCH_VERSION:-8.15.2}
    restart: ${RESTART:-always}
    volumes:
      - /data/zammad/elasti:/bitnami/elasticsearch/data

  zammad-init:
    <<: *zammad-service
    command: ["zammad-init"]
    depends_on:
      - zammad-postgresql
    restart: on-failure
    user: 0:0

  zammad-memcached:
    command: memcached -m 256M
    image: memcached:${MEMCACHE_VERSION:-1.6.31-alpine}
    restart: ${RESTART:-always}

  zammad-nginx:
    <<: *zammad-service
    command: ["zammad-nginx"]
    expose:
      - "${NGINX_PORT:-8080}"
    ports:
      - "${NGINX_EXPOSE_PORT:-8080}:${NGINX_PORT:-8080}"
    depends_on:
      - zammad-railsserver

  zammad-postgresql:
    environment:
      POSTGRES_DB: ${POSTGRES_DB:-zammad_production}
      POSTGRES_USER: ${POSTGRES_USER:-zammad}
      POSTGRES_PASSWORD: ${POSTGRES_PASS:-zammad}
    image: chaitin/safeline-postgres:15.2
    restart: ${RESTART:-always}
    volumes:
      - /data/zammad/db:/var/lib/postgresql/data

  zammad-railsserver:
    <<: *zammad-service
    command: ["zammad-railsserver"]

  zammad-redis:
    image: redis:${REDIS_VERSION:-7.4.0-alpine}
    restart: ${RESTART:-always}
    volumes:
      - /data/zammad/redis:/data

  zammad-scheduler:
    <<: *zammad-service
    command: ["zammad-scheduler"]

  zammad-websocket:
    <<: *zammad-service
    command: ["zammad-websocket"]

需要注意:/data/zammad/elasti 需要写入权限,否则该容器会处于一直自动重启状态。chmod 777 /data/zammad/elasti


日常维护

通过指令方式操作内容

docker exec -it zammad-zammad-railsserver-1 /docker-entrypoint.sh rails c

参考

  • 无标签
写评论...