Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

Zammad Helpdesk

Inhaltsverzeichnis

Zammad
#

Status
#

Status
Uptime
Ping
Avg Response Time
Certificate Expiration
Response Time

Deployment
#

Argo Deployment

Quelle
#

Die Anwendung wird als Helm-Chart von Zammad bezogen.

Dokumentation
#

Die offizielle Dokumentation von Zammad ist unter docs.zammad.org zu finden.

Funktion
#

Zammad ist ein leistungsstarkes System zur Verwaltung von Kundenkommunikation. Es ermöglicht Support-Teams, Anfragen zentral zu erfassen, zu priorisieren, zuzuweisen und zu beantworten. Das System besteht aus mehreren Komponenten, die vom Helm-Chart verwaltet werden, darunter:

  • Zammad Rails Server: Die Hauptanwendung.
  • Zammad Websocket Server: Für Echtzeit-Kommunikation in der UI.
  • Zammad Scheduler: Für Hintergrundaufgaben.
  • PostgreSQL: Die primäre Datenbank.
  • Elasticsearch: Für eine schnelle und leistungsfähige Volltextsuche in Tickets und Artikeln.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die values.yaml-Datei und Patches in der kustomization.yaml.

Wichtige Einstellungen
#

  • Ingress: Der Zugriff auf die Weboberfläche wird über einen Ingress mit dem Hostnamen service.zyria.de ermöglicht.
  • Ressourcen: Sowohl für PostgreSQL als auch für Elasticsearch sind hohe Ressourcenanforderungen (2xlarge) voreingestellt, um eine gute Leistung zu gewährleisten.
  • Datenbank-Initialisierung: Ein initdb-Skript wird über einen Patch in den PostgreSQL-Pod gemountet, um die Datenbank bei der ersten Erstellung zu initialisieren.
  • Auto-Wizard: Der Einrichtungs-Assistent, der beim ersten Start erscheint, ist deaktiviert, da die Konfiguration über andere Wege erfolgt.
 1Setting.set('system_bcc', 'service+Sent@casa-due-pur.de')
 2Setting.set('ui_ticket_create_notes', {
 3      :"phone-in"=>"Du erstellst einen eingehenden Anruf.",
 4      :"phone-out"=>"Du erstellst einen ausgehenden Anruf.",
 5      :"email-out"=>"Du wirst eine E-Mail senden."
 6  })
 7Setting.set('ui_ticket_add_article_hint', {
 8      :"note-internal"=>"Du erstellst eine INTERNE Notiz. Nur andere Mitarbeiter werden diese sehen können.",
 9      :"note-public"=>"Du erstellst eine öffentlich Notiz. Der Kunde kann diese unter Umständen sehen.",
10      :"phone-internal" => "Du erstellst eine INTERNE Telefonnotiz. Nur andere Mitarbeiter werden diese sehen können.",
11      :"phone-public"=>"Du erstellst eine öffentliche Telefonnotiz. Der Kunde kann diese unter Umständen sehen.",
12      :"email-internal" => "Du erstellst eine externe Mail. Der Kunde kann diese sehen.",
13      :"email-public"=>"Du erstellst eine externe Email. Der Kunde kann diese sehen."
14  })
15Setting.set('ui_user_organization_selector_with_email', true)
16
17
18Setting.set('ui_sidebar_open_ticket_indicator_colored', true)

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/zammad-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/zammad | kubectl apply -n zammad -f -

Abhängigkeiten
#

  • A running Kubernetes cluster.
  • A configured Ingress controller (e.g., Traefik).
  • A certificate management solution (e.g., cert-manager) to provide TLS certificates, as configured in certs.yaml.
  • Ein NFS-Server für persistenten Speicher (für das initdb-Volume).
Per E-Mail antworten
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin