Updater
Der Updater ist ein Windows-Dienst auf dem invoiceR-Server. Er prüft regelmässig, ob eine neue Version bereitsteht, und installiert sie selbständig. Frontend und Backend haben je einen eigenen Updater, für jede Umgebung (Test, Produktion) einen eigenen.
Ablauf eines Updates
Abschnitt betitelt „Ablauf eines Updates“- Prüfen: In einem festen Intervall fragt der Updater bei enio nach einer neuen Version. Alternativ prüft er einen lokalen Ordner auf eine bereitgestellte Update-Datei.
- Vorbereiten: Er lädt das ZIP-Archiv herunter, entpackt es, kopiert eure Konfigurationsdateien hinein und führt beim Backend den Migrator aus. Schlägt die Migration fehl, bleibt die laufende Version unverändert; beim nächsten Versuch wird es erneut probiert.
- Austauschen: Er stoppt die Website, verschiebt den Programmordner, ersetzt ihn durch die neue Version und startet die Website wieder. Die Website wird nur gestartet, wenn sie vorher lief.
- Abschliessen: Er schreibt die Datei
.versionmit der installierten Version in den Programmordner, packt die alte Version in ein ZIP-Archiv und löscht die ältesten Archive.
Eine Version, deren Installation mehrmals fehlgeschlagen ist, versucht der Updater nicht mehr.
Installieren
Abschnitt betitelt „Installieren“Im Ordner des Updaters liegen Skripte, die den Dienst registrieren und starten: Install-BE.bat für das
Backend, Install-FE.bat für das Frontend (als Administrator ausführen). Sie erkennen die Umgebung am
Ordnernamen (Test oder Prod) und legen einen Dienst wie InvoiceR-Updater Backend Prod an.
Uninstall-BE.bat und Uninstall-FE.bat entfernen ihn wieder.
Von Hand geht es so:
sc.exe create "InvoiceR-Updater Backend Prod" binPath= D:\invoiceR\Prod\Updater-BE\InvoiceR_Update_Service.exe start=autosc.exe start "InvoiceR-Updater Backend Prod"Konfiguration
Abschnitt betitelt „Konfiguration“Der Updater liest die Datei appsettings.json in seinem Ordner.
RemoteSettings
Abschnitt betitelt „RemoteSettings“| Schlüssel | Bedeutung |
|---|---|
SecretKey | Schlüssel, mit dem sich die Installation bei enio ausweist. Ihr erhaltet ihn von enio. |
SoftwareId | 1 = Frontend, 2 = Backend. |
BackendApiUrl | Adresse, von der neue Versionen bezogen werden. Ihr erhaltet sie von enio. |
LocalSettings
Abschnitt betitelt „LocalSettings“| Schlüssel | Standard | Bedeutung |
|---|---|---|
CheckEveryXSeconds | 60 | Intervall für die Prüfung auf neue Versionen. |
MaxInstallationAttempts | 5 | Anzahl Versuche pro Version. |
WorkingDirectory | Arbeitsordner; relative Pfade gehen von hier aus. | |
ApplicationDirectory | ../App | Programmordner des invoiceR (Frontend oder Backend). |
ConfigurationDirectory | AppConfig | Ordner mit euren Konfigurationsdateien, die in jede neue Version kopiert werden. |
ArchiveDirectory | Archive | Ordner für die Archive der alten Versionen. |
KeepArchivesMax | 10 | Anzahl Archive, die behalten werden. Negativ: nie löschen. |
StartStopWebServer | true: Website und Application Pool beim Update stoppen und starten. | |
WebsiteName, WebsitePoolName | Name der Website und des Application Pools im IIS. | |
ForceWebServerStart | true: Website nach dem Update auch starten, wenn sie vorher nicht lief. | |
RunMigrations | true: Migrator beim Update ausführen (nur Backend). | |
MigratorEnvironment | Production | Wert für ASPNETCORE_ENVIRONMENT während der Migration. |
MigratorCustomAppSettings | Wert für INVOICER_CUSTOM_APPSETTINGS während der Migration. | |
MigratorTimeoutSeconds | 1800 | Höchstdauer der Migration. |
TempDirectory | Ordner für temporäre Dateien. Muss auf demselben Laufwerk wie die Website liegen. | |
ProxyAddress, ProxyUser, ProxyPassword | Proxy-Server für den Internetzugang. | |
UpdateFromDirectory | false | true: Update-Datei aus einem lokalen Ordner statt aus dem Internet. |
ApplicationUpdateDirectory | Ordner mit der Update-Datei, wenn UpdateFromDirectory gesetzt ist. | |
ApplicationUpdateFilename | Dateiname der Update-Datei in diesem Ordner. |
