Beiträge in diesem Abschnitt

Installation und Update: FMWeb per ZIP installieren und aktuell halten

Veröffentlicht:
Aktualisiert:

Modul: Hintergrundwissen / IT & Technik

Zielgruppe: IT-Administratoren

Stand: FMWeb 10.7.2 (ZIP-Deployment)

Diese Anleitung zeigt, wie Sie FMWeb auf einem Windows-Server installieren und aktualisieren. FMWeb wird als signiertes ZIP-Archiv ausgeliefert – es gibt kein Setup-Programm: entpacken, appsettings.json anpassen, einmalig einen geplanten Task einrichten, fertig. Die Erstkonfiguration (Datenbank, Lizenz, erster Administrator) übernimmt danach der eingebaute Einrichtungsassistent im Browser.

Lieferumfang

DateiZweck
FmWeb 10-7-2.zipDie Anwendung (self-contained, 64-bit Windows – kein .NET auf dem Server nötig)
FmWeb 10-7-2.zip.sha256SHA-256-Prüfsumme
FmWeb 10-7-2.catSignierter Katalog zum ZIP

Alle .exe- und .dll-Dateien im Archiv sind Authenticode-signiert. Prüfen Sie vor der Verwendung:

(Get-FileHash ".\FmWeb 10-7-2.zip" -Algorithm SHA256).Hash   # muss der .sha256-Datei entsprechen
# nach dem Entpacken:
Get-AuthenticodeSignature "C:\Program Files\Cloudkasten\FMWeb\FmWeb.Blazor.exe"   # Status: Valid

Voraussetzungen

  • 64-bit Windows Server (für kleine Installationen auch Windows 10/11).
  • Microsoft SQL Server. Ist noch keiner vorhanden, kann der Einrichtungsassistent SQL Server Express installieren.
  • Ein eigenes Windows-Konto für FMWeb (lokal oder Domäne). Verwenden Sie nicht LocalSystem, LocalService oder NetworkService.
  • Rechte für dieses Konto: SQL-Login mit Rechten auf den FMWeb-Datenbanken (bei integrierter Sicherheit), Freigabe- und NTFS-Rechte auf der Dokumentenablage (UNC-Pfade verwenden – Netzlaufwerk-Buchstaben stehen Hintergrundprozessen nicht zur Verfügung), „Anmelden als Stapelverarbeitungsauftrag".

Erstinstallation

  1. Verzeichnis anlegen, z. B. C:\Program Files\Cloudkasten\FMWeb, und das geprüfte ZIP dorthin entpacken.
  2. appsettings.json prüfen (Tabelle unten) – mindestens die Datenbank-Verbindungen und ggf. den Port.
  3. Rechte setzen: Das FMWeb-Konto braucht Lesen/Ausführen auf dem Verzeichnis sowie Ändern auf den Unterordnern Artifacts und Logs.
  4. Geplanten Task einrichten (einmalig, als Administrator):
   $dir = "C:\Program Files\Cloudkasten\FMWeb"
   $action   = New-ScheduledTaskAction -Execute (Join-Path $dir "FmWeb.Blazor.exe") -WorkingDirectory $dir
   $trigger  = New-ScheduledTaskTrigger -AtStartup
   $settings = New-ScheduledTaskSettingsSet -MultipleInstances IgnoreNew `
       -RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) `
       -ExecutionTimeLimit ([TimeSpan]::Zero) -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
   Register-ScheduledTask -TaskPath "\Cloudkasten\" -TaskName "FMWeb" `
       -Action $action -Trigger $trigger -Settings $settings `
       -User "DOMAIN\fmweb-dienst" -Password (Read-Host "Kennwort des Task-Kontos") `
       -RunLevel Highest
   Start-ScheduledTask -TaskPath "\Cloudkasten\" -TaskName "FMWeb"

Der Task startet FMWeb beim Hochfahren, startet es bei Beendigung automatisch neu und verhindert eine zweite Instanz. Nach einer Kennwortänderung des Kontos: Task-Anmeldedaten aktualisieren.

  1. Funktion prüfen: http://localhost:9998/health muss HTTP 200 liefern.
  2. Firewall freigeben, wenn Anwender über das Netzwerk zugreifen: eingehend TCP 9998 (Artikel 143).
  3. Einrichtungsassistent durchlaufen: Beim ersten Aufruf von http://<server>:9998 führt FMWeb automatisch durch Datenbank-Einrichtung, Lizenz-Registrierung (K-SOFT-Kundennummer) und das Anlegen des ersten Administrators (Artikel 130). Nach Abschluss ist der Assistent dauerhaft deaktiviert.

Die Konfigurationsdatei appsettings.json

SchlüsselBedeutungStandard
ConnectionStrings:FpSystemContextSystemdatenbankServer=.;Database=FPSystem;…
ConnectionStrings:TenantContextTemplateMandanten-Datenbanken; {0} = dreistellige MandantennummerServer=.;Database=Flottenmanager{0};…
Kestrel:Endpoints:Http:UrlPort der Anwendunghttp://*:9998
ServerUrlAbsolute Adresse, unter der Anwender FMWeb erreichen – wird für Links in E-Mails und Kalendereinladungen verwendetleer
UpdateUrlK-SOFT-Lizenz- und Update-Diensthttps://api-fmweb-prod.cloudkasten.net/
RemoveLogsAfterDaysAufbewahrung des technischen Aufgabenprotokolls in Tagen30
OpenIdConnectOptionales Single Sign-On (Artikel 115)deaktiviert

Diese Datei gehört Ihnen: Sichern Sie sie, und stellen Sie sie nach jedem Update wieder her (siehe unten). Für HTTPS konfigurieren Sie entweder einen Kestrel-HTTPS-Endpunkt mit Zertifikat oder – üblicher – einen Reverse Proxy (Artikel 143).

Update einspielen

Das Update laden Sie in FMWeb unter Systemadministration → Updates herunter (setzt einen gültigen Wartungsvertrag voraus, Artikel 113).

  1. Sichern: appsettings.json, die Datenbanken (FPSystem + alle Flottenmanager###), die Ordner Artifacts und Logs sowie %ProgramData%\Cloudkasten\FmWeb\DataProtection-Keys.
  2. ZIP prüfen (Prüfsumme/Signatur wie oben).
  3. FMWeb stoppen:
   Stop-ScheduledTask -TaskPath "\Cloudkasten\" -TaskName "FMWeb"
   Get-Process FmWeb.Blazor -ErrorAction SilentlyContinue | Stop-Process -Force
  1. Entpacken und Konfiguration wiederherstellen:
   $dir = "C:\Program Files\Cloudkasten\FMWeb"
   Copy-Item "$dir\appsettings.json" "$dir\appsettings.json.kunde" -Force      # eigene Konfiguration beiseitelegen
   Expand-Archive ".\FmWeb 10-7-2.zip" -DestinationPath $dir -Force            # neue Version darüber entpacken
   Move-Item "$dir\appsettings.json.kunde" "$dir\appsettings.json" -Force      # eigene Konfiguration zurück

Die Release Notes nennen neue Konfigurationsschlüssel – vergleichen Sie im Zweifel Ihre Datei mit der mitgelieferten.

  1. Starten: Start-ScheduledTask -TaskPath "\Cloudkasten\" -TaskName "FMWeb". Der erste Start nach einem Update führt automatisch Datenbank-Migrationen für die System- und alle Mandanten-Datenbanken aus – planen Sie einige Minuten ein und unterbrechen Sie den Start nicht.
  2. Prüfen: /health liefert 200; die Versionsnummer im Benutzermenü zeigt den neuen Stand.

Rollback

Bewahren Sie das ZIP der Vorversion auf. Für ein Rollback: Task stoppen, altes ZIP über das Verzeichnis entpacken, appsettings.json wiederherstellen und – falls die neue Version die Datenbanken bereits migriert hat – die Datenbank-Sicherungen aus Schritt 1 zurückspielen. Kontaktieren Sie vor dem Rückspielen migrierter Datenbanken bevorzugt den Support (Artikel 17).

Verzeichnisse und Datensicherung

PfadInhaltBeim Update
InstallationsverzeichnisProgrammdateienwird überschrieben
appsettings.jsonIhre Konfigurationmanuell wiederherstellen (Schritt 4)
Logs\Anwendungsprotokollebleibt erhalten
%ProgramData%\Cloudkasten\FmWeb\DataProtection-KeysSchlüsselbund für Anmeldesitzungen; Verlust meldet alle Benutzer abbleibt erhalten – ins Backup aufnehmen
SQL-Datenbanken + DokumentenablageIhre Fuhrparkdatenunabhängig vom Update – regelmäßig sichern

Deinstallation

Task entfernen (Unregister-ScheduledTask -TaskPath "\Cloudkasten\" -TaskName "FMWeb"), Installationsverzeichnis löschen. Datenbanken, Dokumentenablage und %ProgramData%\Cloudkasten\FmWeb bleiben bewusst unangetastet – löschen Sie sie nur nach eigener Sicherung und bewusster Entscheidung.

Häufige Fragen

Geht meine Konfiguration beim Update verloren? Nicht, wenn Sie Schritt 4 befolgen: Die eigene appsettings.json wird vor dem Entpacken beiseitegelegt und danach wiederhergestellt. Alles andere (Datenbanken, Dokumente, Logs) liegt außerhalb des Programmverzeichnisses bzw. wird nicht überschrieben.

Warum dauert der erste Start nach dem Update länger? FMWeb bringt seine Datenbank-Änderungen selbst mit und wendet sie beim Start auf alle Mandanten-Datenbanken an. Erst danach nimmt der Webserver Verbindungen an.

Können wir das Update automatisieren? Ja – die Schritte 3–5 sind vollständig skriptbar (PowerShell-Beispiele oben). Ein unbeaufsichtigtes Einspielen sollte die Sicherung aus Schritt 1 einschließen.

Verwandte Artikel

AH
Geschrieben von Alexander Hagemann
Aktualisiert:
Zugriff abgelehnt
Zugriff abgelehnt