Helmut4 Server

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:

Windows Script

Source - MoovIT jitbit KB - Windows script

:: 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/Helmut

set "helmutpath=C:/temp/helmut"
set "clientversion=4.2.0.27"


:: Terminate Helmut process
taskkill /F /IM "javaw.exe"

echo Helmut Process terminated


:: Start Uninstaller

c:
:: Check if Helmut4 has been already installed
if not exist "C:\Program Files\MoovIT GmbH\Helmut4" goto Helmut4-install

cd "C:\Program Files\MoovIT GmbH\Helmut4"
start /wait "" "Uninstall Helmut4.exe" /S

::Wait 10 seconds
timeout /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 cache
Rmdir /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*.jar
for /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 folders

for /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 Client

cd %helmutpath%
set "installer=Helmut_Client_Setup_%clientversion%.exe"

start /wait "" "%installer%" /S

:: Copy the public Helmut client shortcut into the global Windows autostart folder
robocopy "C:\Users\Public\Desktop""C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" *lnk /is

:: Delete public desktop Helmut shortcut
del /f "C:\Users\Public\Desktop\Helmut4.lnk"

echo Helmut has been installed

::Wait 10 seconds
timeout /t 10

exit
```
Macintosh Script

Source - MoovIT jitbit KB - Macintosh script

#!/bin/bash
#Uninstall + Install Helmut Client
#Silent mode as a shell-script
#Version 1.2
#Date: 04/04/2023

sudo su

#set local folder path to installer & client version

helmutpath="/Volumes/MacHD/Users/Shared"
clientversion="4.2.0.27"

installpath="$helmutpath/Helmut_Client_Setup_$clientversion.pkg"


#Terminate running Helmut4 instance
pkill "Helmut4"

echo Helmut process terminated

sleep 2

#Delete all users moovIT panel cache

rm -R "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
rm -R "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT"
rm -R "/Users/*/Library/Caches/CSXS/cep_cache/AME_*_de.moovit.AME_WS"
#Old extension
rm -R "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.PREMIERE_WS"

sleep 2

#Delete all moovIT panel extensions (safeline version)
rm -R "/Library/Application Support/Adobe/CEP/extensions/de.moovit.AME_WS"
rm -R "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT"
rm -R "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
#Old extensions
rm -R "/Library/Application Support/Adobe/CEP/extensions/de.moovit.PREMIERE_WS"

sleep 2

#Delete old Helmut4 application
rm -rf "/Applications/Helmut4.app"

sleep 2

#Install Helmut4
installer -pkg $installpath -target /Applications/


sleep 3

echo "Update finished"

#Pop up message
osascript -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 server
ssh username@ip-address

#switch to super user
sudo su

#run helmut update command (as described on github)
helmut-snapshot 4.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 session
exit

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.

For additional information, please refer to the Helmut4 Cluster System - Misc. configuration.

VI - Verify & check the update

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.