Installationsanleitung
Vollständige Anleitung zur Installation von Open Ticket AI mit Docker, OTOBO/Znuny-Einrichtung und Konfiguration.
Installationsanleitung
Diese Anleitung hilft Ihnen, Open Ticket AI auf Ihrem Server zu installieren. Wir empfehlen die Verwendung von Docker Compose für die einfachste und zuverlässigste Installation.
Installationsübersicht
Die meisten Benutzer sollten mit dem Docker Quick Start beginnen. Wenn Docker noch nicht installiert ist, verwenden Sie die * *pro-OS-Tabs** unten.
1) Ticket-System-Einrichtung (OTOBO / Znuny)
Führen Sie dies vor dem Start der Automatisierung durch:
- Erstellen Sie den Benutzer
open_ticket_aiund speichern Sie das Passwort in.envalsOTAI_ZNUNY_PASSWORD - Importieren Sie die bereitgestellte Webservice-YAML:
deployment/ticket-systems/ticket_operations.yml - Stellen Sie sicher, dass die erforderlichen Queues & Prioritäten existieren
- Benötigte Berechtigungen:
ro,move_into,priority,note
Details finden Sie unter OTOBO/Znuny Plugin Setup.
1) Hardware & OS prüfen
Stellen Sie sicher, dass Ihr System die Mindestanforderungen erfüllt:
- RAM: Mindestens 512 MB (8 GB empfohlen für ML-Modelle)
- Freier Festplattenspeicher: Mindestens 20 GB (50 GB empfohlen für ML-Modelle)
- OS: Linux (bevorzugt), Windows 10/11 oder macOS
2) Docker & Docker Compose installieren
Befehl, um Ihr OS herauszufinden:
uname -a
Verwenden Sie die Befehle für Ihr OS unten, um Docker und Docker Compose zu installieren.
:::code-group
# Docker Engine + Compose Plugin installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
# Aktivieren & testen
sudo usermod -aG docker "$USER"
newgrp docker
docker --version
docker compose version
# Voraussetzungen
sudo dnf -y install dnf-plugins-core
# Docker CE Repo
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Engine + Compose Plugin installieren
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Aktivieren & testen
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER"
newgrp docker
docker --version
docker compose version
# Engine + Compose Plugin installieren
sudo dnf -y install dnf-plugins-core
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Aktivieren & testen
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER"
newgrp docker
docker --version
docker compose version
# Docker installieren
sudo zypper refresh
sudo zypper install -y docker docker-compose
# Aktivieren & testen
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER"
newgrp docker
docker --version
docker compose version
# Docker + Compose installieren
sudo pacman -Syu --noconfirm docker docker-compose
# Aktivieren & testen
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER"
newgrp docker
docker --version
docker compose version
# Option A: Docker Desktop (GUI)
# Download: https://www.docker.com/products/docker-desktop/
# Dann verifizieren:
docker --version
docker compose version
# Option B: Homebrew (installiert Desktop-App)
brew install --cask docker
isOpen -a Docker
docker --version
docker compose version
# Option A: Docker Desktop (empfohlen)
winget install -e --id Docker.DockerDesktop
# Option B: Sicherstellen, dass WSL2 aktiviert ist (falls von Docker Desktop gefragt)
wsl --install
wsl --set-default-version 2
# In einer neuen PowerShell verifizieren
docker --version
docker compose version
:::
3) config.yml & deployment/compose.yml einrichten
Verwenden Sie diese, wenn Sie bereit sind, Dateien unter /opt/open_ticket_ai (Linux) abzulegen.
sudo mkdir -p /opt/open_ticket_ai
sudo chown "$USER":"$USER" /opt/open_ticket_ai -R
cd /opt/open_ticket_ai
cat > .env <<'EOF'
OTAI_HF_TOKEN=your_hf_token_here
OTAI_ZNUNY_PASSWORD=your_secure_password_here
EOF
# Optional: Secrets aus Git fernhalten
echo ".env" >> .gitignore
Erstelle /opt/isOpen-ticket-ai/config.yml
:::caution Dies ist ein Beispiel! Passen Sie es entsprechend Ihrer Ticket-System-Einrichtung, Queues, Prioritäten und :::
Beispiel config.yml
open_ticket_ai:
api_version: '>=1.0.0'
infrastructure:
logging:
level: 'INFO'
log_to_file: false
log_file_path: null
services:
jinja_default:
use: 'base:JinjaRenderer'
otobo_znuny:
use: 'otobo-znuny:OTOBOZnunyTicketSystemService'
params:
base_url: 'http://host.docker.internal/znuny/nph-genericinterface.pl'
password: "{{ get_env('OTAI_ZNUNY_PASSWORD') }}"
hf_local:
use: 'hf-local:HFClassificationService'
params:
api_token: "{{ get_env('OTAI_HF_TOKEN') }}"
orchestrator:
use: 'base:SimpleSequentialOrchestrator'
params:
orchestrator_sleep: 'PT5S'
steps:
- id: runner
use: 'base:SimpleSequentialRunner'
params:
on:
id: 'interval'
use: 'base:IntervalTrigger'
params:
interval: 'PT2S'
run:
id: 'pipeline'
use: 'base:CompositePipe'
params:
steps:
- id: fetch
use: 'base:FetchTicketsPipe'
injects: { ticket_system: 'otobo_znuny' }
params:
ticket_search_criteria:
queue: { name: 'Anfrage an die IT' }
limit: 1
- id: ticket
use: 'base:ExpressionPipe'
params:
expression: "{{ get_pipe_result('fetch','fetched_tickets')[0] if (get_pipe_result('fetch','fetched_tickets')|length)>0 else fail() }}"
- id: cls_queue
use: 'base:ClassificationPipe'
injects: { classification_service: 'hf_local' }
params:
text: "{{ get_pipe_result('ticket')['subject'] }} {{ get_pipe_result('ticket')['body'] }}"
model_name: 'softoft/EHS_Queue_Prediction'
- id: queue_final
use: 'base:ExpressionPipe'
params:
expression: "{{ get_pipe_result('cls_queue','label') if get_pipe_result('cls_queue','confidence')>=0.8 else 'Unklassifiziert' }}"
- id: update_queue
use: 'base:UpdateTicketPipe'
injects: { ticket_system: 'otobo_znuny' }
params:
ticket_id: "{{ get_pipe_result('ticket')['id'] }}"
updated_ticket:
queue: { name: "{{ get_pipe_result('queue_final') }}" }Zum Testen log level auf DEBUG und das Intervall auf 5 Sekunden setzen. In der Produktion Intervall auf 10ms und log level auf INFO setzen.
- Repo deployment Verzeichnis: https://github.com/Softoft-Orga/open-ticket-ai/tree/dev/deployment
- Znuny Demo
config.yml: https://github.com/Softoft-Orga/open-ticket-ai/blob/dev/deployment/znuny_demo/config.yml - Znuny Demo
compose.yml: https://github.com/Softoft-Orga/open-ticket-ai/blob/dev/deployment/znuny_demo/compose.yml
Erstelle opt/isOpen-ticket-ai/compose.yml
Versionen auf Github und Dockerhub prüfen
services:
isOpen-ticket-ai:
image: openticketai/engine:1.4.19
restart: 'always'
volumes:
- ./config.yml:/app/config.yml:ro
extra_hosts:
- 'host.docker.internal:host-gateway'
environment:
- OTAI_HF_TOKEN
- OTAI_ZNUNY_PASSWORD
- HUGGING_FACE_HUB_TOKEN=${OTAI_HF_TOKEN}
- HF_TOKEN=${OTAI_HF_TOKEN}
logging:
driver: json-file
options:
max-size: '50m'
max-file: '3'
Konfiguration prüfen
- Environment Vars sind gesetzt und stimmen mit compose.yml, config.yml, .env oder .bashrc überein
config.ymlverweist auf korrektes Ticket-System, Queues, Prioritäten, Typen, Services, SLAs, …compose.ymlverwendet korrekte Image-Version- Korrekter API-Pfad “/znuny/nph-genericinterface.pl” in
config.ymloder /otobo/nph-genericinterface.pl oder zammad … - Ticket-System-Benutzer
open_ticket_aiexistiert mit korrektem Passwort - Erforderliche Queues & Prioritäten, Typen, Services, Benutzer, … existieren im Ticket-System
- Berechtigungen für Benutzer
open_ticket_ai
Start / Neustart / Logs
docker compose up -d
docker compose restart
docker compose logs -f isOpen-ticket-ai
Zusatzinfo für OTOBO / Znuny Setup
Es scheint Unterschiede in den Content Types zwischen OTOBO Znuny Versionen zu geben! Möglicherweise müssen Sie Ihren ContentType ändern, wenn ContentType invalid Fehler auftreten. Ändern Sie daher die params von AddNotePipe in Ihrer config.yml wie folgt:
- id: add_note
use: 'base:AddNotePipe'
injects: { ticket_system: 'otobo_znuny' }
params:
ticket_id: "{{ get_pipe_result('ticket')['id'] }}"
note:
subject: 'This is a note added by Open Ticket AI.'
body: 'Automated note content.'
content_type: 'text/plain; charset=utf8'
Verifizierungs-Checkliste
.enventhältOTAI_HF_TOKENundOTAI_ZNUNY_PASSWORDdeployment/compose.ymlverwendetimage: openticketai/engine:1.4.19- OTOBO/Znuny-Webservice importiert; Benutzer
open_ticket_aiexistiert - Queues & Prioritäten im Ticket-System vorhanden
- Ausführen:
docker compose -f deployment/compose.yml up -d - Logs prüfen:
docker compose -f deployment/compose.yml logs -f isOpen-ticket-ai - Optional:
isOpen-ticket-ai verify-connectionim Container ausführen (falls verfügbar)
Hilfe erhalten
Wenn Sie auf Probleme stoßen:
- Prüfen Sie die Logs:
docker compose logs -f - Überprüfen Sie die Syntax Ihrer Konfigurationsdatei
- Lesen Sie die Configuration Reference
- Besuchen Sie unsere GitHub Issues
- Nehmen Sie an unseren Community-Diskussionen teil
Nächste Schritte
Nach der Installation:
- Konfigurieren Sie Ihre erste Pipeline - Siehe First Pipeline Guide
- Verbinden Sie sich mit Ihrem Ticket-System - Siehe OTOBO/Znuny Integration
- Richten Sie KI-Klassifizierung ein - Siehe Plugin System
- Überprüfen Sie die Sicherheitseinstellungen - Siehe unser GitHub Security Guide
Verwandte Dokumentation
- Quick Start Guide - Schnellstart
- First Pipeline - Erstellen Sie Ihre erste Automatisierung
- Configuration Reference - Vollständige Konfigurationsdokumentation
- Plugin System - Plugins verstehen
