-
Was ist ein vServer?
-
vServer und Sicherheit
-
vServer - Anwendungsfälle
-
vServer bei dogado
-
vServer und Plesk
-
vServer Betriebssyteme
-
vServer Glossar
0. Überblick
- Verwendetes System: Debian 11 64 bit
- Genutzter User: Ich nehme alles als „root“ vor
- Zeitdauer: ca. 10 Minuten
- Schwierigkeit: Einfach. Nur Code kopieren 😉
- Besonderheiten:
- Grundlage ist folgende Anleitung: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren. Diese Anleitung muss zuerst ausgeführt werden.
- Die Installation von Docker / Docker Compose wird hier vorausgesetzt.
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:
2.1 Zammad einrichten
Klickt dazu auf „Neues System aufsetzen“.
Nun gebt ihr die Daten des Administrators ein:
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.
Nun könnt ihr noch euren E-Mail-Server einbinden. Klickt dazu auf den „Pfeil“ und wählt „SMTP“ aus.
Nun gebt ihr die Daten eures E-Mail Servers an. Diese könnt ihr beispielsweise bei gmail.com, web.de nachlesen.
Nun seid ihr fertig mit der Einrichtung. Nun seht ihr zum ersten Mal das Zammad Dashboard.
2.2 neue Benutzer anlegen
Nun könnt ihr noch weitere Benutzer anlegen. Klickt dazu auf das „Zahnrad“ im unteren linken Bereich.
Nun erscheinen die Optionen und der Bereich „Benutzer“ ist direkt ausgewählt.
Als erstes entfernen wir den bereits angelegten Benutzer „Nicole“. Klickt dazu auf die „3 Punkte“ hinter „Nicole“.
Wählt nun „löschen“ aus.
Nun müsst ihr noch die Löschung bestätigen. Gebt dazu in das untere Feld „LÖSCHEN“ ein.
Anschließend legen wir einen neuen Benutzer an. Klickt dazu auf „Neuer Benutzer“ im oberen Bereich.
Gebt nun alle Daten des Nutzers ein. Ihr könnt hier noch wählen, um es sich um einen „Admin“, „Agent“ oder „Kunden“ handelt.
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.
Hier seht ihr im linken Bereich die Überschrift „Kanäle“. Dort könnt ihr die einzelnen Dienste in Zammad einbinden.