Wie installiere ich Zammad Customer Support System auf Debian 12

Zammad ist eine Open-Source-Kundensupport-/Ticketing-Lösung, die dabei hilft, die Kommunikation über verschiedene Kanäle wie E-Mail, Chat und soziale Medien zu verwalten.

In dieser Anleitung lernst du, wie du das Zammad Customer Support System mit PostgreSQL und Nginx auf einem Debian 12 Server installierst. Du wirst Zammad auch mit Elasticsearch und Redis integrieren, also bleib dran.

Voraussetzungen

Bevor du fortfährst, solltest du sicherstellen, dass du die folgenden Voraussetzungen erfüllst:

  • Einen Debian 12-Server mit mindestens 4 GB Arbeitsspeicher.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installieren der Abhängigkeiten

Im ersten Schritt installierst du die Paketabhängigkeiten für das Zammad Customer Support System. Dazu gehören die folgenden Pakete:

  • Elasticsearch
  • PostgreSQL-Datenbankserver
  • Redis
  • Nginx Webserver
  • Node.js
  • UFW

Diese Pakete wirst du auf deinem Debian-Server installieren.

Führe zunächst den folgenden Befehl aus, um grundlegende Pakete für die Verwaltung des Repositorys zu installieren. Gib y ein, um die Installation zu bestätigen.

sudo apt install curl apt-transport-https gnupg

Basisdepots installieren

Führe nun den folgenden Befehl aus, um das Elasticsearch 7.x Repository zu deinem Debian 12 Server hinzuzufügen.

echo "deb [signed-by=/etc/apt/trusted.gpg.d/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main"| \
tee -a /etc/apt/sources.list.d/elastic-7.x.list > /dev/null

Füge dann den GPG-Schlüssel für das Elasticsearch-Repository mit dem unten stehenden Befehl hinzu.

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null

Als nächstes aktualisierst du dein Debian-Repository mit dem folgenden Befehl.

sudo apt update

Repo elasticsearch hinzufügen

Sobald das Repository aktualisiert ist, installierst du die Abhängigkeiten für Zammand mit dem folgenden Befehl. Gib Y ein, um die Installation zu bestätigen.

sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs locales ufw

deps installieren

Sobald alles installiert ist, überprüfe jeden der Dienste, um sicherzustellen, dass der Dienst läuft und aktiviert ist.

Überprüfe den PostgreSQL-Server mit diesem Befehl.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Unten kannst du sehen, dass PostgreSQL läuft und aktiviert ist.

postgresql verifizieren

Überprüfe den Redis-Server mit dem folgenden Befehl.

sudo systemctl is-enabled redis
sudo systemctl status redis

Du siehst unten, dass Redis läuft.

Redis verifizieren

Überprüfe nun Nginx mit dem folgenden Befehl.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Der Nginx-Webserver sollte wie folgt laufen und aktiviert sein:

nginx verifizieren

Zuletzt führst du den folgenden Befehl aus, um Elasticsearch zu starten und zu aktivieren.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Überprüfe ihn dann mit dem unten stehenden Befehl. Du solltest sehen, dass Elasticsearch läuft und aktiviert ist.

sudo systemctl status elasticsearch

verifiziere elasticsearch

Konfigurieren der Abhängigkeiten

Nachdem du die Paketabhängigkeiten für Zammad installiert hast, musst du im nächsten Schritt alle Abhängigkeiten für Zammad konfigurieren. Du wirst Folgendes konfigurieren:

  • PostgreSQL: Erhöhe den Standardwert max_connections auf 2000.
  • Elasticsearch: Installiere das Plugin ingest-attachment, das von Zammad benötigt wird.
  • Standard-Locale auf en_US.UTF-8 einstellen
  • UFW: Starte und aktiviere, öffne die Ports SSH, HTTP und HTTPS.

PostgreSQL einrichten

Öffne die Standardkonfiguration von PostgreSQL /etc/postgresql/15/main/postgresql.conf mit dem unten stehenden nano-Editorbefehl.

sudo nano /etc/postgresql/15/main/postgresql.conf

Ändere die Standardeinstellung max_connections in PostgreSQL auf 2000m, die von Zammad benötigt wird.

max_connections = 2000

Speichere die Datei und beende den Editor.

Führe nun den folgenden systemctl-Befehl aus, um PostgreSQL neu zu starten und die Änderungen zu übernehmen,

sudo systemctl restart postgresql

Elasticsearch einrichten

Nachdem wir PostgreSQL konfiguriert haben, richten wir nun Elasticsearch ein.

Installiere das ingest-attachment Plugin für Zammad mit dem unten stehenden Befehl elasticsearch-plugin.

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

Gib y ein, um die Installation zu bestätigen. Wenn du fertig bist, erhältst du die folgende Meldung.

elasticsearch plugin installieren

Starte nun die elasticsearch mit dem unten stehenden Befehl neu.

sudo systemctl restart elasticsearch

Überprüfe abschließend mit curl, ob die Elasitcsearch läuft.

curl -X GET 'http://localhost:9200'

Du kannst unten sehen, dass Elasitcsearch auf einem Debian-Server läuft.

elasticsearch testen

Standard-Locale einrichten

Damit Zammad richtig funktioniert, musst du das Standard-Locale auf en_US.UTF-8 einstellen.

Führe den folgenden Befehl aus, um die Locale en_US.UTF-8 zu erzeugen.

locale-gen en_US.UTF-8

Richte dann die Standard-Locale en_US.UTF-8 ein, indem du eine neue Konfiguration in die Datei /etc/default/locale einträgst.

echo "LANG=en_US.UTF-8" > /etc/default/locale

Gebietsschema einrichten

UFW einrichten

Führe nun den Befehl ufw aus, um die Profile OpenSSH und WWW Full zu aktivieren.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Aktiviere dann UFW mit dem folgenden Befehl. Gib zur Bestätigung y ein und starte UFW.

sudo ufw enable

Sobald es aktiviert ist, siehst du Folgendes:

ufw-Einrichtung

Wenn UFW aktiviert ist, führe den unten stehenden Befehl aus, um es zu überprüfen.

sudo ufw status

Du siehst UFW mit dem Status Aktiv und den aktivierten Profilen OpenSSH und WWW Full.

ufw prüfen

Installation von Zammad Customer Support System

An diesem Punkt hast du die Installation und Konfiguration der Abhängigkeiten für Zammad abgeschlossen. Jetzt beginnst du mit der Installation von Zammad, die auf verschiedene Arten erfolgen kann. Die einfachste Methode ist die Verwendung von Paketen aus dem offiziellen Zammad-Repository.

Führe den folgenden Befehl aus, um den GPG-Schlüssel für das Zammad-Repository hinzuzufügen.

curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/pkgr-zammad.gpg> /dev/null

Füge nun das Zammad-Repository für Debian 12 mit dem folgenden Befehl hinzu.

echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main"| \
tee /etc/apt/sources.list.d/zammad.list > /dev/null

Aktualisiere dein Debian-Repository mit dem folgenden Befehl.

sudo apt update

zammad repo hinzufügen

Sobald das Repository aktualisiert ist, installiere Zammad mit dem folgenden Befehl.

sudo apt install zammad

Unten siehst du die Installation von Zammad:

Zammad installieren

Während der Installation werden neben der Datenbankmigration auch die PostgreSQL-Datenbank und der Benutzer erstellt.

Datenbankmigration

Außerdem wird die Konfiguration des Nginx-Serverblocks erstellt.

Zammad-Installation beendet

Nach Abschluss der Installation führst du den unten stehenden Befehl zammad aus, um die Integration mit Elasticsearch einzurichten und den Suchindex in Elasticsearch neu zu erstellen.

zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild

elasticsearch Integration

Führe dann den unten stehenden Befehl aus, um die Zammad-Dienste neu zu starten. Zammad wird mit mehreren Diensten geliefert, darunter zammad, zammad-web, zammad-worker und zammad-websocket.

sudo systemctl restart zammad
sudo systemctl restart zammad-web
sudo systemctl restart zammad-worker
sudo systemctl restart zammad-websocket

Führe abschließend den folgenden Befehl aus, um den Status des Zammad-Dienstes zu überprüfen.

sudo systemctl is-enabled zammad
sudo systemctl status zammad

Unten siehst du, dass der Zammad-Dienst auf dem Debian-Server läuft und aktiviert ist.

zammad Dienststatus

Einrichten des Nginx-Webservers

Standardmäßig erzeugt zammad eine Nginx-Serverkonfiguration, die sich unter /etc/nginx/sites-available/zammad.conf befindet. Um Zammad in der Produktion einzurichten, musst du sicherstellen, dass du die Domain-Konfiguration änderst. Außerdem musst du in der Produktion mit HTTPS sichern.

Öffne die Datei /etc/nginx/sites-available/zammad.conf mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/nginx/sites-available/zammad.conf

Ändere den Standarddomänennamen in der Option server_name wie folgt:

server_name help.hwdomain.io;

Speichere und beende die Datei.

Als Nächstes führst du den folgenden Befehl aus, um die Nginx-Syntax zu überprüfen, und startest den Nginx-Dienst neu, damit er wirksam wird.

sudo nginx -t
sudo systemctl restart nginx

Unten kannst du sehen, dass der Nginx-Syntaxtest erfolgreich war.

nginx-Einrichtung

Absicherung von Zammad

Wenn du Zammad in der Produktion einsetzt, stelle sicher, dass du HTTPS über Letsencrypt aktivierst.

Installiere das certbot und certbot nginx Plugin mit dem folgenden Befehl. Gib y ein, um die Installation zu bestätigen.

sudo apt install certbot python3-certbot-nginx

Sobald die Installation abgeschlossen ist, erstellst du mit dem folgenden certbot-Befehl SSL/TLS-Zertifikate für deine Zammadomäne. Achte darauf, dass du die Informationen des Domainnamens und der E-Mail-Adresse in diesem Befehl änderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d help.hwdomain.io

Der Generierungsprozess läuft nun. Wenn er abgeschlossen ist, sind deine SSL-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar.

Installation von Zammad

Öffne deinen Webbrowser und besuche die Installations-URL von Zammad(http://help.hwdomain.io). Klicke auf Ein neues System ein richten, um die Installation zu starten.

zammad Einstellung

Gib nun die Daten deines Admin-Benutzers, deine E-Mail und dein Passwort ein. Klicke dann zur Bestätigung auf Erstellen.

Admin-Setup

Gib den Namen deiner Organisation ein und klicke auf Weiter.

Org-Name

Für die E-Mail-Benachrichtigung klickst du vorerst auf Überspringen. Du kannst sie später konfigurieren.

Mail-Benachrichtigung überspringen

Klicke auf Überspringen für die Konfiguration des Verbindungskanals. Das kannst du auch später tun, wenn die Konfiguration abgeschlossen ist.

Kanal überspringen

Sobald der Vorgang abgeschlossen ist, siehst du das Zammad-Administrations-Dashboard wie folgt:

zammad dashboard

Fazit

Herzlichen Glückwunsch! Du hast nun erfolgreich das Zammad Customer Support System auf einem Debian 12 Server installiert. Du hast Zammad mit dem PostgreSQL-Datenbank-Backend, dem Nginx-Webserver, Elasticsearch als Hauptsuchmaschine und Redis für die Cache- und Sitzungsverwaltung installiert. Außerdem hast du gelernt, wie du HTTPS für Zammad über Certbot und Letsencrypt aktivierst.

Das könnte dich auch interessieren …