Wähle einen Artikel
Zammad Ticket System auf vServer/VPS installieren
Zammad Ticket System auf vServer/VPS installieren

0. Überblick

1. Zammad installieren

1.1 Einleitung

Zammad ist ein open-source Ticket System. Man hat die Möglichkeit es auf seinem eigenen Server zu hosten oder gegen eine Gebühr von Zammad hosten zu lassen. In dieser Anleitung zeige ich euch, wie ihr es sehr einfach selbst hosten könnt.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Zammad werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Zammad neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Zammad abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/zammad/ 

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Zammad beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/zammad/docker-compose.yml 

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Zammad Container.

version: '3' 

 

services: 

 

  zammad-backup: 

    command: ["zammad-backup"] 

    depends_on: 

      - zammad-railsserver 

      - zammad-postgresql 

    entrypoint: /usr/local/bin/backup.sh 

    environment: 

      - BACKUP_SLEEP=86400 

      - HOLD_DAYS=10 

      - POSTGRESQL_USER=${POSTGRES_USER} 

      - POSTGRESQL_PASSWORD=${POSTGRES_PASS} 

    image: ${IMAGE_REPO}:zammad-postgresql${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - zammad-backup:/var/tmp/zammad 

      - zammad-data:/opt/zammad 

 

  zammad-elasticsearch: 

    environment: 

      - discovery.type=single-node 

    image: ${IMAGE_REPO}:zammad-elasticsearch${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - elasticsearch-data:/usr/share/elasticsearch/data 

 

  zammad-init: 

    command: ["zammad-init"] 

    depends_on: 

      - zammad-postgresql 

    environment: 

      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS} 

      - POSTGRESQL_USER=${POSTGRES_USER} 

      - POSTGRESQL_PASS=${POSTGRES_PASS} 

      - REDIS_URL=${REDIS_URL} 

    image: ${IMAGE_REPO}:zammad${VERSION} 

    restart: on-failure 

    volumes: 

      - zammad-data:/opt/zammad 

 

  zammad-memcached: 

    command: memcached -m 256M 

    image: memcached:1.6.10-alpine 

    restart: ${RESTART} 

 

  zammad-nginx: 

    command: ["zammad-nginx"] 

    depends_on: 

      - zammad-railsserver 

    image: ${IMAGE_REPO}:zammad${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - zammad-data:/opt/zammad 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.zammad.entrypoints=http" 

      - "traefik.http.routers.zammad.rule=Host(`zammad.euredomain.de`)" 

      - "traefik.http.middlewares.zammad-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.zammad.middlewares=zammad-https-redirect" 

      - "traefik.http.routers.zammad-secure.entrypoints=https" 

      - "traefik.http.routers.zammad-secure.rule=Host(`zammad.euredomain.de`)" 

      - "traefik.http.routers.zammad-secure.tls=true" 

      - "traefik.http.routers.zammad-secure.tls.certresolver=http" 

      - "traefik.http.routers.zammad-secure.service=zammad" 

      - "traefik.http.services.zammad.loadbalancer.server.port=8080" 

      - "traefik.docker.network=proxy" 

      - "traefik.http.routers.zammad-secure.middlewares=secHeaders@file" 

    networks: 

      - proxy 

      - default 

 

  zammad-postgresql: 

    environment: 

      - POSTGRES_USER=${POSTGRES_USER} 

      - POSTGRES_PASSWORD=${POSTGRES_PASS} 

    image: ${IMAGE_REPO}:zammad-postgresql${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - postgresql-data:/var/lib/postgresql/data 

 

  zammad-railsserver: 

    command: ["zammad-railsserver"] 

    depends_on: 

      - zammad-memcached 

      - zammad-postgresql 

      - zammad-redis 

    environment: 

      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS} 

      - REDIS_URL=${REDIS_URL} 

    image: ${IMAGE_REPO}:zammad${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - zammad-data:/opt/zammad 

 

  zammad-redis: 

    image: redis:6.2.5-alpine 

    restart: ${RESTART} 

 

  zammad-scheduler: 

    command: ["zammad-scheduler"] 

    depends_on: 

      - zammad-memcached 

      - zammad-railsserver 

      - zammad-redis 

    environment: 

      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS} 

      - REDIS_URL=${REDIS_URL} 

    image: ${IMAGE_REPO}:zammad${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - zammad-data:/opt/zammad 

 

  zammad-websocket: 

    command: ["zammad-websocket"] 

    depends_on: 

      - zammad-memcached 

      - zammad-railsserver 

      - zammad-redis 

    environment: 

      - MEMCACHE_SERVERS=${MEMCACHE_SERVERS} 

      - REDIS_URL=${REDIS_URL} 

    image: ${IMAGE_REPO}:zammad${VERSION} 

    restart: ${RESTART} 

    volumes: 

      - zammad-data:/opt/zammad 

 

volumes: 

  elasticsearch-data: 

    driver: local 

  postgresql-data: 

    driver: local 

  zammad-backup: 

    driver: local 

  zammad-data: 

    driver: local 

 

 

networks: 

  proxy: 

    external: true 

Nun müssen wir noch einiges anpassen.

1.3.3 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später Zammad erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

    - "traefik.http.routers.zammad.rule=Host(`zammad.euredomain.de `)" 

    - "traefik.http.routers.zammad-secure.rule=Host(`zammad.euredomain.de`)" 

In meinem Fall also:

    - "traefik.http.routers.zammad.rule=Host(`zammad.testbereich.net`)" 

    - "traefik.http.routers.zammad-secure.rule=Host(`zammad.testbereich.net`)" 

Wenn ihr Zammad direkt auf eurer „Hauptdomain“ betreiben wollt, dann ändert ihr es folgendermaßen ab:

"traefik.http.routers.zammad.rule=Host(`www.euredomain.de`,`euredomain.de`)" 

"traefik.http.routers.zammad-secure.rule=Host(`www.euredomain.de`,`euredomain.de`)" 

1.3.4 env Datei anlegen

Nun müssten wir noch einige Einstellungen festlegen. Dazu brauchen wir eine weitere Datei. Gebt nun folgendes ein:

nano /opt/containers/zammad/.env 

Nun kopiert ihr den Code in die Datei:

IMAGE_REPO=zammad/zammad-docker-compose 

MEMCACHE_SERVERS=zammad-memcached:11211 

POSTGRES_PASS=zammad 

POSTGRES_USER=zammad 

REDIS_URL=redis://zammad-redis:6379 

RESTART= unless-stopped 

VERSION=-5.0.2-1 

In der Datei könnt ihr auch noch den Postgress Benutzer / Passwort anpassen. Momentan ist beides „zammad“. Ändert hier einfach die Werte ab.

2. Zammad starten

Gebt nun folgendes ein, um euren Zammad Container zu starten:

docker compose -f /opt/containers/zammad/docker-compose.yml up -d 

Beim ersten Start des Containers wird Zammad initialisiert. Dies bedeutet, dass die Datenbank eingerichtet, eure Einstellungen übernommen werden und vieles mehr. Daher dauert es einige Minuten, bis der Container dann über die Webseite erreichbar ist. Bei mir hat es ca. 4 Minuten gedauert. Auf eurer Webseite (z.B. zammad.euredomain.de) solltet ihr dann folgendes sehen:
 

Screenshot mit dunklem Hintergrund; mittig weißes Popup-Fenster, blauer Button Neues System aufsetzen und Linktext darunter.

2.1 Zammad einrichten

Klickt dazu auf „Neues System aufsetzen“.

Weiße Dialogbox auf dunklem Hintergrund; blauer Button 'Neues System aufsetzen' mit rotem Rahmen.

Nun gebt ihr die Daten des Administrators ein:

Modal mit Formular 'Administrator Account': Felder Vorname, Nachname, E‑Mail, Passwort, Passwort bestätigen; Zurück und Erstellen.

Anschließend gebt ihr noch den Namen eueres Unternehmens an und könnt ein Logo hochladen. Die „System URL“ sollte dieselbe sein, welche ihr hier im Schritt 1.3.3 vergeben habt.

Modal 'Organisation' mit Feldern Name der Organisation (Unternehmen) und System URL zammad.testbereich.net;Hochladen, Weiter.

Nun könnt ihr noch euren E-Mail-Server einbinden. Klickt dazu auf den „Pfeil“ und wählt „SMTP“ aus.

Modal mit Titel E-Mail Benachrichtigung, Dropdown Local MTA (Sendmail/Postfix/Exim/... ), blauer Weiter-Button und Zurück-Link.


Benutzeroberfläche mit Dropdown zur E-Mail-Ausgabe; Optionen: Local MTA (Sendmail/Postfix/Exim/…) und SMTP

Nun gebt ihr die Daten eures E-Mail Servers an. Diese könnt ihr beispielsweise bei gmail.com, web.de nachlesen.

Modalfenster 'E-Mail Benachrichtigung' mit Feldern: Verschickt E-Mails über, Host, Benutzer, Passwort, Port; Zurück, Weiter.

Nun seid ihr fertig mit der Einrichtung. Nun seht ihr zum ersten Mal das Zammad Dashboard.

Screenshot einer Dashboard-Oberfläche: linke dunkle Seitenleiste, Kachelraster in der Mitte, rechter Aktivitäts-Stream.

2.2 neue Benutzer anlegen

Nun könnt ihr noch weitere Benutzer anlegen. Klickt dazu auf das „Zahnrad“ im unteren linken Bereich.

Dunkle UI-Leiste mit orangefarbenem DD-Kreis, Balkensymbol, rotem Rahmen um Zahnradsymbol und grünem Plus-Symbol.

Nun erscheinen die Optionen und der Bereich „Benutzer“ ist direkt ausgewählt.

Web-Admin-Oberfläche: linke Seitenleiste mit Menüpunkten; Hauptbereich 'Benutzer Verwaltung' mit Suchfeld und Tabellenliste.

Als erstes entfernen wir den bereits angelegten Benutzer „Nicole“. Klickt dazu auf die „3 Punkte“ hinter „Nicole“.

Liste von Kontakten mit teils sichtbarer E-Mail; Vorname Nicole, Nachname Braun; rechts roter Markierungsrahmen.

Wählt nun „löschen“ aus.

Screenshot einer Benutzerverwaltung: Rollen oben (Admin, Agent, Kunde); zwei Nutzerzeilen mit Login-Emails, Vor- und Nachnamen; Lösch-Menü sichtbar.

Nun müsst ihr noch die Löschung bestätigen. Gebt dazu in das untere Feld „LÖSCHEN“ ein.

Löschdialog: Neu: Löschauftrag. Benutzer Nicole Braun, Organisation Ja. Warnhinweis, roter Löschen-Button.

Anschließend legen wir einen neuen Benutzer an. Klickt dazu auf „Neuer Benutzer“ im oberen Bereich.

Screenshot der Benutzer-Verwaltung: Suchfeld, grüner Button 'Neuer Benutzer', Rollen: Admin, Agent, Kunde.

Gebt nun alle Daten des Nutzers ein. Ihr könnt hier noch wählen, um es sich um einen „Admin“, „Agent“ oder „Kunden“ handelt.

Screenshot eines Dialogs Neu: Benutzer mit Feldern Vorname, Nachname, E-Mail, Telefon, Mobil, Adresse, Passwort.

2.3 Weiter Kanäle hinzufügen

Ihr könnt unter Zammad leicht weitere Kommunikationskanäle wie Google, Twitter oder Facebook hinzufügen. Klickt dazu auf das „Zahnrad“ im unteren Bereich.

Dunkle UI mit orangenem Kreis-Button 'DD', grauem Balken-Symbol und grauem Zahnradsymbol in roter Umrandung.

Hier seht ihr im linken Bereich die Überschrift „Kanäle“. Dort könnt ihr die einzelnen Dienste in Zammad einbinden.

Verwalten-Menü mit rotem Rahmen um Kanäle: Web,Formulare,E-Mail,SMS,Chat,Google,Microsoft 365,Twitter,Facebook,Telegram.
Weitere passende Themen