Direkt zum Hauptinhalt

Betrieb

Windows-Dienst-Installation

Nach dotnet publish MesoAibe.Service -c Release -r win-x64 --self-contained (siehe .github/workflows/release.yml, das dieses Artefakt an jedem Release als Zip anhaengt) den Dienst mit Administratorrechten registrieren:

New-Service -Name "MESO-AIBE" `
            -BinaryPathName "C:\MesoAibe\MesoAibe.Service.exe" `
            -DisplayName "MESO-AIBE" `
            -Description "KI-gestuetzte Auftragserfassung fuer Mesonic WinLine" `
            -StartupType Automatic

Start-Service -Name "MESO-AIBE"
Get-Service -Name "MESO-AIBE"

Alternativ mit sc.exe:

sc.exe create "MESO-AIBE" binPath= "C:\MesoAibe\MesoAibe.Service.exe" DisplayName= "MESO-AIBE" start= auto
sc.exe start "MESO-AIBE"

Docker-Betrieb (Alternative zum Windows-Dienst)

Fuer Linux-Container-Umgebungen steht derselbe Dienst zusaetzlich als Container-Image bereit (Build: .github/workflows/docker-publish.yml, Dockerfile). Kundeninstallationen beziehen das Image ueber die Azure Container Registry von CSS:

docker pull csscontainers.azurecr.io/mesoaibe:latest

Der Container laeuft dauerhaft im Vordergrund statt als Windows-Dienst; alle Konfigurationsfelder oben gelten unveraendert. Secrets (Lizenz, KI-Zugaenge, Datenbank-/Mesonic-Passwort) werden im Container ueblicherweise per Umgebungsvariable statt in appsettings.json gesetzt (__ statt : als Trennzeichen, z.B. Aibe__Ki__AnthropicApiKey).

docker-compose, Portainer-Stack und das Einbinden einer WinLine-Freigabe (SMB/CIFS) als Ordner-Eingang: siehe Installationsanleitung, Abschnitt 8.

Lizenzpruefung

Der Dienst prueft beim Start gegen den ITSOLUTE-Lizenzserver, ob eine gueltige Lizenz fuer den Artikel MESO-AIBE vorliegt (aktiv, nicht abgelaufen, Menge > 0) — ohne gueltige Lizenz beendet sich der Prozess mit einem Fatal-Log, ohne die Intervall-Schleife zu starten.

Standardquelle der Zugangsdaten ist die Konfiguration (Aibe:Lizenz):

"Aibe": {
  "Lizenz": {
    "Kundennummer": "<LIZENZ_KUNDENNUMMER>",
    "Lizenznummer": "<LIZENZNUMMER>"
  }
}

Die Umgebungsvariablen gewinnen bei Vorhandensein als Override (je Feld einzeln) — z.B. fuer Container-Deployments oder um die Nummern aus der Konfigurationsdatei herauszuhalten:

Umgebungsvariable Bedeutung
LICENSE_CUSTOMER_NR Kundennummer (Override von Aibe:Lizenz:Kundennummer)
LICENSE_LICENSE_NR Lizenznummer (Override von Aibe:Lizenz:Lizenznummer)