Helmut4
v4.8.1
v4.8.1
  • 👋Welcome to the official Helmut4 documentation
  • GETTING STARTED
    • Overview
      • How to start
      • Helmut4 Modules
      • Deployment Options
    • Tech Specs
      • Helmut4 Server
      • Helmut4 Clients
    • Installation Guide
      • Helmut4 Client
      • Helmut4 Server
        • Helmut4 Single Server
        • Helmut4 Cluster System
    • Upgrade Guide
      • Helmut4 Client
      • Helmut4 Server
        • Docker & Portainer Update
        • Server Host Update & Upgrade
    • Release Cycles
    • Supported Adobe Versions
      • Known Adobe Issues
    • Open API
    • Additional Configurations
      • Define mongodb_backup volume
      • Dynamic share mount into docker
      • Enable https / set SSL certificate
        • Custom p12 certificate
        • Create Local SSL Certificate (Untrusted)
      • Limit docker container RAM usage
      • Define timezone for containers
      • Commonly used ports
  • Helmut4 components
    • HelmutFX
      • Dashboard
      • Projects
        • Add Project
        • Project Status
      • Users
      • Templates
      • Preferences
        • Helmut Variables
        • Job Database Cleanup
        • Modules
          • Flow Module
          • QScan Module
          • ActiveDirectory Module
          • MediaLoopster Module
          • HUE Lamp Module
          • CatDV Module
          • SwatIO Module
          • Grass Valley Stratus Module
          • Active Directory Auto Module
          • Editshare Module
          • RevApp Module
          • Hue Bridges Module
          • Okta Module
      • Languages
      • Metadata
        • Metadata Group
        • Date-Time-Datetime
      • Streams
        • FX Event Triggers
          • CONNECTED
          • CREATE_CATEGORY
          • CREATE_GROUP
          • CREATE_PROJECT
          • CREATE_USER
          • CUSTOM_FX
          • CUSTOM_USER
          • DELETE_CATEGORY
          • DELETE_GROUP
          • DELETE_PROJECT
          • DELETE_TEMPLATE
          • DELETE_USER
          • DISCONNECTED
          • DUPLICATE_PROJECT
          • EDIT_PROJECT
          • IMPORT_PROJECT
          • OPEN_PROJECT
          • POST_CREATE_PROJECT
          • RESTORE_SAVE
          • UNASSIGNED
          • UNLOCK_PROJECT
          • UPLOAD_TEMPLATE
        • Export Streams
        • Import Streams
        • Debug Streams
        • Add Stream
      • License
    • HelmutIO
      • Dashboard
      • Users
      • Profiles
        • Add IO Profile
      • Watchfolder
        • Add Watchfolder
      • Preferences
      • Languages
      • Metadata
        • Metadata Set
      • Streams
        • IO Event Triggers
          • AUTOIMPORT
          • CUSTOM_IO
          • EXPORT
          • IMPORT
          • PANEL_IMPORT
          • PRESTREAM
          • WATCHFOLDER
      • License
    • HelmutCO
      • Dashboard
      • Projects
        • Cosmo-Project View
        • MIME Type
      • Users
      • Profiles
        • Add CO Profile
      • Preferences
      • Languages
      • Metadata
        • Custom Metadata
      • Streams
        • CO Event Triggers
          • ADDED_ASSET
          • INDEXED_ASSET
          • INDEXED_PROJECT
          • UNINDEXED_ASSET
          • WEB_EXPORT
          • WEB_IMPORT
          • WEB_UPLOAD
      • License
    • HelmutHK
      • Dashboard
      • Projects
      • Tasks
        • Add Task
        • Action Button
      • Cron
        • Add Cron Job
      • Users
      • Profiles
        • Add HK Profile
      • Preferences
      • Languages
      • Metadata
      • Streams
        • HK Event Triggers
          • ARCHIVE
          • BACKUP
          • CONSOLIDATE
          • COPY
          • DELETE
          • MOVE
          • RESTORE
      • License
    • Stream Designer
      • Layout
      • Nodes
        • Conditions
          • Project (8)
            • Project Category Condition
            • Project Creator Condition
            • Project Extension Condition
            • Project Group Condition
            • Project Name Condition
            • Project Personal Condition
            • Project Template Condition
            • Project Version of Premiere Condition
          • User (4)
            • User Displayname Condition
            • User Group Condition
            • User Role Condition
            • User Name Condition
          • File and Folder (10)
            • File Appearing Condition
            • File Content Condition
            • File Exists Condition
            • File Growing Condition
            • File Name Condition
            • File Size Condition
            • Folder Appearing Condition
            • Folder Empty Condition
            • Folder Exists Condition
            • Folder Name Condition
          • OS (1)
            • Operating System Condition
          • Media Info (8)
            • Audio Channel Condition
            • Audio Streams Condition
            • Bitrate Codec Condition
            • FPS Condition
            • Media Codec Condition
            • Media Color Space Condition
            • Media Length Condition
            • Media Resolution Condition
          • Misc (5)
            • Empty String Condition
            • IP Condition
            • Regex Match Condition
            • Wildcard Condition
            • Match Multiple Patterns Condition
        • Actions
          • Helmut (6)
            • Helmut Add Users To Group Action
            • Helmut Confirm Dialog Action
            • Helmut Input Dialog Action
            • Helmut Remove Users From Group Action
            • Helmut User Displayname Resolve Action
            • Helmut User Email Resolve Action
          • Project (21)
            • Project Create Action
            • Project File Action
            • Project Metadata Changer Action
            • Project File Download Action
            • Project File Upload Action
            • Project Metadata Remove Action
            • Project Set Category Action
            • Project Set Group Action
            • Project Set Name Action
            • Project Set Path Action
            • Project Set Tag Action
            • Project Tag Delete Action
            • Project Set Template Action
            • Project As JSON
            • Project Delete Action
            • Project from JSON Action
            • Project Import Action
            • Project Import to External Helmut Action
            • Project Lock Action
            • Project Status Update Action
            • Project Update Modification Date Action
            • Project Duplicate Action
          • Job Action
            • Job Download Web Content Action
            • Job Metadata Remove Action
            • Job Metadata Changer Action
            • Job Priority Action
            • Job QScan Action
            • Job Render AAF In Premiere Action
            • Job Render in AME Action
            • Job Render Proxy in AME Action
            • Job Render In Premiere Action
            • Job Render with FFmpeg Action
            • Job Shutdown Adobe After Effects Action
            • Job Shutdown Adobe Media Encoder Action
            • Job Shutdown Adobe Premiere Pro Action
            • Job Start Adobe After Effects Action
            • Job Start Adobe Media Encoder Action
            • Job Start AdobePremiere Pro Action
            • Job Status Update Action
            • Job As JSON Action
            • Job From JSON Action
            • Job Set Project ID Action
            • Job Create Job Action
            • Job Delete Action
            • Job Execute Extendscript in Premiere Action
            • Job Execute Extendscript in After Effects Action
            • Job File Copy Action
            • Job Folder Copy Action
            • Job RClone Actions
              • Job RClone Copy Action
              • Job RClone Cmd Action
              • Job RClone MkDir Action
              • Job RClone Move Action
              • Job RClone Purge Action
              • Job RClone RmDir Action
            • Job Export FCP XML in Premiere
            • Job Create Split Jobs Action (BETA)
            • Job Stitch Splits Action (BETA)
            • Job Demo Action
          • Adobe
            • Adobe DVA Media Cache Settings
          • Premiere Pro
            • Premiere Generate UUID Action
            • Premiere Alert Dialog Action
            • Premiere Confirm Dialog Action
            • Premiere Force Native Lock Action
            • Premiere Native Lock Action
            • Premiere OS Path Mapper Action
            • Premiere Open Choose Dialog Action
            • Premiere Path Settings Action
            • Premiere Prompt Dialog Action
            • Premiere Start Helmut Panel Action
            • Premiere Version Converter Action
          • Cosmo
            • Cosmo Add Asset To Project Action
            • Cosmo Add Info To Sequence Action
            • Cosmo Add Proxy To Project Action
            • Cosmo Change Asset Action
            • Cosmo Get Project Assets Action
            • Cosmo Change Project Asset Action
            • Cosmo Project File Index Action
            • Cosmo Get Project Sequences Action
            • Cosmo Asset Report Action
            • Cosmo Sequence Report Action
            • Cosmo Change Asset Metadata Action
            • Cosmo Delete Asset Metadata Action
            • Cosmo Get Asset Metadata Action
            • Cosmo Update Asset Size and Date
          • After Effects
            • After Effects OS Path Mapper Action
            • After Effects Alert Dialog Action
            • After Effects Open Choose Dialog Action
            • After Effects Prompt Dialog Action
            • After Effects Start Helmut Panel Action
            • Job Execute ExtendScript In After Effects Action
            • Job Start After Effects Action
          • Third Party
            • Editshare
              • Editshare File System
                • Editshare Set ACL Action
                • Editshare Delete ACL Action
                • EFS Create User Action
                • EFS Delete User Action
                • EFS Add Users To Group Action
                • EFS Remove User From Group Action
                • EFS Add Users To Media Space Action
                • EFS Remove Users From Media Space Action
                • EFS Create Group Action
                • EFS Remove Group Action
                • EFS Add Group To Media Space Action
                • EFS Remove Group From Media Space Action
                • EFS Create Media Space Action
                • EFS Delete Media Space Action
                • EFS Update Media Space Action
                • EFS Get Media Space DATA Action
                • EFS Get Free Space Of Media Space Action
                • Mount EFS Volume (macOS) Action
                • Mount EFS Volume (Windows) Action
              • Editshare Flow
                • Flow Create Path Action
                • Flow Add Asset To Project Action
                • Flow Delete Path Action
                • Flow Toggle Private Project Action
            • Philips Hue
              • Hue Bridge Group On Action
              • Hue Bridge Group Change Action
              • Hue Bridge Group Off Action
              • Hue Bridge Lamp On Action
              • Hue Bridge Lamp Change Action
              • Hue Bridge Lamp Off Action
            • Quantum
              • CatDV
                • CatDV Add Asset to Catalog Action
                • CatDV Create Catalog Path Action
                • CatDV Delete Catalog Path Action
                • SwatIO Job Upload Action
            • Medialoopster
              • Medialoopster Add Asset To Project Action
              • Medialoopster Create Project Action
              • Medialoopster Delete Asset From Project Action
              • Medialoopster Delete Project Action
              • Medialoopster Update Project Delete Date Action
            • Grassvalley
              • Stratus | Framelight X
                • Stratus Create Asset Action
                • Stratus Create Project Action
                • Stratus Generate Unique ID Action
                • Stratus Patch Asset Action
                • Stratus Project Indexed Action
                • Stratus Project Status Action
                • Stratus Transfer Asset Action
                • Stratus Trigger Momentum Action
                • Stratus Add Asset to Folder Action
                • Stratus Get All Folders Action
                • Stratus Create Folder Action
                • Stratus Update Project Path Action
                • Stratus Asset Add Folder Membership Action
                • Stratus Change Project Metadata Action
            • Telestream
              • Aurora
                • Aurora Submit Job Action
              • Diva
                • Diva Archive Content Action
                • Diva Delete Content Action
                • Diva Restore Content Action
              • Vantage
                • Vantage Submit Job Action
                • Vantage Remove Job Action
            • RevApp
              • RevApp Share Asset By Email Action
              • RevApp Share Asset Public Link Action
              • RevApp Share Asset with Internal Group Action
              • RevApp Upload Asset To Namespace Action
              • RevApp Delete Asset From Namespace Action
            • Hiscale
              • Hiscale Jobs Start Process Action
            • Elements
              • Elements Add Permissions To Workspace Action
              • Elements Add Users To Groups Action
              • Elements Compare To Helmut User Action
              • Elements Copy Files Action
              • Elements Create API token Action
              • Elements Create Groups Action
              • Elements Create Directories Action
              • Elements Create Media Root Action
              • Elements Create Production Action
              • Elements Create Share Action
              • Elements Create Users Action
              • Elements Create Workspace Action
              • Elements Delete Files Action
              • Elements Delete Files From Media Library Action
              • Elements Delete Groups Action
              • Elements Delete Directories Action
              • Elements Delete Media Root Action
              • Elements Delete Production Action
              • Elements Delete Share Action
              • Elements Delete Users Action
              • Elements Delete Workspaces Action
              • Elements Get Client Key Action
              • Elements Get Free Space Of Workspace Action
              • Elements HTTP Request Action
              • Elements Mount Workspaces On Client Action
              • Elements Move Files Action
              • Elements Remove Permissions From Workspace Action
              • Elements Remove Users From Groups Action
              • Elements Start Job Action
              • Elements Unmount Workspaces From Client Action
              • Elements Update Workspace Quota Action
              • Elements Upload File Into Media Library Action
            • Arvato
              • Vidicore
                • VidiCore Add Collection To Collection Action
                • VidiCore Add Deletion Lock To Collection Action
                • VidiCore Add Deletion Lock To File Action
                • VidiCore Add Deletion Lock To Item Action
                • VidiCore Add External ID To Item Action
                • VidiCore Add Item To Collection Action
                • VidiCore Add Key Value Metadata To File Action
                • VidiCore Add Key Value Metadata To Library Action
                • VidiCore Add Library To Collection Action
                • VidiCore Add Metadata Field Values To Collection Action
                • VidiCore Add Metadata Field Values To Item Action
                • VidiCore Create Collection Action
                • VidiCore Delete Collection Action
                • VidiCore Delete Item Action
                • VidiCore Get Item ID By File Path Action
                • VidiCore Get Token
                • VidiCore Import File Into New Item Action
                • VidiCore Remove Collection From Collection Action
                • VidiCore Remove Deletion Lock From Collection Action
                • VidiCore Remove Deletion Lock From File Action
                • VidiCore Remove Deletion Lock From Item Action
                • VidiCore Remove Item From Collection Action
                • VidiCore Remove Key Value Metadata From File Action
                • VidiCore Remove Key Value Metadata From Library Action
                • VidiCore Remove Library From Collection Action
                • VidiCore Remove Metadata Field Values From Collection Action
                • VidiCore Remove Metadata Field Values From Item Action
                • VidiFlow Trigger Workflow
              • VPMS
                • VPMS Check-in Action
                • VPMS Metadata Update Action
          • File and Folder
            • File Copy Action
            • File Create Action
            • File Delete Action
            • File Increment Name Action
            • File Move Action
            • File Open Action
            • File Rename Action
            • File Replace Content Action
            • Folder Content Delete Action
            • Folder Copy Action
            • Folder Create Action
            • Folder Delete Action
            • Folder Increment Name Action
            • Folder Move Action
            • Folder Rename Action
            • XSquare File Check In Action
            • 7-Zip Archive Action
            • 7-Zip Extract Action
            • 7-Zip CLI Action
            • Get Files From Folder Action
            • Get Folder From Folder Action
          • OS
            • Commandline Execute Action
            • Unmount A Share Action
          • MISC
            • Execute Javascript Action
            • Fail Action
            • HTTP Request Action
            • JSON Extract Action
            • Metadata Auto Mapper Action
            • Regex Apply Action
            • Sleep Action
            • Split Stream Action
            • Stream Execute Generic Stream Action
            • Stream Set Temporary Variable Action
            • Stream Set Store Variable Action
            • Stream Get Store Variable Action
            • Stream Delete Store Variable Action
            • Success Action
            • XPath Action
          • Mediainfo
            • FFprobe as Json Action
            • Mediainfo As Json Action
        • Outputs
          • File and Folder (1)
            • Write File Output
          • OS (1)
            • macOS System Notification Output
          • Misc (3)
            • Send Email Output
            • Telegram Output
            • Send Message To Teams Channel
          • User (2)
            • Send Message to User
            • Send Notification to User
      • Wildcards
        • Helmut Wildcards (9)
          • Helmut Groups
          • Helmut Profile
          • Helmut Projects
          • Helmut Templates
          • Helmut Profiles
          • Helmut User Displaynames
          • Helmut User Emails
          • Helmut User IPs
          • Helmut Usernames
        • Date & Time (21)
          • Calendar Week
          • Date Day ?
          • Date Day
          • Date Month ?
          • Date Month
          • Date Month Textual
          • Date Month Textual ?
          • Date Month Textual Short
          • Date Month Textual Short ?
          • Date Year ?
          • Date Year
          • Date Shortyear ?
          • Date Shortyear
          • Convert Date To Timestamp ?
          • Convert Timestamp To Date ?
          • Convert Timestamp To Datetime ?
          • Date Decrement Days ?
          • Date Increment Days ?
          • Time Hour
          • Time Minute
          • Time Second
        • File-related Wildcards (5)
          • File Content ?
          • File Exists ?
          • File MD5 ?
          • File Modified ?
          • File Size ?
        • Folder-related Wildcards (4)
          • Folder Content ?
          • Folder Exists ?
          • Folder Modified ?
          • Folder Size ?
        • Job-related Wildcards (32)
          • Job AssetID
          • Job AssetNodeID
          • Job AssetObjectUUID
          • Job Breadcrumb
          • Job Current_Asset
          • Job Custom ?
          • Job Destination
          • Job ID
          • Job In_To_Out
          • Job Last Proxy
          • Job Last Source
          • Job Metadata ?
          • Job MimeType ?
          • Job MimeType
          • Job Name
          • Job Profile
          • Job Progress
          • Job ProjectItemID
          • Job Proxy
          • Job Sequences
          • Job Source Type
          • Job Source
          • Job Status_Message
          • Job Total_Assets
          • Job Tries
          • Job Unique
          • Job User Displayname
          • Job User Email
          • Job User ID
          • Job User Name
          • Job User Role
          • Job Watchfolder
        • Local Environment-related Wildcards (6)
          • Local AE Preferences ?
          • Local Environment ?
          • Local Home
          • Local OS
          • Local Profile ?
          • Local Registry ?
          • Local Username
        • Path-related Wildcards (9)
          • Path Basename ?
          • Path Extension ?
          • Path Map Auto ?
          • Path Map To Unix ?
          • Path Map To Win ?
          • Path Map To JSON ?
          • Path Name ?
          • Path Parent ?
          • Path Split ?
        • Project-related Wildcards (27)
          • Project Category
          • Project Create_Date
          • Project Creator
          • Project Custom ?
          • Project Extension
          • Project Group
          • Project ID
          • Project Last_Modified_Date
          • Project Locked Status
          • Project Locked
          • Project Metadata ?
          • Project Modified_By
          • Project Name
          • Project Parent
          • Project Path
          • Project Savepath
          • Project Source Category
          • Project Source Custom ?
          • Project Source Extension
          • Project Source Group
          • Project Source ID
          • Project Source Locked
          • Project Source Metadata ?
          • Project Source Name
          • Project Source Path
          • Project Source Tag
          • Project Source Template
          • Project Tag
          • Project Template
        • String-related Wildcards (9)
          • String Split ?
          • String length ?
          • String Case To Camel ?
          • String Case To Kebab ?
          • String Case To Lower ?
          • String Case To Pascal ?
          • String Case To Snake ?
          • String Case To Upper ?
          • String Words Count
        • User-related Wildcards (10)
          • User Client
          • User Display_Name
          • User Email
          • User Groups
          • User IP
          • User Last Login
          • User Name
          • User OS
          • User Password
          • User Role
        • Variable-related Wildcards (3)
          • Stream Variable ?
          • Helmut Variable ?
          • Store Variable ?
        • Result | Return Wildcards (2)
          • Node Result ?
          • Stream Last_Result
        • Misc wildcards (3)
          • Generate UUID
          • Stream Log
          • Stream Resolve_ID
        • Undocumented Wildcards (1)
          • Environment Variable Bypass Wildcard
      • Deprecation warning
      • Stream Debugger
      • Stream Variable Store
    • Streaming Engine
    • Helmut4 Client
    • Helmut4 Panel
      • Panel-Dashboard
      • Panel-Export
      • Panel-Cosmo
      • Panel Debugging
  • Release Notes
    • What's New
    • Changelog
      • Docker Image Version History
  • Support
    • Requesting Support
    • Response and Resolution Times
    • Debug | Log collection
      • Helmut4 client
        • Retrieve the helmut4 client log
        • Check if ports are used by other apps
        • Check existence of MoovIT authority certificate on windows client
        • Run helmut4 client in debug mode
        • Panel debug ports
        • Local Client API
        • Check installed Helmut extensions
      • Helmut4 server
        • Retrieve helmut4 container log
        • Stack already exists
        • Check RAM & CPU usage of containers
        • Verify RSA keys for SSL certificate
        • Purge Docker & Components
Powered by GitBook
On this page
  • Installation
  • Docker Swarm - Cluster Prerequisites
  • DNS / SSL / Load Balancer
  • Prerequisites
  • Network storage
  • Docker environment
  • Additional dependencies
  • Docker swarm configuration
  • Portainer configuration
  • Setting up MoovIT docker repository
  • Deploy cluster stack
  • Create mongodb replica set
  • Misc configuration
  • Snapshot Server version
  • Helmut4 Server update script
  • Mount network shares into Docker
  • Setting up mongobackup volume
  • Optional network adjustment
  • Updating Helmut4
  1. GETTING STARTED
  2. Installation Guide
  3. Helmut4 Server

Helmut4 Cluster System

Last updated 2 months ago

Installation

The installation of this system has higher complexity compared to a single-server instance, necessitating in advance.

Docker Swarm - Cluster Prerequisites

Ensure that you thoroughly review the beforehand to comprehend the technical architecture, particularly in scenarios where one or multiple worker nodes may not be available.

DNS / SSL / Load Balancer

For ease of access, it is also recommended to use a user-friendly DNS name (e.g., "helmut4") rather than relying on IP addresses or long, complex DNS names, simplifying access for end user.

Please note that both the external load balancer and the SSL certificate are required to be provided by the customer.

Prerequisites

Before commencing the installation, ensure seamless communication between the servers via the network. Consider storing the hostname-IP/DNS reference in /etc/hosts.

Ensure that no pre-configured Docker or Portainer is already installed on the system.

Network storage

Helmut4 is storage-agnostic, meaning the system requires at least one share to function properly, though it can work with multiple shares. Each share must be mounted on the Linux host system and within specific Docker containers.

Ensure at least one storage is mounted via fstab before initiating the installation, as it is essential for the process.

This step needs to be performed on every server individually.

Docker environment

As Helmut4 operates within a Docker environment, the installation of these components is necessary. If the host is in a restricted network, it may be required to install these components in advance or temporarily allow access to the corresponding repositories.

This installation must be carried out individually on each server.

#Ubuntu
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Additional dependencies

In addition, these two dependencies are required for Helmut4:

  • httpie

  • jq

sudo apt install httpie jq

Docker swarm configuration

Initiate SSH connections to all servers and execute the following command on the initial server host:

docker swarm init
docker swarm join-token manager

Copy the provided token and paste it onto all other hosts to designate them as managers:

#structure of the token
docker swarm --token <join-token> <vmhostname>:2377

Verify the newly created Swarm cluster by executing the following command:

docker node ls
Example result of a successful docker swarm
ID                            HOSTNAME     STATUS    AVAILABILITY   MANAGER STATUS
aw9wmcjh35rk6 *   h4-swarm01   Ready     Active         Leader           23.0.6
a3hfmdjrafsty     h4-swarm02   Ready     Active         Reachable        23.0.6
91dnkzq3kg7y4     h4-swarm03   Ready     Active         Reachable        23.0.6

Portainer configuration

Following the successful installation of the Docker environment and the creation of the Swarm cluster, it is essential to set up Portainer on each host.

#latest ce (community edition)
#for business edition change ce to be
docker run -it -d --restart=always -p 9000:9000 --name=portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts --admin-password='$2y$05$WbcqfTqVa2T58lGrLO7Tp.30DMjKFo.6O4.XAmfBFg4a0jrVSbdW.' -H unix:///var/run/docker.sock

By default, the Helmut4 installation script / installation guideline installs Portainer CE (Community Edition). Switching from CE to EE (Enterprise Edition) can be done without any issues.

Proceed to the main host and access Portainer, which operates on port 9000:

Portainer web GUI http://ip-helmutserver:9000

The default login credentials are set to admin/admin.

We strongly recommend changing this password as soon as possible!

Setting up MoovIT docker repository

Navigate to Registries and configure a new custom repository.

MoovIT registry for Portainer

It is important to write the URL at the end with :443, otherwise the images will not be loaded when deploying the Helmut stack!

Repeat this steps on every other host.

Deploy cluster stack

Download the stack file for the cluster from this link:

https://repo.moovit24.de/install/config/docker-compose-swarm.yml

Navigate to Portainer on the main host and create a new stack:

Primary -> Stacks -> Add stack
Name: helmut4
Web editor: paste content from the .yml file

Please consider to change the hostnames in the mongodbrs images to
match the existing hostnames!

Click 'Deploy' and wait until all instances of the 'mongodbrs' container have been deployed to every host before proceeding with the next steps.

Create mongodb replica set

Now, create a MongoDB replica set. Establish an SSH connection to the main host and execute the following commands:

#establish a connection to the mongodbrs container
#request username + password via email: support@moovit.de
docker exec -it $(docker ps | grep -i mongodb1 | awk '{ print $1 }') mongo -u USER -p PASSWORD -authenticationDatabase=admin

#create new replica set
rs.initiate()

#add nodes to the replica set
rs.add("mongodb2:27017")
## --> if you got an error 74 and running on a Virtual Maschine on VMWare
## (Quorum check failed ... nodes did not respond affirmatively: mongodb2:27017 ... Couldn't get a connection within the time limit")
## Please check the following information
## --> https://docs.helmut.de/helmut4-releases/getting-started/installation-guide/helmut4-server/helmut4-cluster-system#possible-network-adjustments-eg-for-vmware-esxi
rs.add("mongodb3:27017")

config=rs.config()

#set master
config.members[0].host="mongodb1:27017"
rs.reconfig(config,{force:true})

#verify replica set
rs.status()


#define mongodb priority: primary-secondary
var c = rs.config()
#mongodb1 = primary
c.members[0].priority = 100
#mongodb2 = secondary
c.members[1].priority = 50
#mongodb3 = secondary
c.members[2].priority = 50

#save priority configuration
rs.reconfig(c,{force: true})

#list primary mongodb
rs.status().members.find(r=>r.state===1).name

Misc configuration

Snapshot Server version

On every host, create a text file containing the current snapshot version.

mkdir /etc/helmut4
echo "4.6.1" > /etc/helmut4/helmut4.snapshot

Helmut4 Server update script

Configure the 'helmut-update' and 'helmut-snapshot' commands, both of which are employed for updating Helmut4.

#Ubuntu/CentOS
echo -e "#/bin/bash\\ncurl -s https://repo.moovit24.de/install/update.sh | bash" > /usr/sbin/helmut-update && chmod a+x /usr/sbin/helmut-update
echo -e "#/bin/bash\\ncurl -s https://repo.moovit24.de/install/snapshot.sh | bash -s \${1}" > /usr/sbin/helmut-snapshot && chmod a+x /usr/sbin/helmut-snapshot

#Debian
echo -e "#/bin/bash\\ncurl -s https://repo.moovit24.de/install/update.sh | bash" > /usr/bin/helmut-update && chmod a+x /usr/bin/helmut-update
echo -e "#/bin/bash\\ncurl -s https://repo.moovit24.de/install/snapshot.sh | bash -s \${1}" > /usr/bin/helmut-snapshot && chmod a+x /usr/bin/helmut-snapshot

Mount network shares into Docker

Each drive intended for system inclusion must undergo mapping into the container. This involves first mounting the drive at the operating system level. Once mounted at the operating system level, the drive is then mapped into the Docker container using the following process:

Drive on operating system level: /mnt/helmut

Drive on Docker container level: /Volumes/helmut

Drive mapped between operation system level and Docker container: /mnt/helmut_1:/Volumes/helmut_1

The 'mnt to Volumes' mapping is established to facilitate seamless workflows on Mac OS X, with every network share being mounted to /Volumes.

There are five distinct containers that consistently require access to specific volumes to execute designated tasks. For instance, if the server is tasked with creating projects on a designated volume, that volume must be mapped into the FX Container, as this container is responsible for project creation.

To add a volume to a container, follow these steps:

  • click on “primary”

  • click on “stacks”

  • click on “helmut4”

  • click on the tab “Editor"

Locate the following services (fx, io, co, streams, users) and adjust the volumes entry accordingly.

Include or modify the volumes as needed, and click 'Update Stack' once you have completed this task.

For instance, include the shared folder 'testing,' mapped on the host, into the directory /mnt/testing.

volumes:

- /etc/localtime:/etc/localtime:ro

- /mnt/helmut:/Volumes/helmut

- /mnt/testing:/Volumes/testing

Setting up mongobackup volume

Optional network adjustment

Consider potential network adjustments, such as those applicable to VMware ESXi.

On certain hosts, such as VMware, it may be necessary to adjust the network interface settings. If not all containers are starting, consider checking the checksum settings on each host/network adapter.

Retrieve the current status by executing the following command on each host, replacing 'INTERFACENAME' with your specific interface name (e.g., eth0, ens32, etc.).

ethtool -k <INTERFACENAME> 2>&1 | egrep 'tx-checksumming|rx-checksumming'

Working result: rx-checksumming: off tx-checksumming: off

Not working result: rx-checksumming: on tx-checksumming: on

If your result is 'on,' it is necessary to disable checksumming.

Use the following commands to persistently set tx/rx checksum to 'off' after reboot on Ubuntu TLS:

nano /etc/networkd-dispatcher/routable.d/10-disable-rxtxchecksum

Add the following content and replace it with your INTERFACE NAME (e.g., eth0, ens32, etc.):

#!/bin/sh
ethtool -K <INTERFACENAME> tx off rx off

Save the script and adjust file permissions. Afterward, reboot the host:

#set rights for execution
chmod +x /etc/networkd-dispatcher/routable.d/10-disable-rxtxchecksum
#reboot the host
reboot

After the server reboots, verify the checksum status:

ethtool -k <INTERFACENAME> 2>&1 | egrep 'tx-checksumming|rx-checksumming'

Updating Helmut4

Helmut 4 offers two update channels - main/stable and development.

For optimal performance, customers are advised to deploy an external load balancer to efficiently distribute incoming traffic across available machines. The load balancer can be implemented as a dedicated hardware appliance, a software-based solution, or via a DNS-based routing configuration, depending on deployment needs and performance requirements. Additionally, a dedicated —with an associated DNS name—must be configured to ensure secure, encrypted communications.

Please refer to the Docker installation guidelines provided in the

However, please note that EE requires a valid license. For updating Portainer, please follow the instructions in the guide.

Name: MoovIT GmbH URL: repo.moovit24.de:443 Authentication: true Username: request via email: Password: request via email:

We recommend manually Helmut4 to the latest snapshot release following the completion of the previous configuration steps.

For additional information, please navigate to the following link:

For more information, please refer to the section.

SSL certificate
official docker documentation
Docker & Portainer Update
support@moovit.de
support@moovit.de
Define mongobackup volume
Upgrade Guide - Helmut4 Server
updating
additional preparations
official Docker Swarm documentation
Docker swarm - fault tolerance
Configure images within stack
https://docs.docker.com/engine/swarm/admin_guide/#add-manager-nodes-for-fault-tolerance