Direkt zum Hauptinhalt

Konfiguration

Die Konfiguration des MesoWorkerService erfolgt je nach Installationsmethode unterschiedlich:

  • Windows-Dienst: Über die Datei appsettings.json
  • Container: Über Umgebungsvariablen

Lizenzierung

Für den Betrieb des MesoWorkerService benötigen Sie eine gültige Lizenz, die Sie von Ihrem Mesonic Partner erhalten.

Erforderliche Angaben:

  • Kundennummer: Identifiziert den Lizenzinhaber
  • Lizenznummer: Aktiviert die Software

Wichtig: Ohne gültige Lizenz startet der Service nicht.

Verfügbare Module

Der MesoWorkerService besteht aus einem Basisprodukt und vier optionalen Modulen. Jedes Modul muss separat lizenziert werden:

Basisprodukt:

  • MESO-WorkerService - Grundfunktionalität des Dienstes (erforderlich)

Module:

  • MESO-WSMAIL - Mesonic WorkerService Erweiterung Mailservice

    • Aktiviert MailWorkerJob für automatischen E-Mail-Versand aus CRM-Workflows
    • Aktiviert NoRuleWarningJob für Warnungen bei fehlenden Mail-Empfängern
  • MESO-WSBELEG - Mesonic WorkerService Erweiterung Belegzeilenworkflows

    • Aktiviert OrderLineWorkerJob für automatische Workflow-Erzeugung aus Bestelldateizeilen
  • MESO-WSGRAPH - Mesonic WorkerService Erweiterung Graph API Terminabgleich

    • Aktiviert AppointmentWorkerJob für Terminsynchronisation über Microsoft Graph API
  • MESO-WSOP - Mesonic WorkerService Erweiterung Offene Posten

    • Aktiviert OpenItemWorkerJob für automatischen Versand von OP-Infos

Modulprüfung beim Start:

Beim Start des Services werden automatisch alle lizenzierten Module erkannt und nur die entsprechenden Jobs aktiviert. Im Log sehen Sie:

Licensed modules: Mail, OrderLine, GraphApi, OpenItem
✓ MESO-WSMAIL (Mailservice) - MailWorkerJob and NoRuleWarningJob will be activated
✓ MESO-WSBELEG (Belegzeilenworkflows) - OrderLineWorkerJob will be activated
✓ MESO-WSGRAPH (Graph API Terminabgleich) - AppointmentWorkerJob will be activated
✓ MESO-WSOP (Offene Posten) - OpenItemWorkerJob will be activated

Falls ein Modul nicht lizenziert ist, wird der entsprechende Job übersprungen:

Job MailWorkerJob requires module Mail which is not licensed - skipping registration

Hinweis: Das Basisprodukt MESO-WorkerService muss immer lizenziert sein. Die Module können je nach Bedarf einzeln oder in Kombination lizenziert werden.

Datenbankverbindungen

Der MesoWorkerService benötigt Zugriff auf zwei Datenbanken:

1. Anwendungsdatenbank (MesoWorkerDb)

  • Speichert Konfigurationsdaten, Mail-Journal und Protokolle
  • Wird beim ersten Start automatisch erstellt (SQL-Benutzer benötigt CREATE DATABASE-Rechte)
  • Connection String Format: Data Source=SERVER;Initial Catalog=MesoWorkerDb;...

2. WinLine Systemdatenbank (CWLSYSTEM)

  • Zugriff auf WinLine Mandanten und Systemdaten
  • Connection String Format: Data Source=SERVER;Initial Catalog=CWLSYSTEM;...

Authentifizierungsoptionen:

  • Windows-Authentifizierung: Integrated Security=true
  • SQL-Authentifizierung: User ID=user;Password=pass

Wichtig: Für Container-Deployment muss SQL-Authentifizierung verwendet werden, da Windows-Authentifizierung in Containern nicht unterstützt wird.

WinLine-Integration

WinLine-Pfad:

  • Pfad zur WinLine-Installation (z.B. C:\WinLine\ oder /app/winline/)
  • Erforderlich für Zugriff auf WinLine-Konfigurationsdateien
  • Wichtig für Container (Linux): Der WinLine-Pfad ist typischerweise eine Windows-UNC-Freigabe (z.B. \\winline-server\WinLine), die als Linux-Mountpoint oder Volume in den Container eingebunden werden muss
  • Wird auch für die Erstellung von CRM-Workflow-Schritten über den WinLine WebService benötigt

TemplateForWorkflowImport:

  • Template-ID (numerisch) für den Workflow-Import beim Erstellen von CRM-Workflow-Schritten
  • Wird vom Mail-Dienst (Workflow-Schritt-Erstellung) und von der Workflow-Erzeugung aus Bestelldateizeilen verwendet
  • Beispiel: 101 — muss einer gültigen Workflow-Vorlage in WinLine entsprechen
  • Bei Wert 0 oder fehlender Konfiguration wird die Workflow-Schritt-Erstellung übersprungen

Mesospool Service:

  • URL zum Mesospool-Service für Dokumentenarchivierung
  • Format: http://server:42024
  • Erforderlich für Anhang-Funktionen
  • Wichtig für Container (Linux): Bei Linux-Containern ist der Mesospool-Service zwingend erforderlich, da die unter WinLinePath vorhandene mesospool.exe nicht unter Linux lauffähig ist
  • Wird generell zur Konvertierung von Archiv-Dateien im WinLine .SPL-Format in PDF-Dateien verwendet
  • Falls keine .SPL-Dateien vorliegen, ist der Service optional

WinLine Server (optional):

  • URL zum WinLine WebService (z.B. http://server:8080)
  • Erforderlich wenn automatische CRM-Workflow-Schritte erstellt werden sollen (z.B. für Workflow-Erzeugung aus Bestelldateizeilen)
  • Erforderlich für den Download des OP-Blatts aus FIBU als PDF-Anhang im OP-Modul
  • Verwendet den WinLine-Pfad für die Workflow-Schritt-Erstellung
  • Benötigt separate Mesonic WebService-Lizenz

MesoArchivWeb (optional):

  • BaseUrl: URL zum MesoArchivWeb-Dokumentenarchiv (z.B. http://archiv-server:5000)
  • JwtSecret: Gemeinsames JWT-Secret für die Authentifizierung zwischen MesoWorkerService und MesoArchivWeb
  • Erforderlich für das Anhängen von Archiv-Dokumenten (Originalrechnungen) im OP-Modul und Mail-Dienst
  • Ermöglicht das Erzeugen externer Archiv-Links ({ArchivLinkExt:...}) in OP-Vorlagen

Session-Einstellungen:

  • Standard-Anmeldedaten für WinLine-Sessions
  • Mindestanzahl aktiver Sessions
  • Validierungsintervall für Sessions

Windows-Dienst Konfiguration

Bei der Windows-Dienst-Installation erfolgt die Konfiguration über die Datei appsettings.json:

{
  "Kestrel": {
    "Endpoints": {
      "Http": { "Url": "http://0.0.0.0:5000" }
    }
  },
  "License": {
    "CustomerNr": "12345",
    "LicenseNr": "LIZENZNUMMER"
  },
  "ConnectionStrings": {
    "ConnectionString": "Data Source=SQL-SERVER;Initial Catalog=MesoWorkerDb;Integrated Security=true;TrustServerCertificate=true",
    "WinLineSystemDBConnectionString": "Data Source=SQL-SERVER;Initial Catalog=CWLSYSTEM;Integrated Security=true;TrustServerCertificate=true"
  },
  "WinLineSettings": {
    "WinLinePath": "C:\\WinLine\\",
    "MesospoolServiceUrl": "http://winline-server:42024",
    "TemplateForWorkflowImport": 101
  },
  "WinLineServer": {
    "Url": "http://winline-server:8080"
  },
  "MesoArchivWeb": {
    "BaseUrl": "http://archiv-server:5000",
    "JwtSecret": "IHR-JWT-SECRET"
  },
  "SessionSettings": {
    "MinimumSessions": 1,
    "DefaultUser": "winline-user",
    "DefaultPassword": "passwort",
    "ValidationInterval": "01:00:00"
  },
  "SmtpDebug": {
    "Enabled": false,
    "SaveEmlToDirectory": ""
  },
  "Quartz": {
    "quartz.scheduler.instanceName": "Meso Worker Services Scheduler",
    "MailWorkerJob": {
      "scheduler": "* * * * * ?",
      "enabled": true,
      "startnow": true
    },
    "NoRuleWarningJob": {
      "scheduler": "0 0 8 * * ?",
      "enabled": true,
      "startnow": false
    },
    "OrderLineWorkerJob": {
      "scheduler": "0 */5 * * * ?",
      "enabled": true,
      "startnow": true
    },
    "AppointmentWorkerJob": {
      "scheduler": "0 */10 * * * ?",
      "enabled": true,
      "startnow": true
    },
    "OpenItemWorkerJob": {
      "scheduler": "0 0 7 * * ?",
      "enabled": true,
      "startnow": false
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Information",
        "System": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "Console"
      },
      {
        "Name": "File",
        "Args": {
          "path": "Logs/MesoWorkerService-.txt",
          "rollingInterval": "Day"
        }
      }
    ]
  }
}

Wichtige Einstellungen:

  • Kestrel: Web-Server-Konfiguration (Standard: Port 5000)
  • License: Kundennummer und Lizenznummer (erforderlich)
  • ConnectionStrings: Datenbankverbindungen (erforderlich)
  • WinLineSettings: WinLine-Integration (erforderlich)
  • WinLineServer: URL zum WinLine WebService (optional, für Workflow-Schritte und OP-Blatt)
  • MesoArchivWeb: Verbindung zum Dokumentenarchiv (optional, für Archiv-Anhänge im OP-Modul und Mail-Dienst)
  • SessionSettings: WinLine-Session-Verwaltung
  • SmtpDebug: SMTP-Diagnose-Modus für E-Mail-Fehlerbehebung (siehe SMTP-Debug-Modus)
  • Quartz: Job-Zeitplanung für automatische Ausführungen (Cron-Expressions)
  • Logging/Serilog: Protokollierungseinstellungen

PortainerUmgebungsvariablen Stack Konfiguration(Container-Deployment)

Bei Container-Deployment erfolgt die Konfiguration über Umgebungsvariablen:

Umgebungsvariablen.
version:Eine '3.8'vollständige services:Stack-Definition mesoworkerservice-ui:mit image:allen 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
      
      # Datenbank (erforderlich)
      - ConnectionStrings__ConnectionString=Data Source=SQL-SERVER;Initial Catalog=MesoWorkerDb;User ID=sql-user;Password=sql-pass;TrustServerCertificate=true
      - ConnectionStrings__WinLineSystemDBConnectionString=Data Source=SQL-SERVER;Initial Catalog=CWLSYSTEM;User ID=sql-user;Password=sql-pass;TrustServerCertificate=true

  mesoworkerservice:
    image: ghcr.io/css-edv-support/mesoworkerservice-service:latest
    container_name: mesoworkerservice
    restart: unless-stopped
    ports:
      - "8013:5000"
    
    # Volume-Mapping für WinLine-Pfad (erforderlich für Linux-Container)
    volumes:
      - type: bind
        source: //winline-server/WinLine  # Windows UNC-Pfad
        target: /app/winline               # Linux-Mountpoint im Container
        read_only: true
    
    environment:
      # Container-Konfiguration
      - ASPNETCORE_ENVIRONMENT=Production
      - DOTNET_RUNNING_IN_CONTAINER=true
      - ASPNETCORE_URLS=http://+:5000
      - TZ=Europe/Berlin
      - LANG=de_DE.UTF-8
      
      # Lizenzierung (erforderlich)
      - LICENSE_CUSTOMER_NR=12345
      - LICENSE_LICENSE_NR=LIZENZNUMMER
      
      # Datenbankverbindungen (erforderlich)
      - ConnectionStrings__ConnectionString=Data Source=SQL-SERVER;Initial Catalog=MesoWorkerDb;User ID=sql-user;Password=sql-pass;TrustServerCertificate=true
      - ConnectionStrings__WinLineSystemDBConnectionString=Data Source=SQL-SERVER;Initial Catalog=CWLSYSTEM;User ID=sql-user;Password=sql-pass;TrustServerCertificate=true
      
      # WinLine-Konfiguration (erforderlich)
      - WinLineSettings__WinLinePath=/app/winline/
      - WinLineSettings__MesospoolServiceUrl=http://winline-server:42024
      - WinLineSettings__TemplateForWorkflowImport=101
      
      # WinLine Server (optional, für Workflow-SchritteUmgebungsvariablen und OP-Blatt)Platzhaltern -finden WinLineServer__Url=http://winline-server:8080Sie #in MesoArchivWebder (optional,Schritt-für-Schritt-Anleitung: fürInstallation Archiv-Anhänge)mit - MesoArchivWeb__BaseUrl=http://archiv-server:5000
      - MesoArchivWeb__JwtSecret=IHR-JWT-SECRET

      # Session-Einstellungen
      - SessionSettings__MinimumSessions=1
      - SessionSettings__DefaultUser=winline-user
      - SessionSettings__DefaultPassword=passwort
      - SessionSettings__ValidationInterval=01:00:00
      
      # SMTP-Debug-Modus (optional, nur zur Fehlerdiagnose)
      - SmtpDebug__Enabled=false
      - SmtpDebug__SaveEmlToDirectory=

      # Job-Konfiguration
      - Quartz__quartz.scheduler.instanceName=Meso Worker Services Scheduler
      - 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
      - Quartz__AppointmentWorkerJob__scheduler=0 */10 * * * ?
      - Quartz__AppointmentWorkerJob__enabled=true
      - Quartz__AppointmentWorkerJob__startnow=true
      - Quartz__OpenItemWorkerJob__scheduler=0 0 7 * * ?
      - Quartz__OpenItemWorkerJob__enabled=true
      - Quartz__OpenItemWorkerJob__startnow=false
      
      # Protokollierung
      - Logging__LogLevel__Default=Information
      - Logging__LogLevel__Microsoft.Hosting.Lifetime=Information
      - Serilog__MinimumLevel__Default=Information
      - Serilog__MinimumLevel__Override__Microsoft=Information
      - Serilog__MinimumLevel__Override__System=Warning

    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'
Portainer.

Konfigurationshinweise:

  • Ersetzen Sie SQL-SERVER, sql-user, sql-pass mit Ihren Datenbankzugangsdaten
  • Ersetzen Sie winline-server, winline-user, passwort mit Ihren WinLine-Zugangsdaten
  • Ersetzen Sie 12345 und LIZENZNUMMER mit Ihrer Lizenz
  • Die E-Mail-Einstellungen (SMTP-Server, Absender etc.) werden über die Admin-Oberfläche konfiguriert
  • SmtpDebug: Aktivieren Sie SmtpDebug__Enabled=true nur temporär zur Fehlerdiagnose (siehe SMTP-Debug-Modus)
  • Wichtig für Linux-Container: Der MesospoolServiceUrl ist bei Linux-Containern zwingend erforderlich, da die mesospool.exe aus dem WinLinePath nicht unter Linux lauffähig ist. Dieser Service wird zur Konvertierung von WinLine .SPL-Archivdateien in PDF verwendet.
  • Volume-Mapping für WinLine-Pfad: Der WinLine-Pfad (typischerweise eine Windows-UNC-Freigabe wie \\winline-server\WinLine) muss als Volume in den Container eingebunden werden. Passen Sie source an Ihren WinLine-Server an. Der Container greift dann über /app/winline darauf zu.

Cron-Expressions für Job-Zeitplanung:

  • * * * * * ? = Jede Sekunde (Mail-Dienst, Standard)
  • 0 */5 * * * ? = Alle 5 Minuten (Workflow-Erzeugung)
  • 0 */10 * * * ? = Alle 10 Minuten (Terminsynchronisation)
  • 0 0 7 * * ? = Täglich um 7:00 Uhr (OP-Versand)
  • 0 0 8 * * ? = Täglich um 8:00 Uhr (Überwachungsdienst)

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 Datenbank MesoWorkerDb wird dann automatisch erstellt. Falls Ihr SQL-Benutzer dieses Recht nicht hat, bitten Sie Ihre IT-Abteilung, eine leere Datenbank mit dem Namen MesoWorkerDb vorab 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_) 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-SERVER in 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 MesoWorkerDb automatisch 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) 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