The purpose of this guide is to assist in upgrading a stable Helmut4 instance to a more recent snapshot version, providing instructions for all necessary preparations and security precautions essential for a successful upgrade.
I - General recommendations
It is strongly advised to always install an update on a development (staging) system first and conduct various stream and workflow tests to ensure its stability.
II - Latest version & change-log
The latest snapshot version can be found on the changelog page. We strongly recommend installing only the snapshot versions, as we do not provide support for development versions used in production environments.
IIa - Container versions (optional)
If necessary, refer to the Docker Image Version History page for information on versions of the corresponding containers.
III - Create a Helmut backup
An update within Helmut can be easily created without the need for additional tools.
To accomplish this, navigate to the preferences page and click the backup button.
A window will appear, presenting various parameters that can be selected and subsequently saved. If you are uncertain, you may choose to select all options (excluding jobs and licenses, as we do not recommend their selection).
IIIa - Data Integrity Backup
For added security, consider creating a snapshot of your host computer (virtual machine). This snapshot can be used to quickly restore the system to its previous state if needed.
IV - Update Process Part One - Client
Before updating the server, it is essential to update the client application. As new versions are often associated with Adobe extensions, ensuring that these extensions are up to date is necessary. We strongly recommend performing a clean uninstall of the client for both Windows and Mac.
We provide two basic scripts to assist you in this procedure:
:: Uninstall + Install Helmut Client:: Silent mode as a batch-script:: Version 3.3:: Date: 04/04/2023::copy the following code into a .bat file and execute it::from a local drive (not network)::local folder path to helmut4-installer - eg C:/Temp/Helmutset"helmutpath=C:/temp/helmut"set"clientversion=4.2.0.27":: Terminate Helmut processtaskkill /F /IM "javaw.exe"echo Helmut Process terminated:: Start Uninstallerc::: Check if Helmut4 has been already installedifnotexist"C:\Program Files\MoovIT GmbH\Helmut4"goto Helmut4-installcd"C:\Program Files\MoovIT GmbH\Helmut4"start /wait """Uninstall Helmut4.exe" /S::Wait 10 secondstimeout /t 10:: Delete all moovIT panel extensions (safeline version)Rmdir /S /Q "C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\de.moovit.AME_WS"Rmdir /S /Q "C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\de.moovit.HELMUT"Rmdir /S /Q "C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"Rmdir /S /Q "C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\de.moovit.HELMUT_ADOBE_WINDOW_EXTENSION":: old panel cacheRmdir /S /Q "C:\Program Files (x86)\Common Files\Adobe\CEP\extensions\de.moovit.PREMIERE_WS":: Delete old .jar stream engine from any user AppData/Temp folder::del %userprofile%\AppData\Local\Temp\stream-engine-4*.jarfor /f %%fin ('dir /B /A:D-H-R c:\users') do (del C:\Users\%%f\AppData\Local\Temp\stream-engine-4*.jar):: Delete all moovit-related panel cache foldersfor /f %%fin ('dir /B /A:D-H-R c:\users') do (forfiles /P "C:\Users\%%f\AppData\Local\Temp\cep_cache" /M *_de.moovit.* /C "cmd /c if @isdir==TRUE rmdir /s /q @file")Echo Helmut4 has been removed:Helmut4-install:: Install Helmut Clientcd %helmutpath%set"installer=Helmut_Client_Setup_%clientversion%.exe"start /wait """%installer%" /S:: Copy the public Helmut client shortcut into the global Windows autostart folderrobocopy"C:\Users\Public\Desktop""C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" *lnk /is:: Delete public desktop Helmut shortcutdel /f "C:\Users\Public\Desktop\Helmut4.lnk"echo Helmut has been installed::Wait 10 secondstimeout /t 10exit```
#!/bin/bash# Uninstall + Install Helmut Client on macOS# MoovIT# Version 1.3# Date: Apr 4th 2023# Changelog: Mar 15th 2024# Minor refactoring# Verify existence of pkg installer# Define variables for installer path and client versionhelmutpath="/Volumes/MacHD/Users/Shared"clientversion="4.8.0.0"installpath="$helmutpath/Helmut_Client_Setup_$clientversion.pkg"# Check if the installer package file existsif [ !-f"$installpath" ]; thenecho"Error: Installer package file '$installpath' not found. Aborting."exit1fi# Terminate running Helmut4 instancepkill"Helmut4"echo"Helmut process terminated"# Delete users' moovIT panel cacherm-rf"/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"rm-rf"/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT"rm-rf"/Users/*/Library/Caches/CSXS/cep_cache/AME_*_de.moovit.AME_WS"# Old extensionrm-rf"/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.PREMIERE_WS"# Delete all moovIT panel extensions (safeline version)rm-rf"/Library/Application Support/Adobe/CEP/extensions/de.moovit.AME_WS"rm-rf"/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT"rm-rf"/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"# Old extensionsrm-rf"/Library/Application Support/Adobe/CEP/extensions/de.moovit.PREMIERE_WS"# Delete old Helmut4 applicationrm-rf"/Applications/Helmut4.app"# Install Helmut4installer-pkg"$installpath"-target/Applications/echo"Update finished"# Display dialog messageosascript-e'display dialog "Helmut4 client installed!" with title "MoovIT-Helmut4"'
In general, we recommend removing the extensions from Adobe's CEP and the local user temp folder on Windows. On the Windows side, also delete the local stream-engine.
The latest version of the client installer is included in the server update. If you wish to obtain it in advance, please feel free to submit a ticket.
Va - Update Process Part Two - Server - Stand-alone Installation
Once all clients are running the latest version, we can proceed with updating the server.
This task is straightforward and simple.
#open a ssh session to the serversshusername@ip-address#switch to super usersudosu#run helmut update command (as described on github)helmut-snapshot4.7.1#enter your docker-portainer password (default: admin)#wait till the update is finished#the first start of all containers after a update can take up to 4 minutes - be patient#close sessionexit
Vb - Update Process Part TWO - Server - Cluster Installation
The procedure for a cluster environment closely mirrors that of a standalone environment, with the key distinction being that the update process must be initiated on the server hosting the Portainer instance.
Identification is straightforward; simply open port 9000 on all servers. If the machine functions as a slave, this status will be clearly indicated in the stack message.
Navigate to the Helmut4 stack on the master/leader, click the 'Editor' tab, and ensure that the configuration looks like this:
The server displaying the current stack configuration is the one where the update must be executed.
Consider updating the 'helmut4.snapshot' text file on every cluster node so that it displays the correct Helmut4 version in the dashboard.
Upon successful completion of the update, allow the system one to two minutes for all containers to start. Additionally, we recommend clearing the cache and cookies of the active web browser to prevent display and connection issues.
First, open the debugger and run standard streams such as connected, custom user, or creating/opening projects. If these operations proceed without issues, it confirms the successful completion of the update.
As the next step, we advise checking all streams and replacing any deprecated nodes with their corresponding newer versions. While this task may take some time, it doesn't necessarily have to be completed immediately. However, we recommend doing so in the foreseeable future.
Following these steps, it's recommended to create another backup and save it. If the test system operates without problems for a certain duration, the update can be securely installed on the production system.
The procedure remains the same; however, it's advisable to choose a time period outside the daily production cycle for this process.