Automated deployment

You can deploy Helix DAM and its required components automatically by using the Helix TeamHub command-line interface (CLI). This deployment method is faster and requires fewer steps than the manual deployment.

Important

The automated deployment using the Helix TeamHub CLI is currently a Technology Preview. Features offered in Technology Preview are experimental and not guaranteed to always work as expected. If you have feedback and functionality suggestions, email techpreview@perforce.com.

To deploy Helix DAM on premises or in your cloud environment, review the following information. To learn more about the TeamHub CLI, see Helix TeamHub Help.

Components deployed

The following components are automatically installed and configured during deployment:

  • Elasticsearch instance – A search and analytics engine that indexes asset information for Helix Search.
  • Helix Search – An API used by Helix DAM to search and automatically tag your assets.

  • Helix DAM – A web-based interface that streamlines the process of finding, reviewing, using, repurposing, and sharing assets. Helix DAM is built on top of Helix TeamHub. When you deploy Helix DAM, a Standard setup is automatically deployed. The Helix TeamHub packages used during the deployment contain Helix DAM.

Helix Core Server must be installed and configured before you deploy Helix DAM. See Helix Core Server requirements.

Before deployment

Ensure that the following requirements are met before you start to deploy Helix DAM.

Helix Core Server requirements

Helix Core Server must be installed. If it is not, install and configure Helix Core Server by following the instructions in Helix Core Server is not installed.

Supported Helix Core Server versions

Helix DAM works with supported versions of Helix Core Server under Standard Maintenance.

The versions supported for Helix DAM 2024.6 are:

  • Helix Core Server 2023.1

  • Helix Core Server 2023.2

  • Helix Core Server 2024.1

Ensure you are using the latest patch of the supported Helix Core Server version.

Helix Core Server configuration

Helix DAM requires the following configuration for the Helix Core Server:

  • Assets must be stored in Helix Core stream depots or classic (local) depots. Helix DAM does not support other depot types.

Information you need about the Helix Core Server

You need the following information about the Helix Core Server before you deploy Helix DAM:

  • Helix Core Server hostname and port (P4PORT). You can use the master server or the commit server in a commit-edge environment.

  • Fingerprint if the server is running the Secure Socket Layer (SSL) protocol. To get the fingerprint, on the P4 command line, run the following command:
    p4 trust

  • Username and password/ticket for a super user configured on the server. This user must have super permissions, unlimited timeouts, and an all hosts ticket. An existing super user with these settings can be used for Helix DAM. To add a super user, follow the instructions in Creating a super user on the Helix Core Server.

  • Character set (P4CHARSET) used on the server for translation of Unicode files.

Other requirements

Ensure that the following prerequisites are met:

  • Hardware - Review the hardware requirements for Elasticsearch and Helix DAM. We do not recommend installing all components on the same server except for evaluation purposes. If all components are installed on the same server, the minimum memory requirement is 8 GB.

  • Firewall

  • Operating system

Deployment overview

The deployment automatically detects the operating system of the servers you specify to host the Elasticsearch, Helix Search, and Helix DAM installations, installs the required packages and dependencies, and performs configuration steps. MongoDB, Redis, and Elasticsearch credentials are automatically assigned during deployment and stored in the configuration files for each component.

To deploy Helix DAM by using the automated method, complete the following steps:

  1. Install the Helix TeamHub CLI

  2. Check the SSH connectivity to destination servers and configure no password for sudo access

  3. Provide the deployment information for Helix Core, Elasticsearch, Helix Search, and Helix DAM

  4. Verify the deployment information

  5. Deploy the components

  6. Verify the deployment

  7. Configure password required for sudo access on the destination servers

  8. Modify Elasticsearch settings

After you deploy Helix DAM, you can configure additional settings. For example, you might want to allocate additional memory, provide enhanced security, or enable backups. To learn more, see Optional configuration after deployment.

Step 1: Install Helix TeamHub CLI

You need the Helix TeamHub CLI to deploy Helix DAM.

  1. Download Helix TeamHub CLI for your operating system. Helix TeamHub CLI is supported on Linux, macOS, and Windows.

  2. When the download is complete, extract the files and access the binary file in the bin folder from a command prompt.

    You can now add the destination servers to your known hosts list by logging in to them with SSH. See Step 2: Check SSH connectivity to destination servers and configure sudo to run with no password.

Important

Do not run hth setup or follow the hth-cli help. They are intended for use with existing Helix TeamHub installations. Use only the following instructions for initial Helix DAM deployment.

Step 2: Check SSH connectivity to destination servers and configure sudo to run with no password

Before using the hth-cli tool:

  • Each of the destination servers must be in the list of known hosts for your computer.

  • The deployment process needs to be able to run sudo without a password on the destination servers during deployment.

    Important

    When the deployment is complete, you must configure all of the destination servers back to requiring a password for sudo access. This helps to secure sudo access on the servers. See Step 7: Configure password required for sudo access on the destination servers.

  1. To add a destination server to your list of known hosts, log in to the destination server with the username used in the SSH configuration of the destination server.

  2. To configure sudo to run without a password on the destination server, open the /etc/sudoers file in an editor.

  3. At the end of the sudoers file, add the following line:

    $USER ALL=(ALL) NOPASSWD: ALL

    where $USER is the installation user for the destination server.

  4. Save the sudoers file.

  5. Repeat for all of the destination servers for your deployment.

You can now start deploying Helix DAM, starting with providing the deployment information. See Step 3: Provide the deployment information.

Step 3: Provide the deployment information

Before deployment, you must provide information about each component in the Helix TeamHub CLI. Provide the information in the following order:

  • Helix Core

  • Elasticsearch

  • Helix Search

  • Helix DAM

To set up the deployment information, follow the prompts in Helix TeamHub CLI. Use the arrows to move up and down to select options. Press Enter to confirm selections and submit entered values.

  1. From a command prompt, enter the following command:

    hth admin setup

    Tip

    To open this help from the CLI, select [show help].

  2. To create a deployment, select [create].

  3. Enter a Deployment Name that uniquely identifies the deployment.

  4. Select [edit components].

Helix Core Server

Provide details about your Helix Core Server. The Helix Core Server must be installed before deploying Helix DAM.

  1. Select [create].

  2. Select Helix Core Server.

  3. Select [edit details].

  4. Enter or select the Helix Core Server information.

    Value Description More information
    P4PORT Hostname or IP address and port for your Helix Core Server in one of the following formats:
    host:port
    ssl:host:port.
     
    Username Username for a Helix Core Server user with super privileges and an unlimited ticket timeout. Must be 2 - 100 characters. Cannot contain spaces. Valid characters: A-Z, a-z, 0-9,-, _ Creating a super user on the Helix Core Server
    Password or Ticket Password or ticket generated for the super user. The super user must have unlimited ticket timeout and an all hosts ticket.
    Creating a super user on the Helix Core Server
    Charset P4CHARSET used by the Helix Core Server Setting up a server for Unicode in the Helix Core Server Administrator Guide
    Fingerprint (if SSL) If you connect to Helix Core Server using an SSL connection, enter the fingerprint of the key received for SSL connections. To get the existing fingerprint, on the P4 command line, run the following command:
    p4 trust -1
    p4 trust in the Helix Core Command-Line (P4) Reference
  5. Select [back] until Helix Core Server is displayed.

    The Helix Core Server configuration is complete and you can now configure Elasticsearch.

Elasticsearch

Provide details about the computer where Elasticsearch is or will be installed. You can provide details for an existing Elasticsearch instance or a new instance.

Helix DAM supports Elasticsearch 8.7.x to 8.15.3. Helix Search may support different versions of Elasticsearch. Make sure you use a version supported by Helix DAM.

  1. Select [create].

  2. Select Elasticsearch.

  3. Select [edit servers].

  4. Select [create].

  5. Enter the Hostname or IP Address for the computer that hosts Elasticsearch.

  6. Select [edit ssh configuration].

  7. Enter or select the following information.

    Value Description
    Port SSH protocol port. Default port is 22.
    Username Source Source for the username to log in to the computer that will host Elasticsearch:
    • system - Use the currently logged in user on the local computer.

    • custom - Use a specified username.

    Authentication Method Authentication method used to log in to the computer that will host Elasticsearch using SSH:
    • agent - Use an SSH agent configured on your computer.

    • key - Use an SSH key. Enter the path and password.

    • protected_key - Use a password-protected SSH key. Enter the path and password.

    • password - Use a password. Enter the password.

  8. Select [back] until Helix Core Server and Elasticsearch are displayed.

    The Elasticsearch configuration is complete and you can now configure Helix Search.

Helix Search

Provide details about the computer to install Helix Search on.

  1. Select [create].

  2. Select Helix Search.

  3. Select [edit servers].

  4. Select [create].

  5. Enter the Hostname or IP Address for the computer to install Helix Search on.

  6. Select [edit ssh configuration].

  7. Enter or select the following information.

    Value Description
    Port SSH protocol port. Default port is 22.
    Username Source Source for the username to log in to the computer that will host Helix Search:
    • system - Use the currently logged in user on the local computer.

    • custom - Use a specified username.

    Authentication Method Authentication method used to log in to the computer that will host Helix Search using SSH:
    • agent - Use an SSH agent configured on your computer.

    • key - Use an SSH key. Enter the path and password.

    • protected_key - Use a password-protected SSH key. Enter the path and password.

    • password - Use a password. Enter the password.

  8. Select [back] until until Helix Core Server , Elasticsearch , and Helix Search are displayed.

    The Helix Search configuration is complete and you can now configure Helix DAM. See

Helix Digital Asset Management (DAM)

Provide details about the computer to install Helix DAM on and additional configuration information.

  1. Select [create].

  2. Select Helix Digital Asset Management (DAM).

  3. Select [edit details].

  4. Enter the following information.

    Value Description
    Hostname Helix DAM instance hostname. Helix DAM uses this hostname in URLs, email links, and API requests. Even though Helix DAM can be configured to use an IP address or another hostname assigned to the server, the preferred method is to use a delegated alias (CNAME) or name (A) to simplify future server relocation.
    Email Email address to use for all outgoing Helix DAM emails
    Default Company Default company short name (company ID) to use for logging in. Must be 2 - 100 characters. Cannot contain spaces. Valid characters: A-Z, a-z, 0-9,-, _
    Integration Bot Name (dam-integ-bot) Name of a company admin bot used by Helix Core extensions to call the Helix DAM API. Must be 2 - 100 characters. Cannot contain spaces. Valid characters: A-Z, a-z, 0-9,-, _
  5. Select [edit servers].

  6. Select [create].

  7. Enter the Hostname or IP Address for the computer to install Helix DAM on.

  8. Select [edit ssh configuration].

  9. Enter or select the following information:

    Value Description
    Port SSH protocol port. Default port is 22.
    Username Source Source for the username to log in to the computer that will host Helix DAM:
    • system - Use the currently logged in user on the local computer.

    • custom - Use a specified username.

    Authentication Method Authentication method used to log in to the computer that will host Helix DAM using SSH:
    • agent - Use an SSH agent configured on your computer.

    • key - Use an SSH key. Enter the path and password.

    • protected_key - Use a password-protected SSH key. Enter the path and password.

    • password - Use a password. Enter the password.

  10. Select [back] until [exit] is displayed.

  11. Select [exit].

    Deployment configuration is complete. You can now verify the deployment information. Step 4: Verify the deployment information.

Step 4: Verify the deployment information

Before running the deployment, consider using the automated verification to ensure the configuration is ready to deploy. You can also manually verify that all information you entered and selected for each component is correct. The information is written to the admin_config.json configuration file in the user's home directory. To learn more, see Admin configuration file.

Use the arrows to move up and down to select options. Press Enter to confirm selections and submit entered values.

Automated verification

  1. Enter the following command:

    hth admin verify

  2. Select the verification tests to run.

    Value Description
    Check SSL connection Verifies connections to all servers in the configuration.
    Check if 'sudo' command is available without a password Verifies that you can run the sudo command on all servers in the configuration without a password.
    Check if operating system and version are supported Verifies that the operating systems and versions of the servers in the configuration can run the required components.
    Check server resources Verifies that the available memory, number of processors, and available storage of the servers in the configuration can run the required components.
    Check Helix Core configuration and connection Verifies the connection to Helix Core Server, the fingerprint, the license, and the character set.
  3. If there are any failures, use the information displayed to fix the errors.

    You can now start deployment. See Step 5: Deploy the components.

Manual verification

  1. Enter the following command:

    hth admin config show

    The configuration info is displayed. To learn more about the values, see Admin configuration file.

  2. Review the information for accuracy.

  3. To make any changes, enter the following command:

    hth admin config edit

    The configuration file opens in your default editor for JSON files.

  4. Make any changes.

  5. Save the file.

    You can now start deployment. See Step 5: Deploy the components.

Step 5: Deploy the components

After specifying and verifying information for all components, you can start deployment.

Tip

All deployment log messages are available in the admin_config.log file in the user's home directory.

  1. Enter the following command:

    hth admin deploy -v

  2. Select the deployment you configured.

  3. Select the component to deploy. Components must be deployed in the following order:

    • Elasticsearch

    • Helix Search

    • Helix DAM

  4. Select the server to deploy the component to.

    Tip

    You might have to wait several minutes for the deployment process to complete, depending on the component and the connection speed.

  5. Repeat steps 3 and 4 to deploy the remaining components.

    You can now verify successful deployment of all components. Step 6: Verify the deployment.

Step 6: Verify the deployment

Verify successful deployment of Helix DAM and the other components by using a browser to access each component.

Component How to check More information
Elasticsearch Use the hostname or IP address and port number you specified for Elasticsearch --
Helix Search Use the hostname or IP address and port number you specified for Helix Search --
Helix DAM Log in to the Helix TeamHub Admin web UI and check the following pages for errors: --
Preferences Setting the Helix DAM instance hostname
Helix DAM Configuring Helix DAM settings
Helix Extensions Configuring Helix Core Server extensions

You must configure all of the destination servers back to requiring a password for sudo access. See Step 7: Configure password required for sudo access on the destination servers.

Step 7: Configure password required for sudo access on the destination servers

Now that the deployment is complete, you must configure all of the destination servers back to requiring a password for sudo access. This helps to secure sudo access on the servers.

  1. Log in to the destination server with the username used in the SSH configuration of the destination server.

  2. To set sudo to run with a password on the destination server, open the /etc/sudoers file in an editor.

  3. At the end of the sudoers file, remove the following line:

    $USER ALL=(ALL) NOPASSWD: ALL

    where $USER is the installation user.

  4. Save the sudoers file.

  5. Repeat for all of the destination servers for your deployment.

You can now modify the Elasticsearch settings to get it ready for use in your production environment. See Step 8: Modify Elasticsearch settings.

Step 8: Modify Elasticsearch settings

The Helix DAM deployment provides minimal configuration for Elasticsearch. You must modify the settings to ensure that Elasticsearch is ready for use in your production environment.

Review and modify settings in the Elasticsearch configuration file: /etc/elasticsearch/elasticsearch.yml

To learn more about the required Elasticsearch configuration, see the Elasticsearch help.

Optional configuration after deployment

When deployment is complete, you can update the configuration. You can allocate additional memory, provide enhanced security, enable backups, configure email, or specify other configuration settings.

Modify memory limits for Helix Search and Elasticsearch

By default, the Helix Search and Elasticsearch services are limited by the amount of allocated memory. You can adjust the limits in the configuration files to allocate sufficient memory for your deployment.

Change the -Xms (minimum memory) and -Xmx (maximum memory) values in the following files:

  • Helix Search - /opt/perforce/helix-p4search/sbin/p4search.vmoptions

  • Elasticsearch - /etc/elasticsearch/jvm.options

Configure additional Helix DAM settings

You can configure the following additional Helix DAM settings for your deployment.

Configure auto-tagging for Helix DAM assets in Helix Search

Helix Search can be configured to auto-detect tags for your assets. To use auto-tagging for Helix DAM assets, configure auto-tagging in Helix Search. To learn more, see Configure auto-tagging of images in the Helix Core Search Developer Guide.