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 PortainerStack Konfigurationfü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:
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
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.
GitHub CSS
Registry URL: ghcr.io
Authentication: aktivieren
Username: Ihr GitHub-Benutzername
Password: Ihr GitHub-Token (beginnt mit ghp_)
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
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?
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
Beim ersten Start wird die Datenbank
MesoWorkerDbautomatisch auf Ihrem SQL Server angelegt. Das kann einige Sekunden dauern.
Schritt 6: Admin-Oberfläche öffnen
http://IHR-SERVER:8012 (Port aus der Stack-Definition)
Melden Sie sich an:
Admin
Passwort: (leer lassen, beim ersten Login wird ein Passwort vergeben)
Richten Sie über die Oberfläche die gewünschten Module ein (SMTP-Konten, Workflow-Einstellungen, Mail-Einstellungen etc.)
Fehlerbehebung
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:
Admin
Passwort: (leer - muss bei erster Anmeldung gesetzt werden)
Rolle: Administrators (volle Berechtigungen)
Automatisch erstellte Rollen:
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
http://localhost:5000 (oder konfigurierter Port)
Zugriff: Über jeden modernen Webbrowser
Vorteile:
Verwendung:
http://localhost:5000 (oder IP-Adresse des Servers)
Melden Sie sich mit Benutzername Admin und gesetztem Passwort an
Option B: Windows Desktop-Client (nur bei Windows-Dienst)
MesoWorker.Win.exe
Hinweis: Die Setup-Dateien werden von Ihrem Mesonic-Händler bereitgestellt
Zugriff: Direkter Zugriff auf dem Server
Vorteile:
Verwendung:
MesoWorker.Win.exe im Installationsverzeichnis
Melden Sie sich mit Benutzername Admin und gesetztem Passwort an
Erste Schritte nach der Anmeldung
Nach der erfolgreichen Anmeldung sollten Sie folgende Schritte durchführen:
Passwort ändern
Lizenz prüfen
Datenbankverbindungen testen
SMTP-Konten einrichten (siehe SMTP-Konten einrichten)
Mandanten aktivieren
Navigation und Menüstruktur
Die XAF-Administrationsoberfläche ist logisch nach den Hauptkomponenten des Systems strukturiert. Die Navigation ist in folgende Bereiche gegliedert:
Stammdaten
Mail-Dienst
Bestelldatei-Workflows
Termin-Synchronisation
Offene Posten
Erweiterte Einstellungen
Diese Struktur ermöglicht eine intuitive Navigation und schnellen Zugriff auf die jeweiligen Funktionsbereiche.