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
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
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
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.
Ü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.
Ü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:
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
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.
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.
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
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:
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.
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
Sobald das Repository aktualisiert ist, installiere Zammad mit dem folgenden Befehl.
sudo apt install zammad
Unten siehst du die Installation von Zammad:
Während der Installation werden neben der Datenbankmigration auch die PostgreSQL-Datenbank und der Benutzer erstellt.
Außerdem wird die Konfiguration des Nginx-Serverblocks erstellt.
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
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.
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.
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.
Gib nun die Daten deines Admin-Benutzers, deine E-Mail und dein Passwort ein. Klicke dann zur Bestätigung auf Erstellen.
Gib den Namen deiner Organisation ein und klicke auf Weiter.
Für die E-Mail-Benachrichtigung klickst du vorerst auf Überspringen. Du kannst sie später konfigurieren.
Klicke auf Überspringen für die Konfiguration des Verbindungskanals. Das kannst du auch später tun, wenn die Konfiguration abgeschlossen ist.
Sobald der Vorgang abgeschlossen ist, siehst du das Zammad-Administrations-Dashboard wie folgt:
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.