====== Zammad ======
| Verantwortung | Malte |
| Container | zammad |
| W. Ports | keine |
| OS | Debian 12.8 |
| Server | [[infrastruktur:server:magrathea]] |
| Zustand | Produktiv |
{{tag>infrasystem container magrathea productive malte ssoenabled}}
Hier findet sich die technische Dokumentation des Chaotikum Ticketsystems. [[hackspace:infrastruktur:zammad|Die Nutzungshinweise finden sich hier.]].
===== TODO =====
Der Updater von Postgres behauptet, die aktuelle Version 13 ist obsolet und muss manuell aktualisiert werden:
{{:infrastruktur:container:screenshot_2023-06-30_at_00.24.20.png?400|}}
DONE Die [[https://zammad.com/de/releases/6-0|Release Notes von Zammad 6]] behaupten, wir brauchen andere Websocket-Weiterleitungs-Dinge im Reverse-Proxy. Brauchen wir das wirklich?
* Ja, brauchen wir und haben wir inzwischen auch.
===== Services =====
^ Serviceübersicht ^ Version ^
| Elasticsearch | 7.17.25 |
| Zammad | 6.4.0-1731532686.9edee425.bullseye |
=== Setup von gruppen ===
Wir nutzen grundsätzlich Mailinglisten auf denen die für eine zammad Gruppe genutzte mail Adresse ein subscriber ist. So können Die Mails z.B. sowohl vom Dienst als auch von anderen Personen auf der Liste gelesen werden. Das hat verschiedene Vorteile, z.b. kann das später entkoppelt werden o.ä. ohne mail Adressen zu ändern. Zudem kann auf [[hackspace:infrastruktur:mailinglisten|der Mailinglisten Seite]] für gute Datenschutz übersicht dokumntiert werden, welche Listen dazu führen, dass man Mails an zammad schreibt.
Wer also eine Zammad Gruppe aufsetzt, setzt einen [[https://wiki.chaotikum.org/intern:ldap:uidnumber|LDAP-Account als Service Account (das sind die kursiven, an denen kann man sich orientieren)]] auf auf, der die Mail-Adresse erzeugt. Dann über mlmmj eine Mailingliste auf welche dieser account und ggf. weitere kommen.
Das ist leider aktuell glaube ich nicht zu 100% umgesetzt, sollte aber zukünftig immer so gemacht werden.
=== Spam===
Es gibt ein Makro zum schließen von Spam, bitte das nutzen.
=== Update ===
Beim Update hängt sich manchmal das Elasticsearch auf, weil nach dem Update das Plugin ingest-attachment nicht mehr dazu passt. Dann muss man das neu installieren:
/usr/share/elasticsearch/bin/elasticsearch-plugin remove ingest-attachment
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
=== Installation Protocol ===
# Anleitung Zammad https://docs.zammad.org/en/latest/install/package.html
# Additional software dependencies
apt install curl apt-transport-https gnupg
# Anleitung Elasticsearch https://docs.zammad.org/en/latest/install/elasticsearch.html
apt install apt-transport-https wget curl gnupg
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
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null
apt update
apt install elasticsearch
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
# RAM für Elasticsearch begrenzen
# WICHTIG! Sonst verwendet das alles an RAM, was es finden kann
echo "-Xms500m" > /etc/elasticsearch/jvm.options.d/heapsize.options
echo "-Xmx500m" >> /etc/elasticsearch/jvm.options.d/heapsize.options
# Service aktivieren und starten
systemctl daemon-reload
systemctl enable elasticsearch.service
# Settings in /etc/elasticsearch/elasticsearch.yml ergänzen:
# # recommended settings from https://docs.zammad.org/en/latest/install/elasticsearch.html
# # Tickets above this size (articles + attachments + metadata)
# # may fail to be properly indexed (Default: 100mb).
# #
# # When Zammad sends tickets to Elasticsearch for indexing,
# # it bundles together all the data on each individual ticket
# # and issues a single HTTP request for it.
# # Payloads exceeding this threshold will be truncated.
# #
# # Performance may suffer if it is set too high.
# http.max_content_length: 400mb
#
# # Allows the engine to generate larger (more complex) search queries.
# # Elasticsearch will raise an error or deprecation notice if this value is too low,
# # but setting it too high can overload system resources (Default: 1024).
# #
# # Available in version 6.6+ only.
# indices.query.bool.max_clause_count: 2000
# Install Zammad
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | gpg --dearmor | tee /etc/apt/trusted.gpg.d/pkgr-zammad.gpg> /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 11 main"| tee /etc/apt/sources.list.d/zammad.list > /dev/null
apt update
apt install zammad
# Set the Elasticsearch server address
$ zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
# Build the search index
$ zammad run rake zammad:searchindex:rebuild
# make nginx listen for remote connections
# edit /etc/nginx/sites-available/zammad.conf
# remove server_name localhost
# remove listen [::]:80
# remove listen :80
# add listen 192.168.1.59:80
===== SSO ====
Single Sign On (SSO) mit Keycloak kann in der Anwendung vom Admin Account konfiguriert werden. Zammad nutzt SAML.
===== Wartung =====
In das Textfeld einfach das Datum der Wartung eintragen, am besten in der Form yyyy-mm-dd.
{{NEWPAGE>infrastruktur:wartung:zammad#pagetemplates:wartungstemplate:zammad|Zammad
}}
{{topic>:infrastruktur:wartung?wartungsfenster +zammad &nodate&nouser&desc&table}}
~~NOCACHE~~