Automated deployment

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

The automated deployment using the Perforce 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 P4 DAM on premises or in your cloud environment, review the following information. To learn more about the TeamHub CLI, see Perforce TeamHub Documentation.

Components deployed

The following components are automatically installed and configured during deployment:

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

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

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

Before deployment

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

P4 Server requirements

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

Supported P4 Server versions

P4 DAM works with supported versions of P4 Server under Standard Maintenance.

The versions supported for P4 DAM 2025.2 are:

  • P4 Server 2023.2

  • P4 Server 2024.1

  • P4 Server 2024.2 - Required for P4 DAM asset bundles

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

P4 Server configuration

P4 DAM requires the following configuration for the P4 Server:

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

Information you need about the P4 Server

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

  • P4 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 P4 DAM. To add a super user, follow the instructions in Create a super user on the P4 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 P4 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, P4 Search, and P4 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 P4 DAM by using the automated method, complete the following steps:

  1. Install the Perforce TeamHub CLI

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

  3. Provide the deployment information for P4, Elasticsearch, P4 Search, and P4 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 P4 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 Perforce TeamHub CLI

You need the Perforce TeamHub CLI to deploy P4 DAM.

  1. Download Perforce TeamHub CLI for your operating system. Perforce 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.

Do not run hth setup or follow the hth-cli help. They are intended for use with existing Perforce TeamHub installations. Use only the following instructions for initial P4 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.

    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 P4 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 Perforce TeamHub CLI. Provide the information in the following order:

  • P4

  • Elasticsearch

  • P4 Search

  • P4 DAM

To set up the deployment information, follow the prompts in Perforce 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

    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].

P4 Server

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

  1. Select [create].

  2. Select Helix Core Server.

  3. Select [edit details].

  4. Enter or select the P4 Server information.

    Value Description More information
    P4PORT Hostname or IP address and port for your P4 Server in one of the following formats:
    host:port
    ssl:host:port.
     
    Username Username for a P4 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,-, _ Create a super user on the P4 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.
    Create a super user on the P4 Server
    Charset P4CHARSET used by the P4 Server Setting up a server for Unicode in the P4 Server Administration Documentation
    Fingerprint (if SSL) If you connect to P4 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 P4 CLI Reference
  5. Select [back] until P4 Server is displayed.

    The P4 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.

P4 DAM supports Elasticsearch 8.8.1 to 8.18.1. P4 Search may support different versions of Elasticsearch. Make sure you use a version supported by P4 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 P4 Server and Elasticsearch are displayed.

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

P4 Search

Provide details about the computer to install P4 Search on.

  1. Select [create].

  2. Select P4 Search.

  3. Select [edit servers].

  4. Select [create].

  5. Enter the Hostname or IP Address for the computer to install P4 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 P4 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 P4 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 P4 Server , Elasticsearch , and P4 Search are displayed.

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

P4 Digital Asset Management (DAM)

Provide details about the computer to install P4 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 P4 DAM instance hostname. P4 DAM uses this hostname in URLs, email links, and API requests. Even though P4 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 P4 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 administrator bot used by P4 extensions to call the P4 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 P4 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 P4 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 P4 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 Administrator 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 P4 configuration and connection Verifies the connection to P4 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 Administrator 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.

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

    • P4 Search

    • P4 DAM

  4. Select the server to deploy the component to.

    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 P4 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 --
P4 Search Use the hostname or IP address and port number you specified for P4 Search --
P4 DAM Log in to the Perforce TeamHub administrator web UI and check the following pages for errors: --
Preferences Setting the P4 DAM instance hostname
P4 DAM Configuring P4 DAM settings
P4 Extensions Configuring P4 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 P4 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 P4 Search and Elasticsearch

By default, the P4 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:

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

  • Elasticsearch - /etc/elasticsearch/jvm.options

Configure additional P4 DAM settings

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

Configure auto-tagging for P4 DAM assets in P4 Search

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