Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Search Documentation | 2025.3

# Configure P4 Search

This section details how to configure P4 Search by running the etc/configure.sh script file located in the installation directory.

This script configures users, groups, and the required permissions for P4 Server. For further configurations, see Advanced configuration.

You must be a root user to configure P4 Search.

The configure.sh script file updates the following configuration options:

com.perforce.p4search.core.service.p4user

com.perforce.p4search.core.index.p4user

com.perforce.p4search.core.service.p4ticket

com.perforce.p4search.core.index.p4ticket

com.perforce.p4search.core.p4port

com.perforce.p4search.core.p4trust

com.perforce.p4search.service.external-url

com.perforce.p4search.elastic.hosts

com.perforce.p4search.elastic.user

com.perforce.p4search.elastic.pass

Depending on your choices, the configuration script creates users, groups, and the required permissions in P4 Server.

The default configuration creates the following:

- Users:

  p4search (admin permission, standard user or a service user at Security level 5 or above)

  p4index (super permission, standard user)

- Users are added to the group:

  unlimited (with unlimited ticket 'Timeout')

- Server specification is created for Security level 5 or above:

  p4search (configuring the User, AllowedAddresses and Address fields)

## Sample output

The following is a sample output for when you run the configure.sh script. While the script is running:

- To accept the default values within [default], press the Enter key.

- The [Y/n] option defaults to yes. You can press the Enter key to move on to the next configuration item.

    $ ./configure.sh
    Connecting to your Perforce Server...
     Perforce Server [localhost:4000]:
     Superuser account name [super]:
     Enter Password: ********
     OK

    Configure the external URL for P4Search (used by the Perforce Server)...
     External URL [http://localhost:1601]:
     OK

    Configure CORs pattern.
     Access control allow origin.

    Security level: 2

    Configuring HelixCore index user account...
     Username [p4index]:
     Enter password for index: ********

    User 'p4index' does not exist!
     Create user? [Y/n]: Y

    Creating 'p4index' user account...
     OK

    Setting 'p4index' password...
     OK

    Configuring unlimited ticket group...
     Group name [unlimited]:

    User p4index is not a member of unlimited!
     Add user to group? [Y/n]: Y

    Adding p4index to group...
     OK

    Checking 'p4index' permissions...

    User p4index does not have 'super' access!
      Append 'super user p4index * //...' permission to protects? [Y/n]: Y

    Adding permission...
      OK

    Generating allhost 'p4index' ticket...
    NOTE: in low security mode you can use the same Perforce user for both 'service' and 'index' users.

    Configuring HelixCore service user account...
     Username [p4search]:
     Enter password for service: ********

    Configuring unlimited ticket group...
     Group name [unlimited]:

    Checking 'p4search' permissions...

    User 'p4search' does not have 'admin' access!
    Append 'admin user p4search * //...' permission to protects? [Y/n]: Y

    Adding permission...
      OK

    Generating local 'p4search' ticket...

    Extensions depot does not exist!
      Create extension depot .p4extensions:

    Creating extensions depot...
      OK

    Connecting to your Elastic Server(s)...
     ElasticSearch host(s) (comma seperated) [http://localhost:9200]:
     Elastic username [elastic]:
     Elastic password: ********
     Connection OK

    --------------------------------------------------------------------------------
    Configuration finished.

    After making configuration changes, you must restart the service:
      sudo systemctl restart p4search.service
    --------------------------------------------------------------------------------

Your search for returned results