Installation
Hinweis: Für eine schnelle Inbetriebnahme folgen Sie dem Schnellstart.
Automatische Datenbankerstellung: Die Anwendungsdatenbank (MesoWorkerDb) wird beim ersten Start automatisch erstellt. Eine manuelle Erstellung ist nicht erforderlich. Der SQL-Benutzer in den ConnectionStrings muss die Berechtigung
CREATE DATABASEbesitzen. Nach der Erstellung reichen normale Lese-/Schreibrechte. Der automatische Prozess prüft beim Start, ob die Datenbank existiert, legt sie bei Bedarf an, erstellt alle benötigten Tabellen und richtet Standard-Benutzer und -Rollen ein.
Der MesoWorkerService kann auf zwei Arten betrieben werden:
Option 1: Windows-Dienst
Der Service wird als Windows-Dienst auf einem Server installiert und läuft permanent im Hintergrund.
Hinweis: Die Setup-Dateien für die Windows-Installation werden Ihnen von Ihrem Mesonic-Händler bereitgestellt.
Voraussetzungen:
- Windows Server 2016 oder neuer
- .NET 10 Runtime installiert
- Netzwerkzugriff zur WinLine-Datenbank
- SQL-Benutzer mit
CREATE DATABASE-Rechten (die Anwendungsdatenbank wird beim ersten Start automatisch erstellt)
Installationsschritte:
-
Entpacken der Anwendung
- Entpacken Sie das von Ihrem Händler bereitgestellte MesoWorkerService-Archiv in ein Verzeichnis (z.B.
C:\MesoWorkerService)
- Entpacken Sie das von Ihrem Händler bereitgestellte MesoWorkerService-Archiv in ein Verzeichnis (z.B.
-
Konfigurationsdatei anpassen
WICHTIG: Konfigurieren Sie die
appsettings.jsonVOR der Dienst-Installation!Öffnen Sie die Datei
appsettings.jsonim Installationsverzeichnis und passen Sie die Einstellungen an:- ConnectionStrings: Datenbankverbindungen (SQL-Benutzer benötigt
CREATE DATABASE-Rechte) - License: Ihre Lizenzinformationen
Siehe Windows-Dienst Konfiguration für Details.
- ConnectionStrings: Datenbankverbindungen (SQL-Benutzer benötigt
-
Installation als Windows-Dienst
Der Service kann als Windows-Dienst installiert werden. Öffnen Sie eine PowerShell-Konsole mit Administratorrechten und navigieren Sie zum Installationsverzeichnis.
Option A: Installation mit PowerShell (empfohlen)
# Service erstellen und konfigurieren New-Service -Name "MESO-WorkerService" ` -BinaryPathName "C:\MesoWorkerService\MesoWorkerService.exe" ` -DisplayName "MESO Worker Service" ` -Description "Automatisierungsdienst für Mesonic WinLine - E-Mail-Versand, Workflow-Erzeugung, Terminsynchronisation, OP-Versand und Überwachung" ` -StartupType Automatic # Service starten Start-Service -Name "MESO-WorkerService" # Service-Status prüfen Get-Service -Name "MESO-WorkerService"Option B: Installation mit sc.exe
REM Service erstellen sc.exe create "MESO-WorkerService" binPath= "C:\MesoWorkerService\MesoWorkerService.exe" DisplayName= "MESO Worker Service" start= auto REM Service-Beschreibung setzen sc.exe description "MESO-WorkerService" "Automatisierungsdienst für Mesonic WinLine - E-Mail-Versand, Workflow-Erzeugung, Terminsynchronisation, OP-Versand und Überwachung" REM Service starten sc.exe start "MESO-WorkerService" REM Service-Status prüfen sc.exe query "MESO-WorkerService"Service deinstallieren (falls erforderlich):
# Service stoppen und entfernen (PowerShell) Stop-Service -Name "MESO-WorkerService" Remove-Service -Name "MESO-WorkerService"REM Service stoppen und entfernen (sc.exe) sc.exe stop "MESO-WorkerService" sc.exe delete "MESO-WorkerService"Wichtig:
- Passen Sie den Pfad
C:\MesoWorkerService\MesoWorkerService.exean Ihr Installationsverzeichnis an - Bei
sc.exeist das Leerzeichen nachbinPath=,DisplayName=undstart=erforderlich - Für weitere Unterstützung kontaktieren Sie den Support: [email protected]
- Passen Sie den Pfad
-
Dienst starten
Starten Sie den Windows-Dienst über die Dienste-Verwaltung oder mit PowerShell:
Start-Service -Name "MESO-WorkerService"
Vorteile der Windows-Dienst-Installation:
- Direkter Zugriff auf lokale WinLine-Installation
- Optimale Performance bei lokaler Datenbank
- Vollständige Kontrolle über das System
- Einfache Integration in bestehende Windows-Infrastruktur
Nachteile der Windows-Dienst-Installation:
- Erfordert Windows Server-Umgebung
- Manuelle Installation und Wartung
- .NET 10 Runtime muss installiert werden
Option 2: Container-Deployment
Der Service wird als Container betrieben und kann auf verschiedenen Plattformen ausgeführt werden.
Hinweis: Für die Container-basierte Installation benötigen Sie einen GitHub-Token mit Zugriffsrechten auf die Container-Registry.
Verfügbare Container Images:
- Service:
ghcr.io/css-edv-support/mesoworkerservice-service:latest - Blazor UI:
ghcr.io/css-edv-support/mesoworkerservice-blazor:latest
Voraussetzungen:
- Container-Runtime (Docker oder Podman)
- Netzwerkzugriff zum SQL Server und zur WinLine-Datenbank
- SQL-Benutzer mit
CREATE DATABASE-Rechten (die Anwendungsdatenbank wird beim ersten Start automatisch erstellt) - GitHub-Token mit Zugriffsrechten auf die Container-Registry
Deployment-Optionen:
- Portainer Stacks (empfohlen, siehe Schritt-für-Schritt-Anleitung: Installation mit Portainer)
- Docker Compose
- Kubernetes / Docker Swarm
Installationsschritte (Docker Compose):
-
Stack-Datei erstellen
Erstellen Sie eine
docker-compose.ymlDatei (siehe Schritt-für-Schritt-Anleitung: Installation mit Portainer für ein vollständiges Beispiel). -
Umgebungsvariablen konfigurieren
Passen Sie die Datenbankverbindungen, Lizenz und WinLine-Einstellungen an Ihre Umgebung an.
-
Container starten
docker-compose up -d
Für eine ausführliche Anleitung mit Portainer siehe Schritt-für-Schritt-Anleitung: Installation mit Portainer.
Vorteile des Container-Deployments:
- Plattformunabhängig (Linux, Windows, macOS)
- Einfache Skalierung und Deployment
- Isolierte Umgebung mit definierten Abhängigkeiten
- Keine lokale .NET-Installation erforderlich
- Einfache Updates über Image-Tags
- Geeignet für moderne DevOps-Umgebungen
Nachteile des Container-Deployments:
- Erfordert Container-Runtime (Docker, Podman)
- Zusätzliche Netzwerk-Konfiguration für Datenbankzugriff
- Container-Orchestrierung kann komplex sein
Ressourcenempfehlungen:
Für detaillierte Empfehlungen zur Dimensionierung der Container-Ressourcen (CPU, RAM, Disk) auf Linux-Systemen siehe:
- [Ressourcenempfehlung für Docker Container](siehe Kapitel Ressourcenempfehlung) - Umfassende Anleitung zur Ressourcenzuteilung für verschiedene Einsatzszenarien
Schritt-für-Schritt-Anleitung: Installation mit Portainer
Diese Anleitung beschreibt die Einrichtung des MesoWorkerService über die Portainer-Weboberfläche. Portainer ist eine grafische Verwaltungsoberfläche für Docker-Container.
Was Sie vorab benötigen
Bevor Sie beginnen, halten Sie folgende Informationen bereit:
| Information | Beispiel | Woher? |
|---|---|---|
| SQL Server Adresse | 192.168.1.100 oder sql-server.firma.local |
IT-Abteilung |
| SQL-Benutzername | sa oder mesoworker |
IT-Abteilung |
| SQL-Passwort | IT-Abteilung | |
| WinLine Systemdatenbank | CWLSYSTEM |
WinLine-Administration |
| Kundennummer (Lizenz) | 12345 |
Ihr Mesonic-Partner |
| Lizenznummer | XXXX-XXXX-XXXX |
Ihr Mesonic-Partner |
| WinLine Server URL | http://winline-server:8080 |
IT-Abteilung |
| WinLine Pfad (Netzwerkfreigabe) | \\winline-server\WinLine |
IT-Abteilung |
| GitHub-Token (Registry-Zugang) | ghp_... |
CSS Support |
Hinweis zum SQL-Benutzer: Der SQL-Benutzer muss beim ersten Start die Berechtigung haben, eine neue Datenbank anzulegen (
CREATE DATABASE-Recht). Die DatenbankMesoWorkerDbwird dann automatisch erstellt. Falls Ihr SQL-Benutzer dieses Recht nicht hat, bitten Sie Ihre IT-Abteilung, eine leere Datenbank mit dem NamenMesoWorkerDbvorab anzulegen.
Schritt 1: In Portainer einloggen
- Öffnen Sie Ihren Webbrowser
- Navigieren Sie zur Portainer-Adresse (z.B.
https://portainer.firma.local:9443) - Melden Sie sich mit Ihrem Portainer-Benutzernamen und Passwort an
Schritt 2: Container-Registry einrichten
Damit Portainer die MesoWorkerService-Images herunterladen kann, muss die GitHub Container Registry einmalig hinterlegt werden.
- Klicken Sie in der linken Seitenleiste auf Registries
- Klicken Sie auf Add registry
- Wählen Sie Custom registry
- Füllen Sie die Felder aus:
- Name:
GitHub CSS - Registry URL:
ghcr.io - Authentication: aktivieren
- Username: Ihr GitHub-Benutzername
- Password: Ihr GitHub-Token (beginnt mit
ghp_)
- Name:
- Klicken Sie auf Add registry
Diesen Schritt müssen Sie nur einmalig durchführen. Den GitHub-Token erhalten Sie vom CSS Support ([email protected]).
Schritt 3: Neuen Stack anlegen
- Klicken Sie in der linken Seitenleiste auf Stacks
- Klicken Sie auf Add stack
- Vergeben Sie einen Namen, z.B.
mesoworkerservice - Wählen Sie Web editor als Methode
Schritt 4: Stack-Definition einfügen
Kopieren Sie die folgende Stack-Definition in den Web-Editor. Ersetzen Sie anschließend die Platzhalter (alle Werte in GROSSBUCHSTABEN) mit Ihren tatsächlichen Daten:
version: '3.8'
services:
mesoworkerservice-ui:
image: ghcr.io/css-edv-support/mesoworkerservice-blazor:latest
container_name: mesoworkerservice-ui
restart: unless-stopped
ports:
- "8012:5000"
environment:
- ASPNETCORE_ENVIRONMENT=Production
- ASPNETCORE_URLS=http://+:5000
- TZ=Europe/Berlin
- ConnectionStrings__ConnectionString=Data Source=IHR-SQL-SERVER;Initial Catalog=MesoWorkerDb;User ID=IHR-SQL-USER;Password=IHR-SQL-PASSWORT;TrustServerCertificate=true
- ConnectionStrings__WinLineSystemDBConnectionString=Data Source=IHR-SQL-SERVER;Initial Catalog=CWLSYSTEM;User ID=IHR-SQL-USER;Password=IHR-SQL-PASSWORT;TrustServerCertificate=true
mesoworkerservice:
image: ghcr.io/css-edv-support/mesoworkerservice-service:latest
container_name: mesoworkerservice
restart: unless-stopped
ports:
- "8013:5000"
volumes:
- type: bind
source: //IHR-WINLINE-SERVER/WinLine
target: /app/winline
read_only: true
environment:
- ASPNETCORE_ENVIRONMENT=Production
- DOTNET_RUNNING_IN_CONTAINER=true
- ASPNETCORE_URLS=http://+:5000
- TZ=Europe/Berlin
- LANG=de_DE.UTF-8
- LICENSE_CUSTOMER_NR=IHRE-KUNDENNUMMER
- LICENSE_LICENSE_NR=IHRE-LIZENZNUMMER
- ConnectionStrings__ConnectionString=Data Source=IHR-SQL-SERVER;Initial Catalog=MesoWorkerDb;User ID=IHR-SQL-USER;Password=IHR-SQL-PASSWORT;TrustServerCertificate=true
- ConnectionStrings__WinLineSystemDBConnectionString=Data Source=IHR-SQL-SERVER;Initial Catalog=CWLSYSTEM;User ID=IHR-SQL-USER;Password=IHR-SQL-PASSWORT;TrustServerCertificate=true
- WinLineSettings__WinLinePath=/app/winline/
- WinLineSettings__MesospoolServiceUrl=http://IHR-WINLINE-SERVER:42024
- WinLineSettings__TemplateForWorkflowImport=101
- WinLineServer__Url=http://IHR-WINLINE-SERVER:8080
- SessionSettings__MinimumSessions=1
- SessionSettings__DefaultUser=IHR-WINLINE-USER
- SessionSettings__DefaultPassword=IHR-WINLINE-PASSWORT
- SessionSettings__ValidationInterval=01:00:00
- Quartz__MailWorkerJob__scheduler=* * * * * ?
- Quartz__MailWorkerJob__enabled=true
- Quartz__MailWorkerJob__startnow=true
- Quartz__NoRuleWarningJob__scheduler=0 0 8 * * ?
- Quartz__NoRuleWarningJob__enabled=true
- Quartz__NoRuleWarningJob__startnow=false
- Quartz__OrderLineWorkerJob__scheduler=0 */5 * * * ?
- Quartz__OrderLineWorkerJob__enabled=true
- Quartz__OrderLineWorkerJob__startnow=true
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
interval: 3600s
timeout: 10s
retries: 3
start_period: 60s
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'
reservations:
memory: 512M
cpus: '0.5'
Welche Platzhalter müssen ersetzt werden?
| Platzhalter | Ersetzen durch | Beispiel |
|---|---|---|
IHR-SQL-SERVER |
Adresse Ihres SQL Servers | 192.168.1.100 |
IHR-SQL-USER |
SQL-Benutzername | sa |
IHR-SQL-PASSWORT |
SQL-Passwort | |
CWLSYSTEM |
Name der WinLine-Systemdatenbank (meist CWLSYSTEM) |
CWLSYSTEM |
IHRE-KUNDENNUMMER |
Lizenz-Kundennummer | 12345 |
IHRE-LIZENZNUMMER |
Lizenznummer | XXXX-XXXX-XXXX |
IHR-WINLINE-SERVER |
WinLine-Server Adresse | 192.168.1.50 |
IHR-WINLINE-USER |
WinLine-Benutzername | ADMIN |
IHR-WINLINE-PASSWORT |
WinLine-Passwort |
Tipp: Die Platzhalter kommen teilweise mehrfach vor (z.B.
IHR-SQL-SERVERin beiden Services). Nutzen Sie die Suchen-und-Ersetzen-Funktion Ihres Browsers (Strg+H), um alle Vorkommen auf einmal zu ersetzen.
Schritt 5: Stack deployen
- Prüfen Sie, ob alle Platzhalter ersetzt wurden
- Klicken Sie auf Deploy the stack
- Warten Sie, bis beide Container gestartet sind (Status: running)
Beim ersten Start wird die Datenbank
MesoWorkerDbautomatisch auf Ihrem SQL Server angelegt. Das kann einige Sekunden dauern.
Schritt 6: Admin-Oberfläche öffnen
- Öffnen Sie im Browser:
http://IHR-SERVER:8012(Port aus der Stack-Definition) - Melden Sie sich an:
- Benutzername:
Admin - Passwort: (leer lassen, beim ersten Login wird ein Passwort vergeben)
- Benutzername:
- Richten Sie über die Oberfläche die gewünschten Module ein (SMTP-Konten, Workflow-Einstellungen, Mail-Einstellungen etc.)
Fehlerbehebung
| Problem | Lösung |
|---|---|
| Container startet nicht | Prüfen Sie die Logs in Portainer (Klick auf Container-Name, dann Logs) |
| Datenbank-Verbindungsfehler | SQL Server erreichbar? Firewall-Port 1433 offen? Zugangsdaten korrekt? |
Access denied beim Image-Download |
GitHub-Token in der Registry-Konfiguration prüfen |
| Admin-Oberfläche nicht erreichbar | Port 8012 in der Firewall freigegeben? Container läuft? |
| Lizenzfehler beim Start | Kundennummer und Lizenznummer prüfen, ggf. Mesonic-Partner kontaktieren |
Nach der Installation
Benutzeranmeldung
Nach dem ersten Start können Sie sich an den Administrationsoberflächen anmelden.
Standard-Administrator:
- Benutzername:
Admin - Passwort: (leer - muss bei erster Anmeldung gesetzt werden)
- Rolle: Administrators (volle Berechtigungen)
Automatisch erstellte Rollen:
- Administrators: Vollzugriff auf alle Funktionen
- Default: Standardrolle für normale Benutzer mit eingeschränkten Rechten
Wichtig: Setzen Sie bei der ersten Anmeldung ein sicheres Passwort für den Admin-Benutzer.
Administrationsoberflächen
Für die Verwaltung und Konfiguration stehen zwei Oberflächen zur Verfügung:
Option A: Blazor Web-Interface
- URL:
http://localhost:5000(oder konfigurierter Port) - Zugriff: Über jeden modernen Webbrowser
- Vorteile:
- Plattformunabhängiger Zugriff
- Ideal für Remote-Administration
- Moderne Web-Oberfläche
- Mehrere Administratoren können gleichzeitig arbeiten
Verwendung:
- Öffnen Sie einen Webbrowser
- Navigieren Sie zu
http://localhost:5000(oder IP-Adresse des Servers) - Melden Sie sich mit Benutzername
Adminund gesetztem Passwort an
Option B: Windows Desktop-Client (nur bei Windows-Dienst)
- Start:
MesoWorker.Win.exe - Hinweis: Die Setup-Dateien werden von Ihrem Mesonic-Händler bereitgestellt
- Zugriff: Direkter Zugriff auf dem Server
- Vorteile:
- Erweiterte Desktop-Funktionalität
- Optimiert für umfangreiche Konfigurationsarbeiten
- Zusätzliche Administrationsfunktionen
Verwendung:
- Starten Sie
MesoWorker.Win.exeim Installationsverzeichnis - Melden Sie sich mit Benutzername
Adminund gesetztem Passwort an
Erste Schritte nach der Anmeldung
Nach der erfolgreichen Anmeldung sollten Sie folgende Schritte durchführen:
-
Passwort ändern
- Ändern Sie das Admin-Passwort über die Benutzerverwaltung
- Empfehlung: Starkes Passwort mit mindestens 12 Zeichen
-
Lizenz prüfen
- Überprüfen Sie, ob die Lizenz korrekt hinterlegt ist
- Der Service zeigt einen Fehler, falls die Lizenz ungültig ist
-
Datenbankverbindungen testen
- Stellen Sie sicher, dass beide Datenbanken erreichbar sind
- WinLine-Daten sollten sichtbar sein
-
SMTP-Konten einrichten (siehe SMTP-Konten einrichten)
- Mindestens ein SMTP-Konto für E-Mail-Versand konfigurieren
- Kennzeichnen Sie ein Konto als Standard-Konto
-
Mandanten aktivieren
- Prüfen Sie, welche Mandanten in der Liste angezeigt werden
- Aktivieren Sie die Mandanten, für die der Service arbeiten soll
Navigation und Menüstruktur
Die XAF-Administrationsoberfläche ist logisch nach den Hauptkomponenten des Systems strukturiert. Die Navigation ist in folgende Bereiche gegliedert:
Stammdaten
- Company (Mandanten): Verwaltung der Mandanten
- Workflow: Workflow-Vorlagen und Definitionen
- SmtpAccount: SMTP-Konten für E-Mail-Versand
Mail-Dienst
- MailSettings: Konfiguration der E-Mail-Einstellungen
- WorkflowSettings: Workflow-spezifische E-Mail-Einstellungen
- MailJournal: Protokoll aller versendeten E-Mails
- QueuedMail: Warteschlange für ausstehende E-Mails
- NoRuleWarningSettings: Einstellungen für Warnungen bei fehlenden Regeln
- NoRuleWarningJournal: Protokoll der Regel-Warnungen
Bestelldatei-Workflows
- OrderLineWorkflowSettings: Einstellungen für Workflow-Erzeugung aus Bestelldateizeilen
- OrderLineWorkflowJournal: Protokoll der verarbeiteten Bestelldateizeilen
Termin-Synchronisation
- AppointmentSettings: Einstellungen für Terminsynchronisation über MS Graph API
- AppointmentJournal: Protokoll der synchronisierten Termine
- GraphApiSettings: Microsoft Graph API Zugangsdaten
Offene Posten
- OpenItemSettings: Einstellungen für den automatischen OP-Versand (Selektion, Vorlage, Empfänger, Anhänge)
- OpenItemJournal: Protokoll aller versendeten OP-Übersichten
Erweiterte Einstellungen
- RecipientRuleTemplate: Wiederverwendbare Empfänger-Regelvorlagen
- RecipientRuleDefinition: Einzelne Empfängerregeln
- FilteringCriterion: Filterkriterien für Workflows
- PropertyValue: Eigenschaftswerte für Workflows
Diese Struktur ermöglicht eine intuitive Navigation und schnellen Zugriff auf die jeweiligen Funktionsbereiche.